The shop
Halden HVAC & Refrigeration has been running out of a small yard on the north side of Springfield since 1987. Marcus Halden took it over from his father in 2011. Twelve people on payroll: Marcus, an office manager, a dispatcher, four senior techs, three juniors, two apprentices, one estimator who also runs commercial installs. About sixty percent residential, forty percent light commercial (small restaurants, one grocery chain, a couple of manufacturers).
They had already tried the software route. ServiceTitan came in 2019, went back out in 2021 because the interface was faster than the shop could absorb and nobody had time to babysit the migration. Since then the schedule was a whiteboard the dispatcher rewrote every morning, customer history was half in Excel and half in Marcus’s head, and quotes got hand-written in the truck and typed up at night. Some quotes took three or four days to send.
Where the hours were going
Before (measured in the audit week)
Job done to invoice sent
Averaged over the previous six months.
Missed calls, work hours
Went to voicemail. Techs checked when they could.
Site visit to quote sent
Some ran a full week.
Follow-up rate on stale quotes
Anything past 48 hours mostly fell off.
Marcus’s admin time
Almost all of it after 8pm.
Nothing on that list is unusual for a shop this size that has run on paper for a long time. The hours after dinner are the ones that stand out to the owner. Marcus had stopped answering the phone at 8pm because there was nothing he could do with the calls that came in.
What the engagement did
The order of operations is the argument. Nothing was installed in phase three that phase one hadn’t made possible.
Where we started
Five workflow areas ran on paper, on a whiteboard, or from the owner’s memory. Nothing talked to anything else.
Weeks 1–4: the schedule, the quotes, the invoices come first
These three get digitalized before anything else. Without them, nothing downstream is worth automating and nothing AI-adjacent has anywhere to sit.
Weeks 5–10: hand off the boring parts
Field-to-invoice loop closes automatically. Follow-ups run themselves. After-hours calls stop dying in voicemail.
Weeks 11–14: AI, only where it earned it
Phone triage and quote drafting go in because the shop already had somewhere to put them. Two other AI pitches were considered and dropped.
Fourteen weeks in
The owner is out of the after-hours phone loop. Invoices go out same day. Quote-to-close rate is up. Nothing on the board is still "on paper."
Fourteen weeks of the field-to-invoice loop closing
The chart below is one dimension out of many. It happens to be the one Marcus watches, because it is the one that used to eat his nights.
Job done to invoice sent(days, monthly average)
The phases, in order
- Phase 1 Weeks 1–4
Digitalize
Everything the shop knew that lived on paper, in a notebook, on the whiteboard, or in the owner’s head got moved into one system the whole team could see.
- Migrated 18 years of customer and asset history into Jobber (a lighter fit than the ServiceTitan attempt from 2019).
- Retired the dispatcher’s morning whiteboard rewrite. The schedule now lives in one place and updates in real time.
- Built a pricing library so quotes stop being retyped from memory.
- Phase 2 Weeks 5–10
Automate
Once the work lived somewhere a machine could read, we handed the boring parts over.
- Tech marks a job "done" in the field. Invoice goes out that same hour.
- Unaccepted quotes get an email at 48h, a text at day 5, a call reminder at day 12. Nothing falls off.
- After-hours calls route to the on-call tech with an SMS ping and a short voice summary.
- Weekly ops report auto-compiles Sunday night, in the owner’s inbox Monday at 6am.
- Phase 3 Weeks 11–14
AI, where it earned it
Two AI pieces went in. Two others were considered and dropped after the shop looked at what they would actually change.
- Installed: AI phone-answering for emergency triage. Routes to on-call tech or books next-day, in the owner’s voice profile.
- Installed: AI quote first-draft. Tech dictates site notes on the drive back, gets a first-pass quote to review, edits, sends.
- Dropped: website chatbot. The team read 40 sample transcripts from vendor demos and could not find one they would send a customer.
- Dropped: AI-generated marketing copy. Marcus felt it sounded like everyone else’s marketing copy, which is fair.
What changed, measured the same way
After (measured in the fourteenth week)
Job done to invoice sent
Down from 6.2. Same-day for most jobs.
Missed calls, work hours
After-hours goes through triage; work-hours dispatch caught the rest.
Site visit to quote sent
Techs draft in the truck, review, send. Same day for most.
Follow-up rate on stale quotes
Automated sequence runs 48h, day 5, day 12.
Marcus’s admin time
Down from 380. Most of it now Sunday review of the Monday brief.
One workflow, one honest comparison
What we did not install
The pieces that stayed out matter as much as the pieces that went in. The team looked at a website chatbot for two afternoons and could not find a single sample transcript from vendor demos that they would have wanted a Halden customer to receive. Same story for AI-generated marketing content: Marcus read three drafts, said they read like every other HVAC page in Missouri, and asked us to skip it. Those were the right calls. The point of the engagement was not “install more AI.” It was to make the shop run cleanly enough that the AI we did install had a chance of being useful.
I stopped answering the phone at 8pm because there was nothing I could do about the calls that came in. Now the system handles them and I sleep.
The point the shop wanted made
Marcus put it plainly in the final review: what changed was not that the shop got smarter. What changed was that the pieces the shop already knew how to do stopped falling on the floor between them. AI helped in two specific places. The rest of the recovered hours came from the paper going away.