SEO + AI Search Specialist

Please login or register as jobseeker to apply for this job.

TYPE OF WORK

Full Time

SALARY

$750-$2,000/month

HOURS PER WEEK

TBD

DATE UPDATED

Jul 2, 2026

JOB OVERVIEW

The Opportunity

Search is splitting in two. Half your future visitors will find you through Google. The other half will ask ChatGPT, Perplexity, or Google's AI Overviews *"what's the best rehab that allows..."* — and get an answer with three sources cited.

We need one person who can win both.

We operate a portfolio of addiction treatment and behavioral health web properties, including a directory platform built on a modern stack (Next.js / Vercel / Supabase). Organic discovery is our primary growth channel, and we want to be early and aggressive on AI search visibility while competitors are still only thinking about Google.

What You'll Own

Traditional SEO (~60%)
- Keyword strategy, on-page optimization, and content direction for YMYL health topics
- Technical SEO on Next.js: rendering strategy, canonicals, Core Web Vitals, internal linking, crawlability
- Structured data implementation and expansion ( ---------- : MedicalClinic, FAQPage, MedicalOrganization)
- Programmatic SEO for state/city directory pages — scaled templates that don't read as thin content
- Migration support: an active WordPress ? Next.js rebuild with URL preservation and redirect mapping
- Competitive gap analysis against established treatment directories

AI Search / GEO (~40%)
- Get our properties **cited as sources** in ChatGPT, Perplexity, Claude, Gemini, and Google AI Overviews for treatment-related queries
- Structure content for answer extraction: direct-answer formatting, question-based headings, definitive claims with data, citable statistics
- Entity and brand optimization: consistent entity signals, Wikipedia/Wikidata-adjacent presence, third-party mentions AI models learn from
- Implement and maintain llms.txt and monitor AI crawler access (GPTBot, ClaudeBot, PerplexityBot) — d ---------- what to allow and how to structure it
- Track AI visibility: monitor which queries surface us in AI answers, benchmark against competitors, and build a repeatable measurement process (this field has no Search Console — you'll help invent our instrumentation)
- Stay current: this discipline changes monthly, and we expect you to bring us the changes before we read about them

You're a Fit If You

- Have 3+ years of SEO results in competitive or YMYL niches (health, legal, finance) — with at least one win you can walk us through in detail
- Have *actually done* AI search optimization — you can show a page or brand you got cited in AI answers, or a documented experiment, not just articles you've read about GEO
- Are technical enough to work directly with a Next.js codebase conversation: you don't write the code, but you can spec exactly what the code should do
- Understand E-E-A-T and what it takes for health content to survive core updates
- Are comfortable in a scrappy, founder-led environment: no committees, fast decisions, your recommendations ship

**Nice to have:** behavioral health or healthcare marketing background, familiarity with treatment-marketing compliance (LegitScript, patient-brokering laws), experience with AI content workflows, basic SQL/Supabase. description

SKILL REQUIREMENT
VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0010
Controller Execution Time ( Jobseekers / Job )  0.0227
Total Execution Time  0.0256
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,503,832 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/SEO-AI-Search-Specialist-1680700
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0155 seconds)  (Hide)
0.0012   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0004   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1680700
 LIMIT 1 
0.0010   SELECT *
FROM `employers`
WHERE `employer_id` = 261414
 LIMIT 1 
0.0023   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1680700
AND `misc`.`idIS NULL 
0.0005   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-07-21',ej.date_added) duration_daysDATEDIFF('2026-07-21',e.rebill_date) duration_rebillej.*, e.deactivate FROM employers eemployer_jobs ej WHERE e.employer_id ej.employer_id AND
                                   ((
e.user_level >= '500' AND ej.date_added <= e.rebill_date)
                                   OR 
e.employer_id '' OR (ej.date_approved <> '2000-01-01' and DATEDIFF('2026-07-21',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1680700' 
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1680700 
0.0007   UPDATE employer_jobs SET hit_counts '***Jul-02-2026=403***Jul-03-2026=45***Jul-04-2026=29***Jul-05-2026=28***Jul-06-2026=27***Jul-07-2026=24***Jul-08-2026=19***Jul-09-2026=13***Jul-10-2026=13***Jul-11-2026=13***Jul-12-2026=2***Jul-13-2026=5***Jul-14-2026=4***Jul-15-2026=2***Jul-16-2026=1***Jul-17-2026=3***Jul-18-2026=2***Jul-21-2026=1' WHERE job_id'1680700'  
0.0006   UPDATE employer_jobs SET monthly_hits '***Jul-2026=634' WHERE job_id'1680700'  
0.0008   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1680700' AND status LIKE 'sent%' ORDER BY id DESC  
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1680700 
0.0051   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '261414'
AND `date_added` >= '2022-06-08' 
0.0004   select from teasers 
0.0017   SELECT FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)