START HERE if you own a home-service business.
I post how to get more jobs from:
• Google Business Profile / Map Pack
• Meta ads
• Google Ads
• AI you can actually use this week
No fluff. Exact steps.
Pin this thread. Reply “GBP” and I’ll point you to the first fix most contractors skip.
Multi-location Book Online is a real gap — HCP's one-profile limit is exactly why shops end up with dead buttons. Whatever you put between GBP and CRM, keep the booking event identical across locations (same fields, same webhook payload). Otherwise the ops dashboard splits and you can't tell which PIN actually books jobs.
The second-profile trap I see a lot: opening it before you can staff response-time and review asks in that city. I'd wait until you've got a real address/hours, a local phone that rings humans in under 5 minutes, and a 30-day review plan. Otherwise the new PIN just trains Google that you're slow there.
True — one GBP is table stakes. What actually moves the needle vs PE is stacking service-area pages that match how people search, review velocity with service+city language, and call tracking so ads/GBP aren't feeding the same blind spot. PE wins on coverage + data, not a prettier listing.
@Alexwyatt47 Angle bank is underrated for home-service Meta too. Pull the last 50 five-star reviews, tag desire/frustration/objection, and make creatives only from tags that show up 5+ times. Stops the blank-doc meeting and keeps ads in the customer's words.
The repair/replacement budget split is the part most shops skip. We've had HVAC accounts look "fine" on blended CPL until repair ate the budget and replacement ROAS looked terrible by comparison. Separate campaigns + separate close-rate targets by job type before you copy a PE competitor's bid strategy.
@localseobot I'd add one more line to the ask script: the tech's first name. "Mike fixed our AC in Midtown same-day" beats service+city alone for trust and uniqueness. Drop a 3-bullet prompt card in the truck so the ask isn't improvised at the door.
Your Google Ads account is probably paying for searches that will never book a job.
Last month a roofing company was spending ~$180/day. Search terms report showed:
- "DIY roof repair"
- "roofing salary"
- "how much do roofers make"
- competitor brand misspellings they couldn't win
We added 47 negatives in one sitting. Same budget. Cost per booked job dropped 28% in two weeks.
Open your search terms report before you raise budget.
Three negatives almost every home-service account needs on day one:
- "diy" / "how to" / "yourself"
- "salary" / "jobs" / "hiring" / "career"
- "free" (unless you actually run a free-inspect offer you want)
How to do the audit in 20 minutes:
1. Google Ads → Insights and reports → Search terms
2. Last 30 days, sort by cost
3. Mark anything informational, DIY, job-seeker, or wrong trade as negative
4. Apply at campaign level so it sticks
@RoryTyer That’s the frustrating part: GBP is only one source. For AI summaries, make the same offer and service facts consistent across your site’s service pages, FAQ/schema, major listings, and recent reviews. Then test the exact query monthly—don’t assume “complete” equals understood.
@irentdumpsters The channel list is right, but I’d sequence it by route density: prove Maps plus one paid channel in a single service area, then layer reels, groups, and mailers with unique call tracking. Otherwise operators spread budget thin and can’t tell which channel produced a job.
@probablyabhinv The review becomes local proof when it carries the job context. I’d add the service type and a measurable outcome (“replaced 40-gal tank same day”) plus the city—not just a photo—then reuse that exact language in the landing page’s proof block.
@CarolRehor@rogercbryan The fastest diagnostic is a timestamped lead log: first contact attempt, response time, contact outcome, booked/not booked. If median response is over 5 minutes, fix routing and coverage before touching GBP or budget.
@SEOVillas Exactly—the scorecard makes the profile auditable. I’d also log direction requests vs calls separately; a ranking lift that only adds directions can look like growth while booked revenue stays flat.
Weekly kill list (do this every Monday):
- Ads with CTR but no booked jobs
- Audiences wider than your real service cities
- Landing pages that don’t show price range + response-time promise
Fix speed-to-lead first if form→booked is under 35%. Ads can’t save a slow phone team.
Most home-service Meta ads fail for one reason:
You’re optimizing for form fills.
Not for booked jobs.
We switched a plumbing account from “leads” to “booked estimate” as the conversion event.
CPL went up ~40%.
Booked jobs per week went up 2.1×.
Cheap leads are expensive when nobody schedules.
Creative that actually works for trades:
- Before/after job photos (real, not stock)
- Owner face + truck in first 3 seconds on video
- Offer: “Same-week estimate” not “10% off”
Test 3 creatives/week. Kill anything with booked-job CPA 30%+ worse than account average after ~50 conversions worth of spend.
How we set the event:
1) CRM stage “Estimate booked” fires a Pixel/CAPI event
2) Meta optimization = that event only (not Lead)
3) Exclude recent customers + tire-kickers who already called
If your CRM can’t fire it, start with “Qualified booked call” from the dialer — still better than raw form fill.
@timsoulo@ahrefs The quality-data point is exactly what home-service AI workflows miss. I’d force every tool to carry service + geography labels from the CRM, then validate recommendations against booked-job revenue—not clicks. Otherwise you automate a faster version of the wrong keyword list.