The six steps the agent runs on every after-hours ring — from the inbound tone through the two-ring pickup, the address + issue capture, the SMS dispatch out to the on-call tech, the SMS confirmation back to the homeowner, and the filled ticket on the morning board. Holdfast is billed only when that ticket closes — never on call volume, never on a flat retainer for marketing.
How it works
The agent is the first ring. SMS is the safety net. The calendar is where the money lands. We integrate alongside the software you already run — never against it.
After-hours burst, peak-load overflow, or the second line ringing while the dispatcher is mid-call — the call lands on the shop number exactly as it always has. Holdfast listens for ring one through ring three and never lets the call route to voicemail without acting on it first.
The tuned voice agent answers on the second ring with the shop’s greeting and shop hours, in the shop’s voice. No hold music, no IVR tree, no "press one for service" — the caller hears a person, on the call, before they decide to hang up.
The agent asks the three questions a real dispatcher would ask — service address (or cross-streets), the issue in the caller’s own words, and the urgency window. Hang-ups are not lost: the agent writes the captured fields into the same thread and follows up by SMS, not by guesswork on a callback.
A two-hour dispatch window and the captured job notes go to the on-call tech by SMS — not a calendar invite the tech has to open in the office. The tech replies YES or RESCHEDULE from the truck; the agent folds the reply back into the booking state on the same thread.
The caller gets the same confirmed window, the tech’s name, and the on-my-way text in a single SMS thread — same thread they replied to during capture. TCPA-clean consent is captured at the first reply; one-tap STOP is honoured server-side, in the same minute, with no re-ask on the next call.
The confirmed slot writes to ServiceTitan, Jobber, or Housecall Pro — right next to the techs the contractor already knows. The dispatcher sees the recovery like every other ticket on the morning board: name, address, issue, window, recording attached, no shadow dispatch to teach the office.
Worked transcript
The six steps above are abstract on purpose — they read like a flow diagram. The transcript below maps each one to a real line from a recovered after-hours call: a burst pipe that crossed the threshold from “annoying” to “water on the slab” while the office was closed. Step 1 is the inbound ring; Step 6 is the closing tech SMS that writes the ticket to ServiceTitan.
Loading trade-aware transcript…
Need the other two transcripts (AC outage on a July evening · tripped main breaker with a warm panel on a Sunday)? They live on the /samples page.
The same six steps that turn a missed ring into a booked ticket — with Holdfast paid only on the outcome, never on call volume.
Four reads cover the rest of “what does this look like next”: the outcome-priced model (small platform retainer + per-booked-job bonus, billed only when a ticket lands), the real transcripts (three after-hours calls walked line-by-line against the same six steps), the lost-job estimate (three inputs → the per-month number the per-booked-job invoice will defend), and the live recovered-calls proof (three tiles from the same shop-level dataset the founder dashboard reads against, refreshing per page load). For the objections those four leave open — AI disclosure, burst-pipe misroute, the field-service software swap, no-show semantics, homeowner-relationship ownership, after-hours coverage, the reschedule that re-books — read the seven answers on /faq.
Also see
Each one is short, on the same voice, and inherits the same six steps — the order is the order a prospect coming in from a /resources or /birmingham read walks them.
Outcome-priced model
A small platform retainer plus a per-booked-job bonus aligned to actual ticket value — billed only when a job lands on the calendar, never on call volume.
Open /pricingReal transcripts
Three after-hours calls walked line-by-line: a burst pipe at 22:07, an AC outage on a July evening, and a tripped main breaker on a Sunday — each with the same six steps mapped beside it.
Open /samplesLost-job estimate
Three inputs — monthly missed calls, average job value, close rate — turn into a per-month lost-job number the per-booked-job invoice will defend, the same math the audit uses.
Open /calculator20-minute audit
A 20-minute audit takes ten of your recent inbound calls and your last quarter's ticket values and maps the six steps against your shop — no install, no demo deck.
Book the auditFAQ · contractor questions
The seven answers /how-it-works and /pricing leave open — AI disclosure, burst-pipe misroute, the field-service software swap, no-show semantics, homeowner-relationship ownership, after-hours coverage, the reschedule that re-books — anchored to the same booked-job outcome this page walks through.
Open /faqLive recovered-calls proof
Three live tiles from the same shop-level dataset behind the founder dashboard — total recovered calls this week, the after-hours vs business-hours split, and a per-trade breakdown. Refresh the page; the numbers move.
Open /proofNext step
A 20-minute audit uses ten of your recent inbound calls and your last quarter's ticket values to map the same six steps against your shop — no install, no commitment. Three things and we scope your pilot the same week.
Three things and we scope the pilot the same week
Related
Same six steps, four directions: pricing shape, real transcripts, lost-job math, the audit that turns your own missed-call recordings into the same number the invoice will defend.
Outcome-priced model
A small platform retainer plus a per-booked-job bonus aligned to actual ticket value — billed only when a job lands on the calendar, never on call volume.
Open /pricingReal transcripts
Three after-hours calls walked line-by-line: a burst pipe at 22:07, an AC outage on a July evening, and a tripped main breaker on a Sunday — each with the same six steps mapped beside it.
Open /samplesLost-job estimate
Three inputs — monthly missed calls, average job value, close rate — turn into a per-month lost-job number the per-booked-job invoice will defend, the same math the audit uses.
Open /calculator20-minute audit
A 20-minute audit takes ten of your recent inbound calls and your last quarter's ticket values and maps the six steps against your shop — no install, no demo deck.
Book the auditFAQ · contractor questions
The seven answers /how-it-works and /pricing leave open — AI disclosure, burst-pipe misroute, the field-service software swap, no-show semantics, homeowner-relationship ownership, after-hours coverage, the reschedule that re-books — anchored to the same booked-job outcome this page walks through.
Open /faqLive recovered-calls proof
Three live tiles from the same shop-level dataset behind the founder dashboard — total recovered calls this week, the after-hours vs business-hours split, and a per-trade breakdown. Refresh the page; the numbers move.
Open /proof