Google Ads & Local SEO Specialist (Paid Per Client) - Home Service Contractors

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

TYPE OF WORK

Gig

SALARY

$150-$250 per client, per month

HOURS PER WEEK

TBD

DATE UPDATED

Oct 23, 2026

JOB OVERVIEW

APPLY HERE: ----------
(Apply through this link only. Messages and applications sent any other way won't be read.)

WHO WE ARE
deCRUZ Construction Marketing gets leads for contractors in California: remodelers, ADU builders, roofers, pool builders and concrete companies. We run their Meta ads today. Now we're adding Google Ads and local SEO, and we hand each client to one specialist who runs it end to end.

THE ROLE
This is paid per client, not a salary. You start with one client. Do it well and we keep sending more, and you're paid for every client, every month, for as long as they stay with us.

PAY (per client, per month)
- Local SEO (Google Business Profile, on-page SEO, citations): $150
- SEO growth (local SEO + link building + 1-2 SEO pages a month): $200
- Google Ads + SEO (all of the above + a Google Ads search campaign): $250
- One-time projects: Google Business Profile setup $50, citation cleanup $35
Paid once that month's work is delivered and the client's monthly report is sent.

WHAT YOU'LL DO, PER CLIENT
- Set up and optimize their Google Business Profile: categories, services, photos, posts and review replies
- On-page SEO on their website: title tags, meta tags, headings, image alt text and site speed
- Build local citations and directory listings, and keep name, address and phone the same everywhere
- Link-building outreach (SEO growth and up)
- Write one or two SEO pages or posts a month (SEO growth and up)
- Build, launch and manage a Google Ads search campaign: keywords, negatives, ad copy, call tracking, conversions (Google Ads + SEO only)
- Send a short monthly report: rankings, calls, clicks, conversions and spend
- Keep your tasks updated in ClickUp

YOU MUST HAVE
- 2+ years running Google Ads search campaigns, with results you can show
- 2+ years of local SEO for service businesses (contractors, home services, plumbers, HVAC, roofers)
- Hands-on with Google Business Profile, Google Ads, Search Console and Google Analytics 4
- Your own access to at least one SEO tool, like Semrush, Ahrefs, BrightLocal or Moz
- Clear written English

NICE TO HAVE
- Google Ads certification
- Local Services Ads experience
- WordPress or GoHighLevel website experience
- Experience with US home-service clients

HOW IT WORKS
- Fully remote. Pick your own hours, and be reachable by message for 2 hours between 9 AM and 5 PM Pacific, Monday to Friday
- Your first client is the trial. Either side can stop after it
- Each client has monthly KPIs. Missed two months in a row, we meet about it and the client may move to someone else
- You only use the access we give you, and you never contact a client without our project manager

HOW TO APPLY
APPLY HERE: ----------
You'll need your resume (PDF), a 1-2 minute Loom video, your rate per client, and short answers to 5 questions. No video, no application.

VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0007
Controller Execution Time ( Jobseekers / Job )  0.0146
Total Execution Time  0.0160
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,501,864 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Google-Ads-Local-SEO-Specialist-Paid-Per-Client-Home-Service-Contractors-1755294
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0077 seconds)  (Hide)
0.0005   SELECT *
                                
FROM exrates
                                WHERE rate_name 
= 'USD-PHP' 
0.0004   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1755294
 LIMIT 1 
0.0004   SELECT *
FROM `employers`
WHERE `employer_id` = 974361
 LIMIT 1 
0.0004   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `misc` ON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1755294
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 = '1755294' 
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `sc` ON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1755294 
0.0007   UPDATE employer_jobs SET hit_counts = '***Oct-23-2026=527***Oct-24-2026=144***Oct-25-2026=11***Oct-26-2026=1' WHERE job_id= '1755294'  
0.0007   UPDATE employer_jobs SET monthly_hits = '***Oct-2026=683' WHERE job_id= '1755294'  
0.0008   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id = '' AND job_id = '1755294' AND status LIKE 'sent%' ORDER BY id DESC  
0.0004   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `sc` ON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1755294 
0.0020   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '974361'
AND `date_added` >= '2022-06-08' 
0.0003   select * from teasers 
0.0003   SELECT * FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)