The homeowner with a leaking water heater at 11pm no longer opens a browser and scrolls Google ads. They open ChatGPT and type: "my water heater is leaking, who do I call in Oakland." ChatGPT names two or three local plumbers. They call the first one. That's the job.
This is now 71% of how home-services leads are sourced in major US metros, and the trade companies that have figured out Generative Engine Optimisation (GEO) are taking the call before the phone-book competitors even know the homeowner exists. This guide is the exact playbook for plumbers, electricians, HVAC techs, roofers, and adjacent trades — what to deploy, in what order, on what timeline.
The highest-leverage vertical for AI search
Home services is the single best vertical for GEO right now, and it isn't close. Three forces are stacked: high homeowner adoption of AI search, high job value, and almost no competition from incumbents who are still pouring ad spend into Google.
Emergency plumbing calls run $450 to $1,800 per job. A panel upgrade is $2,500 to $4,500. A roof replacement is $12,000 to $30,000. Even routine drain cleaning lands $200 to $450. When you multiply the value of a single inbound call by the volume of AI-sourced leads we are now seeing — 4 to 7 calls per month per ChatGPT citation, based on We Get Found's tracking across 38 home-services clients — the unit economics are obscene compared to paid acquisition.
And the field is empty. Most plumbers, electricians, and HVAC outfits have never heard of schema markup. Their websites were built in 2018, have no FAQ pages, have never been submitted to Bing, and have inconsistent NAP data across the dozen directory listings they do have. That is the gap. Close it in 90 days and you become the contractor ChatGPT recommends in your service area for the next several years.
The window is short. Every month another national HVAC franchise or plumbing roll-up figures this out. The independent operator who deploys schema, builds citations, and clears the 150-review threshold this quarter locks in a position that will be very expensive to displace by 2027.
Use the specific schema type your trade needs
This is the most common mistake we see on trade websites: generic LocalBusiness schema, or worse, no schema at all. Schema.org has a precise sub-type for almost every trade. Use it. ChatGPT and Perplexity weight type-specific entities far higher than generic ones when answering category queries like "best electrician in Sacramento."
Here is a complete, production-ready Plumber JSON-LD block. It includes areaServed (a GeoCircle for service radius), priceRange, openingHoursSpecification for 24/7 emergency coverage, and a hasOfferCatalog with two named services. Drop this into the <head> of your homepage, swap the placeholders for your real data, and you have moved further than 95% of your local competition in a single afternoon.
{
"@context": "https://schema.org",
"@type": "Plumber",
"@id": "https://yourdomain.com/#business",
"name": "Acme Plumbing & Rooter",
"description": "Licensed plumbers serving the East Bay since 1998. 24/7 emergency drain, water heater, and slab leak service.",
"url": "https://yourdomain.com/",
"telephone": "+1-510-555-0100",
"priceRange": "$$",
"address": {
"@type": "PostalAddress",
"streetAddress": "1420 Park Avenue",
"addressLocality": "Oakland",
"addressRegion": "CA",
"postalCode": "94610",
"addressCountry": "US"
},
"areaServed": {
"@type": "GeoCircle",
"geoMidpoint": {
"@type": "GeoCoordinates",
"latitude": 37.8044,
"longitude": -122.2712
},
"geoRadius": "40234" // 25 miles in meters
},
"openingHoursSpecification": [{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],
"opens": "00:00",
"closes": "23:59"
}],
"hasOfferCatalog": {
"@type": "OfferCatalog",
"name": "Plumbing Services",
"itemListElement": [
{
"@type": "Offer",
"itemOffered": {
"@type": "Service",
"name": "Emergency Drain Cleaning",
"description": "24/7 hydro-jetting and rooter service for clogged main lines and kitchen drains."
}
},
{
"@type": "Offer",
"itemOffered": {
"@type": "Service",
"name": "Water Heater Installation",
"description": "Tank and tankless water heater replacement, same-day installation available."
}
}
]
}
}
Service area schema — winning "near me" queries
The areaServed property is the single field that determines whether you appear when a homeowner types "[service] near me" into ChatGPT or Perplexity. Both engines parse GeoCircle blocks to decide which businesses are physically capable of taking the job. Without it, you are competing in a national pool. With it, you are matched against geographic intent.
Use geoMidpoint (your shop location) and geoRadius in meters. A 25-mile service radius is 40234m. A 15-mile radius is 24140m. A 50-mile radius is 80467m. If you cover discrete cities rather than a radius, use an array of named City entities instead.
"areaServed": [ { "@type": "City", "name": "Oakland" }, { "@type": "City", "name": "Berkeley" }, { "@type": "City", "name": "Alameda" }, { "@type": "City", "name": "Emeryville" }, { "@type": "City", "name": "Piedmont" }, { "@type": "City", "name": "San Leandro" } ]
Pick one approach per business. If your truck covers a radius from a single shop, use GeoCircle. If you have hard service-area boundaries (you'll take the job in Oakland but not in Hayward), use the City array. Don't combine — it confuses the entity resolution pass.
The 5 highest-leverage directory citations for the trades
Citation networks tell the AI engines that you are a real, established business that other trusted sites have already vetted. For home services specifically, the directory mix is different from a restaurant or a salon. Yelp matters but is saturated and increasingly hostile to small contractors. The five below are higher signal for trades — they have either trade-specific authority or extremely high domain authority that AI engines weight heavily.
Houzz is unreasonably valuable for kitchen, bath, and general contractors — its domain authority of 91 and project-portfolio format gets pulled into ChatGPT answers for remodel and renovation queries far more often than its size would suggest. BBB is mandatory; a missing or unrated BBB profile is read as a negative trust signal by every AI engine we've tested.
On top of the big five, layer in your industry-specific association: PHCC (Plumbing-Heating-Cooling Contractors) for plumbers, NECA (National Electrical Contractors Association) for electricians, ACCA (Air Conditioning Contractors of America) for HVAC, NRCA for roofers. Membership pages on these sites carry significant entity weight because they require licence verification — AI engines treat them as authority signals confirming you are a legitimate operator.
FAQ pages — your secret weapon for emergency searches
When someone types "why is my pipe leaking at 2am" into ChatGPT, the contractor whose FAQ page answers that exact question wins the citation — and the call. This is the highest-conversion content type in home services because the query itself signals immediate, urgent buying intent. Nobody asks an AI about pipes at 2am for academic interest.
FAQPage schema increases citation likelihood by 2.1× compared to the same content without it. The format mirrors how the AI engines structure their answers: one question, one self-contained answer, no fluff. Build a dedicated FAQ page per service category — Plumbing FAQ, Water Heater FAQ, Slab Leak FAQ — and target one high-intent emergency question per Q&A block.
Example FAQ titles that map to real high-intent searches:
- "Why is my water heater making a banging noise?"
- "How much does it cost to fix a slab leak?"
- "Why is my electric bill suddenly doubled?"
- "Is mold from a roof leak dangerous?"
- "Why does my breaker keep tripping when I run the dryer?"
- "How long does a roof replacement take?"
- "What does it cost to replace an AC unit in [your city]?"
- "Why is my toilet gurgling when I run the shower?"
Write the answer to be quoted, not skimmed. Target 40–80 words. Lead with the direct answer. Then give one sentence of cause, one sentence of what the homeowner should do, and one sentence on when they need a pro. ChatGPT will lift the first 1–3 sentences verbatim — make those count.
Local content — the city × service page strategy
This is the single biggest driver of "Oakland water heater repair" / "Walnut Creek panel upgrade" style ChatGPT citations, and almost no independent contractor is doing it correctly. The strategy: build one page per city × service combination. For a Bay Area plumber serving 6 cities with 4 core services, that's 24 pages. For an HVAC company with 10 cities and 5 services, that's 50.
Each page is not a doorway. Each page is unique, locally-aware content: the neighborhood-specific issues (Berkeley homes built before 1940 have galvanised supply lines that fail at the threads; Oakland Hills homes have hillside slab cracking; San Leandro has hard water that destroys tankless coils), local landmarks the homeowner will recognise, photos of jobs in that specific zip code, and city-specific pricing.
The pattern works because ChatGPT geo-matches the user's implied location against entities that have indexed content for that exact city. A homepage that says "we serve the Bay Area" loses every time to a competitor with a dedicated /oakland-water-heater-repair page that mentions Lake Merritt, Rockridge, and Temescal by name.
Build budget: 6–12 hours per page if done properly. Real photos, real local detail, real prices. The shortcut version — same content with the city name swapped — gets recognised as templated by Bing and ignored. Either invest in unique pages or don't bother with this tactic.
Reviews — hit 150 before you do anything else
Across the home-services clients We Get Found has tracked, the AI citation threshold sits at 150+ Google reviews per location. Below that count, AI engines rarely name you in category responses regardless of how clean your schema is. Above it, the curve flattens fast — going from 150 to 500 reviews produces less lift than going from 50 to 150.
If you are under 150, that is your single highest-priority work stream this quarter. It is also surprisingly cheap to fix. Three tactics that move the number quickly:
-
SMS review request after every job Text the customer within 2 hours of finishing the job with a one-tap Google review link. SMS gets a
37%reply rate; email gets 4%. Use a tool like Podium, NiceJob, or a $20/month Twilio script — the channel choice matters more than the platform. -
Google review link on every invoice Print the short link (
g.page/r/your-id/review) on the invoice itself and the credit-card receipt. About 8% of customers who didn't reply to SMS will leave one after they see the invoice. -
Ask for Yelp after a positive Google review When a customer leaves a 5-star Google review, follow up the next day with a Yelp ask. They've already validated themselves as happy — conversion on the second platform runs 25–40%.
What to expect, week by week
The pipeline is predictable. If you start clean and work the steps in the right order, the first AI calls land in month three and the flow compounds from there.
-
Week 1–2: Schema + Bing + Google Business Profile Deploy your trade-specific schema with areaServed. Submit to Bing Webmaster Tools. Verify and fully complete your Google Business Profile. This starts every downstream clock.
-
Week 3–4: Get to 150+ reviews Run the SMS + invoice + Yelp follow-up loop on every active job and recent past customer. If you're starting at 40 reviews, expect to hit 150 in 3–5 weeks with disciplined execution.
-
Month 2: 50+ directory citations live Angi, HomeAdvisor, Houzz, Thumbtack, BBB, plus your industry association and 40+ general directories — all with identical NAP. Manual takes 4–6 weeks; a citation service does it in 7–10 days.
-
Month 3: First AI citations appear Bing's 6–12 week index-to-citation lag closes. Start monitoring ChatGPT, Perplexity, and Claude weekly for your category + city queries. First mentions usually arrive between week 10 and week 14.
-
Month 4–6: Compounding call flow As more queries surface your business, the inbound call volume from AI sources climbs to a steady 4–7 calls per citation per month. Layer the city × service page strategy to expand the surface area.
Frequently Asked Questions
Find out where ChatGPT stands on your business — then fix it
Run the free AI Visibility Diagnostic in 60 seconds. Or skip the DIY and let us deploy the full GEO build for you — schema, citations, FAQ pages, monitoring — for a flat $597.
Diagnostic: 60 seconds, no signup · Get Found tier: $597 flat
Related guides
If you're working through the home-services playbook, these adjacent guides go deeper on the underlying mechanics: the local business AI visibility playbook covers the cross-vertical fundamentals, how to get cited by ChatGPT is the schema and Bing deep dive, and why your business isn't on ChatGPT diagnoses the most common failure modes. The full index lives at /guides.