Freelance Organic Search Strategist (SEO/GEO)

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

TYPE OF WORK

Part Time

SALARY

TBD

HOURS PER WEEK

TBD

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 and preferred working hours

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.0189
Total Execution Time  0.0207
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,488,568 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Freelance-Organic-Search-Strategist-SEOGEO-1725166
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0121 seconds)  (Hide)
0.0013   SELECT *
                                
FROM exrates
                                WHERE rate_name 
= 'USD-PHP' 
0.0005   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1725166
 LIMIT 1 
0.0005   SELECT *
FROM `employers`
WHERE `employer_id` = 703790
 LIMIT 1 
0.0008   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `misc` ON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1725166
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 = '1725166' 
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `sc` ON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1725166 
0.0008   UPDATE employer_jobs SET hit_counts = '***Sep-07-2026=4***Sep-08-2026=956***Sep-09-2026=18***Sep-10-2026=9***Sep-11-2026=5***Sep-12-2026=7***Sep-13-2026=5***Sep-14-2026=6***Sep-15-2026=6***Sep-16-2026=3***Sep-17-2026=8***Sep-18-2026=10***Sep-19-2026=10***Sep-20-2026=13***Sep-21-2026=9***Sep-22-2026=4***Sep-23-2026=8***Sep-24-2026=4***Sep-25-2026=5***Sep-26-2026=5***Sep-27-2026=5***Sep-28-2026=4***Sep-29-2026=2***Sep-30-2026=6***Oct-01-2026=3***Oct-02-2026=7***Oct-03-2026=5***Oct-04-2026=3***Oct-05-2026=8***Oct-06-2026=6***Oct-07-2026=5***Oct-08-2026=5***Oct-09-2026=364***Oct-10-2026=41***Oct-11-2026=4***Oct-12-2026=1***Oct-14-2026=4***Oct-15-2026=2***Oct-16-2026=1***Oct-17-2026=3' WHERE job_id= '1725166'  
0.0007   UPDATE employer_jobs SET monthly_hits = '***Sep-2026=1112***Oct-2026=461' WHERE job_id= '1725166'  
0.0007   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id = '' AND job_id = '1725166' 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` = 1725166 
0.0054   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '703790'
AND `date_added` >= '2022-06-08' 
0.0003   select * from teasers 
0.0002   SELECT * FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)