Carlos has run his shop for eleven years. Before that, he was a tech for a larger outfit that eventually got bought by one of the national consolidators — he watched, up close, what happens when a small HVAC business gets force-marched onto a platform built for a 50-tech ServiceTitan deployment. He decided he'd never own one of those platforms. He spent ten years instead running his entire operation off a spreadsheet, three group texts, and his memory.

That worked. Until the first hot day of every summer.

The day before OpsLight

Carlos's bad day used to start around 6:30am on the first morning that the Bay Area broke 85 degrees after a cool June. Every PM contract customer with an aging AC suddenly had a problem. Every residential customer who'd been ignoring a weird noise since April suddenly had a problem. His voicemail box would fill up before he'd finished his coffee. He'd open it to find sixteen, eighteen, twenty-three messages — some emergencies, some routine, some calls about scheduled maintenance unrelated to the heat.

The triage problem was: he had to listen to all of them before he could dispatch any of them. Twenty-three voicemails at an average of forty seconds each is fifteen minutes of listening. By the time he'd gotten through them, he'd be looking at a 9am-and-counting backlog of customers who hadn't had a callback yet, and the people who actually had a hot office or a no-cool 95-year-old needed to be on his calendar first.

The industry data hits exactly here: two missed calls per week translates to roughly $50,000 in lost revenue per year, and 67% of callers hang up rather than leave a voicemail. The first hot day of summer is when those numbers crystallize. Customers who called and got a busy signal didn't call back — they called the next guy on the Google list. Carlos would learn six months later, from a chance conversation, that he'd lost a 12-unit office building's account because nobody answered on June 4th.

He'd tried ServiceTitan during one of his quieter winters. The estimate ran $400 per tech per month plus an implementation cycle measured in months. As he told us: "Using ServiceTitan to handle a five-truck shop is like using a sledgehammer to drive a finish nail." He cancelled before the implementation completed and joined what BBB reviews describe as ServiceTitan's notable "cancellation horror" cohort. After that, he didn't try another platform for three years.

"Big-platform HVAC software is built for the consolidators. Not for a five-truck shop that wants to stay a five-truck shop. We tried the big one and it almost broke us."

Carlos Mendoza · Mendoza HVAC

How Carlos found OpsLight

A commercial customer — a mid-size property management firm with eight office buildings — implemented OpsLight with their plumbing vendor. The PM lead mentioned to Carlos that her plumber's monthly summary emails were now arriving on the 1st of every month, automatically, on letterhead, with every visit logged. She told Carlos she'd never been happier with a vendor relationship and gave Carlos our contact.

The setup conversation walked through three HVAC-specific configurations:

  • Emergency classification rules. "No heat," "no cool," "smell of gas," "smoke from unit," "refrigerant leak," "compressor seized," "unit on fire" — all trigger immediate on-call SMS regardless of time.
  • PM service vs install vs repair triage. The classifier distinguishes the three flows and routes each to the right tech. Eduardo handles installs. Luis and Roberto handle commercial PM. James handles residential service.
  • Monthly service-agreement reports. Every PM contract customer gets a templated monthly summary on the 1st: visits performed, parts replaced, filter changes, refrigerant readings where applicable, recommended action items.

OpsLight went live three weeks before what turned out to be the hottest June in Bay Area record. The first day above 90 degrees, Mendoza HVAC's voicemail received 23 incoming messages between 6am and 9am. None of them sat in a queue. Each one had been classified, written to the Sheet, and routed within 90 seconds.

Three moments from the first hot day

Tuesday · 6:34 AM

The 6am voicemail that wasn't actually an emergency

A PM customer left a voicemail at 6:34 saying her tenant complained about a "weird smell" from the office AC. Phrases like "smell" sometimes trigger emergency classification — but Claude's classifier reads context, and "weird smell that started yesterday" plus "tenant left a note this morning" landed it as urgency=medium. Roberto saw it on his morning queue at 7:15 and scheduled a same-day mid-morning visit. Real emergency calls got dispatched first.

Tuesday · 7:01 AM

The actual emergency

