The short answer
Roof Depot was paying $190 per lead from a generic roofing campaign. By splitting storm-damage intent from replacement intent, killing everything outside a 35-mile radius, and wiring an automated 5-minute text follow-up into their CRM, cost per qualified lead dropped to $28 within 60 days.
Problem
Roofing leads are expensive because everyone targets the same broad keywords. Roof Depot was spending $8,000/month and booking four to five estimates per week — a $190 cost per lead. Worse, half those estimates were "shopping around" calls that closed at under 10%.
The campaign had no geographic caps, no intent segmentation, and no follow-up automation. Leads sat in a spreadsheet until someone called them back — sometimes 24 hours later. In roofing after a storm, 24 hours is too late.
Approach
Segment by damage intent vs. replacement intent. These are two completely different buyers. Storm-damage customers need someone there tomorrow and have insurance covering most costs. Replacement customers are price-comparing over weeks. I split them into separate campaigns with separate budgets, separate landing pages, and separate bid strategies.
Geofence with precision. Roof Depot's crew could realistically handle jobs within 35 miles. I drew the radius in Google Ads and eliminated bid modifiers for everything outside it. Immediately cut 30% of impressions — all waste.
5-minute text automation. I connected their contact form to a Zapier workflow: form submission → immediate SMS from the owner's number → calendar link for a same-day estimate. The text read like it came from a person, not a bot.
Negative keyword lockdown. Added 200+ negatives in week one: DIY terms, competitor names, commercial roofing (they don't do commercial), and material-specific queries that were pulling in wholesale inquiries.
Result
| Before | After (Month 3) |
|---|---|
| $190 CPL | $28 CPL |
| 5 estimates/week | 19 estimates/week |
| ~10% close rate | ~31% close rate |
| No follow-up system | 5-min automated text |
The 5-minute text follow-up was the biggest single lever. Close rate nearly tripled because they were often the first contractor to respond after a storm.
What I'd do differently
Build the CRM automation before launching the campaign, not after. We ran the first four weeks with no follow-up system while I was setting up the ad structure. Those leads went cold. The automation should have been live on day one.