Client Outcomes / Case Study

$10M+ HVAC Brand Growth – Google Ads + ServiceTitan

How a multi-location HVAC brand scaled into an eight-figure revenue run rate by pairing high-intent Google Ads with service-specific landing pages and disciplined follow-up through ServiceTitan.

Local HVAC – $10M+ Annual Revenue

Google Ads · Search & PMax · LSAs

ServiceTitan CRM · Phone + Form Leads

$50K–$100K booked revenue per week

Summary at a glance

Weekly volume

140–160 new leads / week

Phone calls and form fills from high-intent service campaigns, not “HVAC near me” window shoppers.

Lead economics

$55–$72 cost per lead

Estimated $125–$160 cost per booked job once routed and worked in ServiceTitan.

Revenue impact

$50K–$100K booked / week

On roughly $20K–$23K in weekly Google Ads spend, across service lines and seasons.

All numbers are directional, based on the client’s CRM and ServiceTitan reporting over the measured period. The case study focuses on the system we built to make those outcomes repeatable.

The client

A regional HVAC brand with multiple service areas and a mixture of install and service work. They were already a recognizable name in the market and on track for $10M+ in annual revenue — but their paid media and lead handling didn’t match the size of the opportunity.

  • Service mix: HVAC install, repair, tune-ups, IAQ, and related services.
  • Existing stack: Google Ads, basic search campaigns, and ServiceTitan for dispatch and CRM.
  • Sales model: Phone-driven, with CSRs and a field sales team handling booked jobs.

The challenge

They weren’t struggling for clicks — they were struggling to connect spend to booked jobs and profitable revenue. The marketing and operations questions sounded like this:

  • “We’re spending real budget. Which campaigns are actually driving revenue?”
  • “Are we overpaying for installs and underfunding profitable service lines?”
  • “How do we make Google Ads, landing pages, and ServiceTitan feel like one system instead of three separate tools?”

The system we built

Instead of chasing one-off “campaign wins,” we rebuilt the growth engine around a simple loop: high-intent traffic → service-specific landing pages → tracked calls and forms → disciplined follow-up in ServiceTitan → owner’s math on what to Cut, Fix, and Double.

1. Service-line campaign structure

We broke “HVAC” into distinct service lines and intent tiers:

  • Separate campaigns for install, repair, tune-ups, and emergencies.
  • Exact and phrase match around “near me” + emergency terms for bottom-of-funnel.
  • Supportive, more general search for fill-in during softer periods.

The goal: every ad group should map to a specific job type and page, not a generic homepage.

2. Call-first landing experience

  • Dedicated landing pages per service and geography.
  • Prominent click-to-call and tap-to-call CTAs for mobile users.
  • Short, high-intent forms for homeowners who prefer not to call.
  • Clear proof: reviews, guarantees, financing, and local trust signals.

Conversion goals were aligned with how the office actually books jobs: calls first, forms second.

3. ServiceTitan routing & follow-up

  • Every call and form was tracked back to the right campaign.
  • Leads were auto-routed into ServiceTitan with the correct job type and source.
  • Sales and dispatch got simple views: new leads, open estimates, unscheduled jobs.
  • Leadership could finally see “booked jobs per campaign,” not just clicks and impressions.

4. Owner’s-math reporting

Instead of chasing blended “ROAS,” we focused on a few questions:

  • What does it cost to generate a qualified HVAC lead by service line?
  • What does it cost to get a booked job on the board?
  • At current average ticket and margins, what’s our payback window?
  • Given capacity, which campaigns should we Cut, Fix, or Double next?

Results

Over the measured period, the system produced consistent lead volume, healthy job flow, and unit economics the owner could actually scale.

  • Lead volume: roughly 140–160 new leads per week across calls and form fills.
  • Routing: more than half of new leads were properly routed to sales in ServiceTitan for follow-up.
  • Cost per lead: averaged between about $55 and $72, varying by service line and season.
  • Cost per booked job: directionally in the ~$125–$160 range once no-show and close rates were factored in.
  • Ad spend vs. booked revenue: an estimated $20K–$23K in weekly Google Ads investment driving roughly $50K–$100K in booked revenue per week.

Exact numbers are client-confidential; the important part is the repeatable system and decision framework, not a one-time “record month.”

What we Cut, Fixed, and Doubled

Cut

  • Broad, low-intent campaigns that drove calls but rarely turned into booked jobs.
  • Keywords that overlapped with warranty work and low-margin jobs the client didn’t want to scale.
  • Geo segments with high CPL and weak close rates in the CRM.

Fix

  • Tracking issues between Google Ads, call tracking, and ServiceTitan so booked jobs were properly attributed.
  • Lead status and tagging hygiene, so “new lead,” “booked,” and “lost” weren’t living in three different systems.
  • Follow-up workflows for unscheduled estimates and open quotes, especially after busy weather spikes.

Double

  • Service-line campaigns with strong economics and unused capacity (e.g., certain repair and maintenance offers).
  • Top-performing geographies where the brand and reviews already did heavy lifting.
  • Ad variants and landing pages that consistently drove higher call rates and booked jobs, not just higher CTR.

Want similar economics for your HVAC or home services brand?

If you’re already investing meaningfully into Google Ads or other paid channels and want clearer math on what to Cut, Fix, and Double, the next step is a Revenue Decision Review. We’ll plug into your existing tools, map your funnel from lead to booked revenue, and show you where the system is working — and where money is being left on the table.