Part-Time PPC/Meta + Local SEO Specialist (Home Services, HubSpot) – 12–20 hrs/week (CST overlap)

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

TYPE OF WORK

Part Time

SALARY

1400-2800

HOURS PER WEEK

20

DATE UPDATED

Aug 11, 2025

JOB OVERVIEW

About us
Shop-at-home custom window treatments in Central Texas. We run Google Search + LSAs + Meta lead ads and invest in Local SEO to grow organic leads.
You will

Build & optimize Google Search (tight themes/SKAGs), LSAs, and Meta lead-gen

Own negatives, budgets, bidding, creative rotation (Canva ok), and weekly tests

Local SEO: Optimize Google Business Profile (posts, photos, Q&A, services), request & respond to reviews

On-Page SEO: Titles/metas, internal links, schema, conversion copy on service/location pages

Content: Create briefs and light drafts for 1–2 posts/pages per month (we can provide a writer if needed)

Citations: Build/cleanup NAP citations monthly

Technical (light): Core Web Vitals checks, fix 404/redirects, compress/alt images

Set up and maintain conversion tracking (HubSpot + GA4; call tracking)

Report monthly (CPL, lead quality, GBP insights, organic KPI progress) and propose the next month’s test plan

You have

2–3+ yrs managing $3–10k/mo in home-services PPC & Meta

Hands-on Local SEO wins (map pack, GBP growth, service/location pages)

Tools: Google Ads, Meta, HubSpot, GA4, GSC/GBP; Screaming Frog + a keyword tool (Ahrefs/Semrush preferred)

Strong English; comfortable collaborating directly with owners in CST hours

To apply (required)

Two short case studies: one PPC/Meta CPL win; one Local SEO win (with screenshots/metrics)

One Google RSA + one Meta primary text for “motorized roller shades” (Central Texas)

Top 10 negatives you’d add on day one

A 200–300 word intro for “Roller Shades in [City]” + suggested H2s

Your hourly rate and CST overlap windows


1-month trial with a paid test task

Weekly Rhythm (with SEO)
Mon (1.5h): KPI scan (PPC/Meta/GBP), budgets, negatives, LSA disputes

Tue (1h): Meta creative swap; retargeting tweaks

Wed (1–1.5h): On-page passes on one priority page; internal links; schema check

Thu (1h): GBP posts/Q&A, review replies, photo upload

Fri (1h): GA4/GSC pulse; note rankings & organic clicks on target pages

Monthly (2–4h): Report + 30-day plan; content brief(s); citations batch

Owner sync (30m): Weekly CST stand-up

VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0008
Controller Execution Time ( Jobseekers / Job )  0.0217
Total Execution Time  0.0231
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,493,464 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Part-Time-PPCMeta-Local-SEO-Specialist-Home-Services-HubSpot-1220-hrsweek-CST-overlap-1443183
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0131 seconds)  (Hide)
0.0003   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0014   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1443183
 LIMIT 1 
0.0014   SELECT *
FROM `employers`
WHERE `employer_id` = 836661
 LIMIT 1 
0.0036   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1443183
AND `misc`.`idIS NULL 
0.0004   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-04-16',ej.date_added) duration_daysDATEDIFF('2026-04-16',e.rebill_date) duration_rebillej.*, e.deactivate FROM employers eemployer_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-04-16',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1443183' 
0.0008   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1443183 
0.0008   UPDATE employer_jobs SET hit_counts '***Aug-11-2025=222***Aug-12-2025=30***Aug-13-2025=11***Aug-14-2025=2***Aug-15-2025=2***Aug-16-2025=5***Aug-17-2025=6***Aug-18-2025=5***Aug-19-2025=3***Aug-20-2025=2***Aug-21-2025=1***Aug-24-2025=2***Aug-25-2025=2***Aug-26-2025=1***Aug-28-2025=2***Aug-29-2025=1***Sep-01-2025=1***Sep-05-2025=1***Sep-14-2025=1***Sep-16-2025=1***Sep-18-2025=1***Sep-20-2025=1***Sep-23-2025=3***Sep-28-2025=1***Sep-29-2025=1***Oct-02-2025=1***Oct-03-2025=2***Oct-05-2025=1***Oct-06-2025=1***Oct-07-2025=1***Oct-09-2025=2***Oct-27-2025=1***Oct-28-2025=2***Nov-01-2025=1***Nov-02-2025=1***Nov-09-2025=1***Nov-10-2025=2***Nov-13-2025=1***Nov-17-2025=2***Nov-29-2025=1***Nov-30-2025=1***Dec-05-2025=1***Dec-08-2025=1***Dec-12-2025=1***Dec-22-2025=2***Dec-25-2025=1***Jan-01-2026=1***Jan-20-2026=1***Jan-28-2026=3***Jan-29-2026=6***Feb-02-2026=4***Feb-23-2026=2***Mar-02-2026=1***Mar-08-2026=1***Mar-26-2026=2***Mar-30-2026=1***Apr-16-2026=1' WHERE job_id'1443183'  
0.0008   UPDATE employer_jobs SET monthly_hits '***Aug-2025=297***Sep-2025=11***Oct-2025=11***Nov-2025=10***Dec-2025=6***Jan-2026=11***Feb-2026=6***Mar-2026=5***Apr-2026=1' WHERE job_id'1443183'  
0.0018   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1443183' AND status LIKE 'sent%' ORDER BY id DESC  
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1443183 
0.0009   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '836661'
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)