How a Roswell roofer went from 8 leads/month to 47 in 90 days.
A second-generation roofing company in East Roswell was drowning in Angi spend and still couldn’t book enough re-roof jobs to keep three crews busy. Here’s exactly what we changed.
Three crews. Eight leads. Do the math.
Here’s the thing. The owner — second generation, 19 years on the trucks before he took over from his dad — walked into our first call with a simple problem. Three crews. Eight inbound leads per month. He was sending guys home on Wednesdays because there wasn’t enough work to fill the week.
The company sat in East Roswell, right off Holcomb Bridge, with a service area that stretched from Crabapple down through Sandy Springs. Good reputation. Two BBB awards on the wall. A truck-wrap fleet anyone in Roswell would recognize. And still — eight leads a month, half of which were shared Angi leads that closed at 9%.
The website hadn’t been touched since 2019. The Google Business Profile had 31 reviews — most of them from 2020. They were spending $2,400/month on Angi and HomeAdvisor combined, plus another $800 on a Yellow Pages bundle nobody remembered signing up for. Total marketing burn: $3,200/month. Total booked jobs from that spend: 1.6 per month on average.
Real talk: this is the exact spot most Roswell roofers are stuck in right now. They built a brand the old way — referrals, fleet wraps, door knocks after storms — and the new game has passed them by. Not because the work isn’t good. Because the digital funnel was never built.
“I’ve got the trucks. I’ve got the crews. I’ve got the insurance. What I don’t have is a phone that rings on Tuesday mornings when there hasn’t been a storm in three weeks.”
That’s the real problem. Storm-chasing covers the spring. The rest of the year is a guessing game. We needed to build a system that produced predictable, exclusive re-roof leads — not storm leads, not insurance-claim leads — retail re-roofs in the $14K–$28K range from homeowners who already trusted the brand before they ever picked up the phone.
Before Viral Spark vs. day 90.
Same crews. Same trucks. Same brand. Completely different lead flow.
| Metric | Day 1 (before) | Day 90 (after) |
|---|---|---|
| Monthly inbound leads | 8 (5 shared) | 47 (44 exclusive) |
| Cost per lead | $87 shared | $31 owned |
| Booked re-roof jobs/mo | 1.6 average | 11 average |
| Cost per booked job | $1,917 | $284 |
| Google reviews | 31 total | 54 total (+23) |
| Wednesday send-homes | 3 per month | Zero |
A real Roswell re-roof — the kind of project the new funnel started feeding into the calendar every week.
Three failed attempts before they called us.
You’ve probably noticed — every roofer has tried something. Nobody walks into a marketing call with a clean slate. The Roswell guy was no exception. He’d burned through three attempts before we picked up the phone.
Attempt one: A national lead-gen company sold him a “Roofer Pro” package — $1,800/month for “exclusive” leads. The exclusivity lasted exactly one inquiry per homeowner before the same lead got sold to two other roofers in the area. He cancelled after four months.
Attempt two: A local website agency rebuilt his site for $8,400. It looked beautiful. It ranked for nothing. No neighborhood pages, no service-area pages, no content. Six months later it had pulled in three organic leads total. The agency stopped returning calls when he asked why.
Attempt three: His nephew talked him into running Facebook ads. Spent $1,200 in a month, got 47 lead-form fills, of which 41 turned out to be people in Birmingham, Alabama who’d accidentally clicked an ad with bad geo targeting. The remaining six leads were tire-kickers.
By the time he called us, he wasn’t looking for “marketing.” He was looking for someone who could explain what just happened with $11,400 in 18 months and zero booked jobs to show for it.— Notes from our first discovery call, transcribed
That’s the pattern. Roofers in Roswell, Alpharetta, and Sandy Springs aren’t unmarketed. They’re over-marketed by the wrong people. Most of what they’ve tried is sold by salespeople who’ve never operated a roofing company, optimizing for one-month contracts because they know the work doesn’t compound.
We rebuilt the funnel. Not the brand.
No new logo. No new truck wraps. No tagline workshop. We left every operational thing alone and replaced the lead infrastructure underneath. The phone started ringing in week three.
What actually changed inside 90 days.
Four moves. None of them flashy. All of them compound. This is the same playbook we run for every roofer who hires us through our lead generation service.
Google Business Profile + 23 neighborhood landing pages.
The old GBP had 31 reviews, 4 photos, and the wrong service categories. We rebuilt it from scratch — added 87 geo-tagged photos, fixed the categories, set up the review-request automation. Then we built 23 individual neighborhood pages for Crabapple, Martins Landing, Country Club of Roswell, East Roswell, Willow Springs, Horseshoe Bend, Garrison Mill, and the rest. Each page targeted the exact phrases homeowners in that neighborhood type into Google. By week six, he was in the map pack for 14 of them. By week 11, all 23.
Owned-funnel paid ads.
Killed Angi and HomeAdvisor on day 30. Reallocated that $2,400 into Google LSAs and direct-to-form Meta ads. Inquiries went to his own CRM, not a middleman. Cost per booked job dropped immediately.
Review collection on autopilot.
Text-based review request 90 minutes after final invoice. Result: 23 new five-star reviews in 60 days — more than they’d collected in the previous three years combined.
Drone + ground content on every job.
We sent a videographer to four jobs in month one. Pulled 38 indexed photo and video assets out of those four shoots. Each asset became a piece of the funnel — neighborhood page hero, GBP photo upload, Meta ad creative, blog post header. The same shoot fed five channels.
Drone shot from one of the four shoots that fed the entire content pipeline for 90 days.
How it actually unfolded, week by week.
Foundation
GBP rebuild. 23 neighborhood pages drafted and pushed live. Old site content audited and rewritten. Review automation wired into the existing CRM. Killed the Yellow Pages bundle. First drone shoot scheduled.
Acceleration
Angi and HomeAdvisor turned off. Google LSAs launched at $1,400/mo. Meta direct-to-form ads launched at $1,000/mo. Four job-site shoots completed. 38 content assets indexed. First 14 inbound exclusive calls of the engagement.
Compound
14 of 23 neighborhood pages ranked top-3 locally. Review count crossed 50. Month-three inbound leads hit 47. Cost per booked job hit $284. Owner scheduled his first full week of paid time off in four years.
Mid-job content shot — the kind of asset that turns into 4–6 indexed page elements.
11 booked re-roofs in month three.
By the end of day 90, the company had booked 11 retail re-roofs that month at an average ticket of $18,400. Total revenue from those 11 jobs: roughly $202K. Total marketing spend over the 90 days: $9,600 (ads + agency fee combined). Cost per booked dollar: under 5 cents. Compare that to the $1,917 per booked job he was running 90 days earlier — and that’s before you count the 23 reviews and the 38 indexed content assets that keep producing leads month after month with zero additional spend.
Inbound exclusive leads per month.
8 to 47 in 13 weeks. No new brand. No tagline. No logo redesign. Just funnel infrastructure that compounds.
Behind the scenes — every shoot produced 8–10 indexed assets feeding the funnel.
Six things to copy from this case study.
You don’t need us to do all six. But if you’re stuck at 6–10 leads a month, here’s the actual checklist. Read it, take the parts you can do yourself, hire help for the rest.
Audit your GBP today
Wrong categories, missing photos, or no review automation costs you 60% of your local leads. Free to fix.
Build neighborhood pages
One page per neighborhood you serve. Not city pages — neighborhood. That’s the unlock most roofers miss.
Kill shared lead platforms
Angi, HomeAdvisor, Networx — reallocate the spend to Google LSAs and direct-to-form Meta ads instead.
Automate review requests
Text 90 minutes after final invoice. That single workflow drives 4x more reviews than email follow-ups.
Shoot content on every job
Drone + ground footage. Each shoot should feed 5+ channels. If it only fills Instagram, you wasted the shoot.
Track cost per booked job
Not cost per lead. Not cost per click. Cost per signed contract. If you don’t know this number, fix it Monday.
Finished work — the kind of shot that runs as a Meta ad creative for 6 months.
What other Roswell roofers ask when they read this.
This is an anonymized composite — real numbers from a real engagement with a real Roswell roofing company, but the identifying details are scrubbed because we don’t publish client names without written consent. Every metric in this post is pulled directly from the dashboard.
It depends on your starting point, your service area, and your competition. This roofer had a solid brand, good crews, and 9 years of operating history. A brand-new roofer with no reviews and no service-area depth will ramp slower. We don’t promise specific numbers — we promise the same playbook that produced this result.
No. One roofer per city, per geo. We will not run marketing for two roofers in Roswell at the same time. That conflict-of-interest line is the whole reason we can promise category dominance.
The roofer in this case study paid a monthly retainer plus ad spend. Combined burn was roughly $3,200/month — the exact same number he was already spending on Angi, HomeAdvisor, and the Yellow Pages bundle. The cost didn’t change. The result did.
If we both agree on the call, we typically have the GBP audit and first neighborhood page drafts inside 7 days. Full foundation phase wraps inside 30. Most clients see their first inbound exclusive call in week three.
Want a playbook like this built for your roofing company?
If you’re a Roswell, Alpharetta, or Sandy Springs roofer running on 6–10 leads a month and you want a 30-minute call where we look at your GBP, your site, and your top 3 ranked competitors — that’s free. We do a few of these a week with operators across North Atlanta’s home services market and specifically with roofing contractors.
More case studies and roofing playbooks.
How a Duluth roofer cut lead cost from $312 to $94.
Same playbook, different city. The Duluth engagement focused on cost-per-lead reduction first, lead volume second…
Lead generation for roofers in Roswell — the complete guide.
The full how-to behind every Roswell roofing engagement we run. Neighborhood targeting, GBP, review automation…
SEO for roofers in North Atlanta — stop chasing keywords.
The neighborhood-page strategy that ranks 23 individual landing pages in under 12 weeks. Repeatable in any market…
Ready to turn searches into booked jobs?
Viral Spark is a roofer lead generation partner built for North Atlanta contractors. We pair websites built to book jobs with SEO that books jobs so the right customers find you first — no lead-buying. Get a free game plan →