A second voicemail came in at 6:58 from a downtown property: "compressor on the 4th floor unit is making a god-awful noise and the lobby is now 87 degrees." The phrase "compressor" plus "noise" plus a temperature reading triggered emergency. Luis, who was the on-call tech and was already on the freeway, got the SMS at 7:01 with the address and the transcript. He rerouted. Customer had a working unit by 9:30 — and that's a 4-figure callback ticket Carlos would have heard about at 9am if it had sat in the queue.

First of the month · 8:00 AM

17 monthly reports go out before Carlos is at his desk

On the 1st of each month, OpsLight assembles each commercial customer's monthly service-agreement report — visits performed, parts replaced, filter changes, refrigerant readings, recommendations for next month. Carlos used to spend two Saturday hours in his office assembling these by hand from his Sheet. Now they're sent by 8:00 on the 1st. He reviews them when he gets in at 8:30 and approves with a thumbs-up.

Six months later

Carlos's first-hot-day revenue this year was 38% higher than the previous year's. Some of that is the hot summer itself, but the comparable-day-comparable-weather analysis shows roughly half the increase is calls he would previously have lost because he didn't get back to them fast enough. He also signed two new PM contracts in the fall directly from referrals by existing commercial customers who'd seen the new monthly-report format.

The shift in his weekly cadence is what he keeps mentioning. He used to spend most of Saturday catching up — the "payroll panic" hours where the week's intake, scheduling, and invoicing had to be reconciled before Monday. That block is now thirty minutes on Friday afternoon. Sometimes zero.

"I didn't get bigger. I just stopped leaking. The first hot day used to break my year. Now it's just another day with more calls than usual — and they all land where they're supposed to." Carlos Mendoza

What's configured specifically for HVAC

  • HVAC-vocabulary intake classifier. Knows equipment (split system, package unit, mini-split, rooftop, boiler, heat pump), refrigerants (R-410A, R-22, R-454B), failure modes (compressor seized, evap freeze, condensate overflow, blower motor, capacitor), commercial vs residential vocabulary.
  • Emergency keyword list. No heat, no cool, gas smell, smoke, refrigerant leak, compressor noise, electrical burn smell, building-wide outage. Any trigger immediate SMS.
  • PM contract account list. Each commercial account has its equipment inventory, PM frequency, filter sizes, refrigerant type, and the contact for monthly reports.
  • Monthly service-agreement report template. Auto-assembled on the 1st. Reviewed and approved in 5 minutes.
  • Triage queue priority. Emergencies first. Then commercial PM customers. Then residential. Then estimate requests.
  • Closeout templates. Service ticket, parts-replaced log, refrigerant charge record, system-tagged photo (when applicable in v2).

What HVAC contractors ask us

Does this replace ServiceTitan?

For shops in the 1-10 tech range, yes — OpsLight covers intake, dispatch, crew check-in, document generation, and reporting at a fraction of the cost and complexity. For shops above 20 techs with a dedicated dispatcher and complex inventory management, you probably actually need ServiceTitan or BuildOps.

Can OpsLight handle our PM contract obligations?

Yes — the PM frequency, scope, and equipment inventory live in the per-account config. The monthly report template includes visit confirmation, parts replaced, observations, and the obligation status (e.g., "spring filter change complete"). Property managers love it because it shows compliance with the contract terms.

What about refrigerant tracking and EPA compliance?

OpsLight captures refrigerant additions and recovery as fields on each service record. It does not currently file Section 608 reports for you — that's still your responsibility — but the data is structured and exportable.

How does after-hours on-call rotation work?

You define the rotation (e.g., Luis Mon-Wed, Roberto Thu-Sat, Carlos Sundays). OpsLight respects the rotation and sends emergency SMS only to whoever's on-call that night. If they don't acknowledge within 10 minutes, it escalates to the next person on the list and then to you.

What's NOT included that I should know about?

No in-product invoicing — we feed your existing system. No inventory tracking yet (truck stock, parts levels). No GPS verification of tech location. No customer-facing app for "your tech is 20 min out" notifications (templated outbound SMS exists, but it's not a tracked map link). Be honest about what's not there before you sign.

Related trades

Want to see this configured for your HVAC operation?

20 minutes on a call. We'll wire up a sandbox configured for your PM accounts, your on-call rotation, and your emergency keywords. Send us a real voicemail and watch the dispatch land in real time.

Book a walkthrough