Senior SEO & PPC Specialist – Google Ads/LSA, Meta, Local SEO & AI Search (US Home-Service Agency)

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

TYPE OF WORK

Full Time

SALARY

$1,200–$1,800 USD/month

HOURS PER WEEK

40

DATE UPDATED

Oct 17, 2026

JOB OVERVIEW

Senior SEO & PPC Specialist – Google Ads/LSA, Meta, Local SEO & AI Search
$1,200–$1,800 USD/month, full time, long term. Pay depends on the results you can show.

About us
Downpour Marketing ( ---------- ) is a new US agency for home-service businesses like plumbers, HVAC companies, roofers, cleaners and other trades. We combine practical AI tools with hands-on marketing. Our first client packages launch now, and you would be our first marketing hire. That means you run client delivery: getting local businesses found on Google, in the map pack, and in AI answers (ChatGPT, Perplexity, Google AI Overviews), and turning ad spend into booked jobs.

This is not a general VA or admin role. If your experience is mostly data entry, social posting or customer support, this isn't the right fit.

What you'll do
- Run local SEO for home-service clients: technical fixes, on-page work, service and city pages, citations, and internal linking.
- Optimize and manage Google Business Profiles: categories, services, photos, posts, Q&A, review-response drafts, and spam/edit monitoring.
- Do AEO / AI search work: track how clients show up in ChatGPT, Perplexity, Claude and Google AI Overviews, then improve it with FAQ content, schema, entity and citation consistency, and third-party mentions.
- Build and manage Google Ads (Search, call ads, Performance Max where it makes sense), Google Local Services Ads, and Meta lead campaigns, including keywords, negatives, budgets, bids, ad copy, landing-page feedback and weekly optimization.
- Set up and check tracking: GA4, Google Tag Manager, conversion actions, call tracking, and lead attribution in GoHighLevel (GHL).
- Write a clear monthly report per client: what we did, what changed, what's next. Real numbers only. Never invent a result.
- Work with our AI assistants, which draft content, pull research and keep notes. You check their work, fix it and own the final quality. The owner approves anything public and all spend.

Must-haves
- 3+ years of hands-on SEO and 2+ years managing Google Ads accounts yourself (not just assisting), preferably for local service businesses or for US agency clients.
- Proof you personally ranked local businesses and managed paid accounts (see "How to apply").
- Real Google Business Profile optimization experience, including handling suspensions or reinstatements, or a clear explanation of how you would.
- Working knowledge of GA4, Google Tag Manager and conversion tracking.
- Strong written English: you'll write client reports and explain results to US business owners.
- At least 4 hours of overlap with US Eastern Time on weekdays: 9:00 AM–1:00 PM ET, which is 9:00 PM–1:00 AM Manila until Nov 1 and 10:00 PM–2:00 AM Manila after US clocks change. The rest of your hours are flexible.
- Reliable internet with a backup, and a backup power plan.

Nice to have
- Google Local Services Ads experience (verification, budget, dispute handling, lead quality).
- Meta Ads lead-gen for local services.
- GoHighLevel: pipelines, workflows, missed-call text-back, review requests.
- AEO/GEO tracking tools, and schema markup you've implemented yourself.
- Home-service experience (HVAC, plumbing, roofing, cleaning, pest, landscaping, electrical).
- Google Ads certification (nice, but results matter more).

What we offer
- $1,200–$1,800/month to start, set by your verified experience and test results. Pay is reviewed as the client roster grows.
- Long-term, full-time work directly with the US owner, paid monthly.
- You run the delivery side from day one. You're not one person in a large team.
- A paid test task for finalists, paid whether or not you're hired.

How to apply (applications without proof will not be reviewed)
Apply through OnlineJobs.ph and include all of the following:

1. SEO proof: 2 live links. For each one, send the website URL and/or Google Business Profile link, the city, and 2–3 keywords you ranked it for, plus a screenshot of the rankings or the Search Console performance report with the date range visible. Tell us exactly what YOU did and how long you worked on it.
2. PPC proof: screenshots of ad accounts you personally managed. Send at least one of: a Google Ads campaign overview, an LSA dashboard, or Meta Ads Manager. Columns must show spend, conversions/leads and cost per lead, with the date range visible. Also send one screenshot of Change History (Google Ads) or the activity history (Meta) showing your own user making changes. Blur client names, account IDs and customer details. Don't blur your own user name.
3. Answers to the 3 screening questions below. Write them yourself in a few sentences each. We are reading for your judgment, not for length.
4. Your weekday hours in US Eastern Time, any current clients or jobs, and your expected monthly rate in USD.

Please don't send logins or ask for ours. Don't send work you didn't do yourself; we verify links and screenshots. If you used AI to help write your application, just tell us. That's fine. Hiding it isn't.

Screening questions
1. Your own proof, explained. Pick one result from your application. In 4–6 sentences: what state was the account or site in when you started, which 2 changes made the biggest difference, and what changed afterward? Use the dates and numbers shown in your screenshot.
2. Live map-pack check. Search Google right now for "[service] near me" or "[service] [US city]" for any home service in any US city you choose, like "water heater repair Columbus OH". Tell us the search you used, the business in the #1 map-pack spot, and 2 specific reasons you can see on its profile or site for why it ranks there. Attach a screenshot of the results.
3. Budget call. A roofing company gives you $2,000 per month for paid ads and has never run LSA or Google Search. How do you split the first month between LSA and Search, what do you check before spending the first dollar, and what result after 30 days would make you change the split? (Fictional scenario; there's no single right answer.)

We reply to every applicant with complete proof within 3 business days.

— Justin Morris, Downpour Marketing

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.0186
Total Execution Time  0.0203
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,522,072 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Senior-SEO-PPC-Specialist-Google-AdsLSA-Meta-Local-SEO-AI-Search-US-Home-Service-Agency-1751587
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0108 seconds)  (Hide)
0.0006   SELECT *
                                
FROM exrates
                                WHERE rate_name 
= 'USD-PHP' 
0.0014   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1751587
 LIMIT 1 
0.0007   SELECT *
FROM `employers`
WHERE `employer_id` = 940935
 LIMIT 1 
0.0007   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `misc` ON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1751587
AND `misc`.`id` IS NULL 
0.0008   SELECT e.business_name, e.logo, e.website, e.rebill_date, e.date_added member_date, hits, DATEDIFF('2026-10-18',ej.date_added) duration_days, DATEDIFF('2026-10-18',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-18',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != 1 AND ej.deleted = 0 AND job_id = '1751587' 
0.0005   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `sc` ON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1751587 
0.0009   UPDATE employer_jobs SET hit_counts = '***Oct-17-2026=1085***Oct-18-2026=6' WHERE job_id= '1751587'  
0.0007   UPDATE employer_jobs SET monthly_hits = '***Oct-2026=1089' WHERE job_id= '1751587'  
0.0005   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id = '' AND job_id = '1751587' AND status LIKE 'sent%' ORDER BY id DESC  
0.0007   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `sc` ON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1751587 
0.0013   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '940935'
AND `date_added` >= '2022-06-08' 
0.0010   select * from teasers 
0.0012   SELECT * FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)