Live demo — not a video

Tell it what broke. Feel it triage you.

Northwind Heating & Cooling is a fictional company. Everything else is the production system: the same telephony, the same AI tool loop, a real calendar it genuinely checks before offering a time. Tell Maya your furnace died and she runs a real dispatcher's triage — which system, what it's doing, a gas-and-CO safety screen, who's in the home — then routes you: on-call technician with an arrival estimate, or the right visit on the calendar. The flight recorder shows every decision land.

The call

Uses your microphone. A short live call — hang up any time.

Flight recorder

This panel narrates the machinery during your call: the signed session token, the triage classification the moment Maya has asked enough (system · symptom · severity · routing), the real calendar lookup with its timing (watch the cache turn 1.4 s into 0 ms), and the booking when it lands. Mention a gas smell and you'll see the red safety stop instead.

The week it’s reading — live

This is the company’s actual job calendar, fetched over CalDAV — the same one the dispatcher checks before offering you a time. Ask for a slot inside a grey block and she’ll tell you a technician is already out on a job. Book a free one, and your visit pops in below while you’re still on the call.

Jobs already booked Booked on your call
Screens every call for gas & CO risk Triages before it ever offers a time Never quotes prices Never diagnoses over the phone Says it's an AI when asked Books straight into the calendar

Things worth trying

AnswerVapi telephony streams the caller to a FastAPI service exposing an OpenAI-compatible endpoint; Claude runs a native tool loop.
TriageA classification tool must run before any booking: system, symptom, hazard screen, severity. Emergencies route to the on-call technician with an ETA; everything else books the right visit. Each decision shows in the recorder as it happens.
Check & bookAvailability comes from live CalDAV free/busy — cached per profile, so repeat lookups fell from 1.47s to ~0ms (≈10× less calendar load). Bookings write real events.