Case study — Conversational AI in healthcare
Gab
An AI care navigator for addiction treatment — designed so it can feel human without ever being dangerous.
Hi, I’m Rowan. Whatever brought you here tonight — we can take it one step at a time. Want to look around, or start with something specific?
Good news — we’re in-network with Aetna. For exact coverage and cost, a team member can walk you through your benefits whenever you’re ready — no forms tonight.
Every field green-lit by the flow, not the model. The browser never holds the record.
It’s 2 a.m. and someone opens a rehab’s website. Maybe it’s them. Maybe it’s a mother holding her son’s phone, terrified. They’re ashamed, exhausted, one cold reply away from closing the tab.
The assistant that greets them has to feel like a person who cares — and cannot invent a fact, mishandle a confession, or get talked out of its guardrails. Warm enough to trust, safe enough for healthcare: that gap is the whole design problem.
The problem, already shipped twice
Warm and safe usually pull in opposite directions.
This site had already proven it — twice in six months.
Multiple-choice buttons in a node tree — a maze with one exit: a form. It collected insurance details against the promise of a call. The call always came; the conversation never happened.
The nodes were thrown out and a model set loose. No direction, no close, no sense of when a moment had earned a human — and protected health information sitting in the browser.
A node tree again, authored properly — every path safe, nothing invented. A model on top for the words only: it warms the language, never picks the route. Warm like the second door, safe like the first, minus the trade-off both settled for.
The brief behind the brief
The quiet hope was automation.
Under the official brief sat a quieter one: automate admissions, need fewer reps. Gab is — respectfully — a counter-argument. In behavioral health a good rep is often the difference between enrolling and disappearing; the honest problem was that no tool served them. So the work splits along what each side is good at: the machine is patient and unshockable at 2 a.m.; the human keeps the trust, the judgment, the decision.

The principle
The model is the voice, not the brain.
Every choice that carries risk — where the conversation goes, which facts get stated, how much someone’s asked to share, whether a moment is a crisis — belongs to a deterministic system. The model is handed exactly one job: make it sound human. Three layers, checked in order, each trusted with a different amount.
input
- Crisis detection
- Jailbreak defense
- Hard-coded safety override
- Navigation & flow authority
- The three intake paths
- Scoped data capture
- Vetted content — no hallucination
- Tone & phrasing
- Off-topic recovery
- Micro-capture at the right moment
- Multi-field parsing
person sees
Seeing it run
The warmth on one side, the machine on the other.
The hero moment, in motion — three ways in, a stress test, and the one message that stops the product cold.
Whoever takes the callback gets the whole conversation — the path taken, the questions asked, the ones deferred to a human on purpose — not just a name and a number.
The decisions that mattered
A case study is really a record of what you chose.
Four calls did the most work.
It warms the words. It never picks the path.
The model rewrites stiff prompts into something human, recovers off-script moments, and catches a detail the second a person leans in — “my insurance is through my job.” It cannot pick the path, state a clinical fact, or judge danger. Warmth is a feature. Authority is not.
When someone’s in danger, the product stops being a product.
Suicidal intent or overdose hard-stops the flow — every time, no exceptions — and puts a crisis line and a human’s number on screen. The model never gets a vote, because “usually right” is not a safety standard when a life is on the line.
Every extra question is a reason to leave.
Three depths of intake, always the shallowest that fits — a callback needs a name and a number; a full pre-screen waits until someone says they’re ready. Sessions live server-side; the browser never holds the record.
The warmth is also the vulnerability.
A public widget will be jailbroken. A filter runs first, but the real defense is structural — the model is pinned to one point in the flow with one acceptable kind of output. You can’t talk a system out of a decision it was never allowed to make.
The system, drawn
Every path resolves. Nobody hits a dead end.
Decline, crisis, “just browsing,” a question the system can’t answer — every branch routes somewhere humane.
From any stepSuicidal intent or overdose hard-stops the flow— a crisis line and a human’s number, on screen.
They arrive saying…
It asks the least that fits
…and every path resolves
“Just looking.”
Collects nothing
Answers the question. One soft, optional invite to talk.
Leaves informed — no form, no pressure.
“I need to talk to someone.”
Collects
A name and a number.
A real person calls back.
“Will you take my insurance?”
Collects
Insurance card details.
A coverage answer, right in the chat.
●A full pre-screen only unlocks once someone says they’re ready — never before.
↩Typing “start admission” anywhere pulls a person back to the front of the line.
That’s the shape a visitor feels. Underneath, it’s a few dozen scripted nodes — the real map, as designed:

Who did what, plainly
The node map was the real work.
The project began as an analysis of the site’s earlier, pre-LLM system — every path a conversation could take, drawn out as a node map. I prototyped the flow in Figma, then moved into code: getting the nodes and the model’s behavior to feel natural meant iterating them live, with the LLM in the loop, not on a static canvas. Claude Code typed; I decided — the build on this page is my own reference engine, white-labeled.
What that produced was a complete working skeleton — every path, every vetted answer, the crisis stop, the data boundaries, all of it running. Not a mockup: scoped to settle how the thing behaves, not to survive production traffic — every open design question answered in something you could actually use.
The handoff was that running build, the node map, and a filmed walkthrough — with one precondition: a BAA, because you don’t hand a design that captures insurance details to infrastructure that can’t legally hold them. From there the client’s engineers built it out for production — the compliance and scale a prototype gets to skip. The design was theirs to build, never to reinvent.
Built in about a week, and exceedingly cheap to run — it invents nothing on its own, and the little it’s trusted with costs fractions of a cent a question.
▸ The honest claim. No conversion number lives here — the production system and its analytics are the client’s.
The next move
Gab is the front door. Couve is the building.
The intake conversation already collects everything a benefits check needs — payer, member ID, date of birth. Wiring Gab to Couve, the behavioral-health EMR, puts a real out-of-pocket number in the chat the moment coverage verifies — closing the exact gap the research map ends on: authorization silence after a person has said yes. Two projects, one system: the intake-to-admission spine.