Freelance Organic Search Strategist (SEO/GEO)

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

TYPE OF WORK

Any

SALARY

TBD

HOURS PER WEEK

20

DATE UPDATED

Oct 9, 2026

JOB OVERVIEW

JOB TYPE: Part-Time / Freelance / Contract

SALARY: Negotiable based on experience

WORKING HOURS: To be Discussed

JOB DESCRIPTION:

We're expanding our GEO (Generative Engine Optimization) offering to include organic search services, and we're looking for an experienced freelance Organic Search Strategist to help us build this out. You'll work closely with our existing SEO team to deliver organic search strategy, execution, and reporting for our clients, with real input into how this new service is packaged and priced.

This is a great opportunity for someone who wants to help shape a new service line from the ground up, not just execute a fixed playbook.

RESPONSIBILITIES:

Build and deliver organic search strategies and campaigns for clients
Create clear, client-ready reports showing the impact and performance of organic search work
Help define pricing and packaging for our new organic search service offering
Collaborate closely with our in-house SEO team so organic search and SEO work are delivered as one holistic strategy, not separate silos
Communicate regularly with the team on progress, blockers, and results

REQUIREMENTS:

Proven experience running organic search strategy and campaigns (agency or client-services background preferred)
Experience building or contributing to service pricing/packaging structures
Strong written reporting skills — able to turn data into clear, actionable insights
Comfortable collaborating closely with another team, not working in isolation
Reliable internet connection and availability for regular check-ins
Good written and spoken English

NICE TO HAVE:

Familiarity with GEO (Generative Engine Optimization)
Experience working with UK or Western agency clients

HOW TO APPLY:

Please send your resume/portfolio along with:

A short summary of your organic search experience
Examples of past reporting or campaign results (if available)
Your availability
Rate

We're looking to bring someone on as a trial/freelance engagement first, with the potential for this to grow into an ongoing role as we build out this service line.

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.0161
Total Execution Time  0.0200
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,487,464 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Freelance-Organic-Search-Strategist-SEOGEO-1746986
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0096 seconds)  (Hide)
0.0004   SELECT *
                                
FROM exrates
                                WHERE rate_name 
= 'USD-PHP' 
0.0003   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1746986
 LIMIT 1 
0.0003   SELECT *
FROM `employers`
WHERE `employer_id` = 703790
 LIMIT 1 
0.0003   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `misc` ON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1746986
AND `misc`.`id` IS NULL 
0.0004   SELECT e.business_name, e.logo, e.website, e.rebill_date, e.date_added member_date, hits, DATEDIFF('2026-10-17',ej.date_added) duration_days, DATEDIFF('2026-10-17',e.rebill_date) duration_rebill, ej.*, e.deactivate FROM employers e, employer_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-10-17',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != 1 AND ej.deleted = 0 AND job_id = '1746986' 
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `sc` ON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1746986 
0.0008   UPDATE employer_jobs SET hit_counts = '***Oct-09-2026=336***Oct-10-2026=47***Oct-11-2026=5***Oct-12-2026=4***Oct-14-2026=4***Oct-15-2026=1***Oct-16-2026=2***Oct-17-2026=1' WHERE job_id= '1746986'  
0.0005   UPDATE employer_jobs SET monthly_hits = '***Oct-2026=400' WHERE job_id= '1746986'  
0.0003   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id = '' AND job_id = '1746986' AND status LIKE 'sent%' ORDER BY id DESC  
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `sc` ON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1746986 
0.0039   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '703790'
AND `date_added` >= '2022-06-08' 
0.0003   select * from teasers 
0.0015   SELECT * FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)