Digital marketing Manager

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

TYPE OF WORK

Full Time

SALARY

$1,300-$2,500

HOURS PER WEEK

40

DATE UPDATED

Aug 8, 2026

JOB OVERVIEW

Senior Digital Marketing & Lead Generation Manager — Roofing / Home Services
Google Ads | LSA | Meta Ads | SEO | Local SEO | Google Business Profile | GoHighLevel
ABOUT US
Zeus Contracting is a growing U.S.-based exterior home improvement contractor specializing in roofing, siding, gutters, windows and doors In the state of Maryland. We are looking for a highly experienced full-time Digital Marketing Manager to take ownership of our online lead generation.
This is NOT primarily a social-media-posting or Canva position.
Your main responsibility will be to generate qualified homeowner leads, booked estimates and profitable jobs while continuously improving our cost per lead and cost per acquisition.
WHAT YOU WILL OWN
Google Ads: build, manage and optimize Search/PPC campaigns for roofing, siding, windows, doors, storm restoration and related services.
Google Local Services Ads: budgets, lead quality, optimization, lead disputes, rankings and reporting.
Google Business Profile: optimization, posts, services, photos, reviews, local visibility and Maps performance.
Local SEO: Google Map Pack, city/service-area rankings, citations, on-page SEO and competitive analysis.
Website SEO: keyword research, service pages, city/location pages, technical SEO, internal linking, content strategy and legitimate link building.
Meta/Facebook/Instagram Ads: create and optimize homeowner lead-generation campaigns, especially around hail/wind storms and retail home improvement.
Landing pages and conversion-rate optimization.
GA4, Google Tag Manager and conversion tracking.
Call tracking and attribution.
GoHighLevel/CRM lead routing, SMS/email follow-up and nurture campaigns.
Retargeting campaigns.
Weekly reporting showing spend, leads, qualified leads, booked appointments, CPL, cost per booked appointment, conversion rates and ROI.
Competitor research and identifying new opportunities for lead generation.
Work directly with ownership to continually improve marketing performance.

REQUIRED EXPERIENCE

We strongly prefer candidates who have previously worked with U.S. home-service companies or home-service marketing agencies, especially roofing, HVAC, plumbing, solar, remodeling, windows, siding, pest control or restoration.
You should have hands-on experience managing real advertising budgets — not just certificates or courses.
You must be able to explain why campaigns are performing the way they are and what you would change.

IMPORTANT

We do not want black-hat SEO, fake reviews, bot traffic, fake clicks, CTR manipulation, spam, PBN link schemes or tactics that put our Google Business Profile, website or advertising accounts at risk.
We want sustainable, policy-compliant marketing that generates real homeowners and measurable revenue.

TO APPLY
Send us:
A short video introduction.
Your résumé/OnlineJobs profile.
2–3 examples of U.S. local-service or home-service businesses you have marketed.
Screenshots or screen recordings showing actual Google Ads/Meta/SEO results where possible.
What monthly advertising budgets you personally managed.
Your average CPL and/or cost per booked appointment for a home-service client.
Your experience with Google LSA.
Your experience with Google Business Profile/local SEO.
Your experience with GoHighLevel.
Explain in a few sentences what you would look at first if a roofing company was spending $5,000/month on Google but wasn't getting enough booked appointments.
Put ZEUS at the beginning of your application so we know you read the entire job description.
POSITION
Full-time, 40 hours/week. Long-term position with opportunity to grow as the company grows.
COMPENSATION
$1,300–$2,500 USD/month depending on demonstrated experience + performance bonuses.
We are willing to pay more for an exceptional candidate with verifiable U.S. home-services results.

SKILL REQUIREMENT
VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0007
Controller Execution Time ( Jobseekers / Job )  0.0118
Total Execution Time  0.0132
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,502,816 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Digital-marketing-Manager-1705166
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0066 seconds)  (Hide)
0.0003   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0004   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1705166
 LIMIT 1 
0.0003   SELECT *
FROM `employers`
WHERE `employer_id` = 799439
 LIMIT 1 
0.0003   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1705166
AND `misc`.`idIS NULL 
0.0004   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-08-10',ej.date_added) duration_daysDATEDIFF('2026-08-10',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-08-10',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1705166' 
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1705166 
0.0015   UPDATE employer_jobs SET hit_counts '***Aug-08-2026=770***Aug-09-2026=2***Aug-10-2026=1' WHERE job_id'1705166'  
0.0005   UPDATE employer_jobs SET monthly_hits '***Aug-2026=773' WHERE job_id'1705166'  
0.0003   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1705166' AND status LIKE 'sent%' ORDER BY id DESC  
0.0004   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1705166 
0.0012   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '799439'
AND `date_added` >= '2022-06-08' 
0.0004   select from teasers 
0.0003   SELECT FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)