Google Ads + Local SEO Specialist - Seller Lead Gen, Boston Real Estate (Part-Time, Path to Full-Time)

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

TYPE OF WORK

Part Time

SALARY

$800/month

HOURS PER WEEK

30

DATE UPDATED

Oct 20, 2026

JOB OVERVIEW

We're a Boston real estate company that buys and sells homes, including ---------- . Our sites need to rank locally and turn searches into motivated-seller leads, and we want one person to own both organic search and paid ads. It starts part-time with a clear path to full-time for someone who delivers lower cost per lead.

WHAT YOU'LL OWN:
- Google Ads: build and optimize Search and remarketing campaigns for seller leads, with conversion tracking set up correctly (GA4 + Google Tag Manager)
- Local SEO: Google Business Profile, city and neighborhood landing pages, citations, technical fixes
- Content: 2-4 blog posts a month written for real search intent
- Keyword research, competitor gaps, and backlink outreach
- A one-page weekly report: leads, cost per lead, rankings, and what you're changing and why
- Light WordPress work (pages, plugins, site speed)

MUST HAVE:
- 1+ year managing Google Ads spend, with results you can show
- Hands-on with Google Search Console, GA4, Google Tag Manager, and Ahrefs or SEMrush
- Clear written English; you raise problems before they become fires

NICE TO HAVE:
Real estate or home-services lead gen. Call tracking and landing page builder experience.

TERMS:
Part-time, about 30 hours per week, paid monthly at the rate listed on this post, with a review for more hours and pay after 90 days based on cost per lead.

HOW TO APPLY (applications missing any item are not reviewed):
Reply on OnlineJobs.ph, not by email:
1. Start your message with the exact phrase "Leads, not clicks" so we know you read this post.
2. Proof: a screenshot of a Google Ads account or report you managed (client names can be blurred), a before/after Search Console chart, or a live page you ranked.
3. The numbers for ONE campaign where you lowered cost per lead or grew conversions: monthly budget, before and after, timeframe, and what you changed.
4. In 3-4 sentences: A seller-lead campaign is spending $50 a day and getting clicks but no form fills. What do you check first, and in what order?
5. Your hourly or monthly rate and the weekly hours you can commit, plus a resume or portfolio link.

NEXT STEPS:
30-minute interview, then a short paid trial task: audit one of our pages and propose a Google Ads campaign structure.

SKILL REQUIREMENT
VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0008
Controller Execution Time ( Jobseekers / Job )  0.0175
Total Execution Time  0.0189
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,503,184 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Google-Ads-Local-SEO-Specialist-Seller-Lead-Gen-Boston-Real-Estate-Part-Time-Path-to-Full-Time-1752829
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0103 seconds)  (Hide)
0.0003   SELECT *
                                
FROM exrates
                                WHERE rate_name 
= 'USD-PHP' 
0.0009   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1752829
 LIMIT 1 
0.0009   SELECT *
FROM `employers`
WHERE `employer_id` = 767099
 LIMIT 1 
0.0014   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `misc` ON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1752829
AND `misc`.`id` IS NULL 
0.0005   SELECT e.business_name, e.logo, e.website, e.rebill_date, e.date_added member_date, hits, DATEDIFF('2026-10-26',ej.date_added) duration_days, DATEDIFF('2026-10-26',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-26',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != 1 AND ej.deleted = 0 AND job_id = '1752829' 
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `sc` ON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1752829 
0.0007   UPDATE employer_jobs SET hit_counts = '***Oct-20-2026=550***Oct-21-2026=57***Oct-22-2026=31***Oct-23-2026=15***Oct-24-2026=12***Oct-26-2026=2' WHERE job_id= '1752829'  
0.0006   UPDATE employer_jobs SET monthly_hits = '***Oct-2026=667' WHERE job_id= '1752829'  
0.0008   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id = '' AND job_id = '1752829' 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` = 1752829 
0.0029   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '767099'
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)