Zubin Deepak Rajasekar
Back to home page

Haven

Category

Hackathon

Year

2026

A companion for young people on NHS mental health waiting lists, built in a day at a healthcare hackathon. The design work was deciding what the model must never do.

A companion for the waiting period, not a treatment product. It points a young person to a named service they can use tonight, and is built so the highest-stakes moments never depend on generated text.

Context

Built in a day at the LBS Healthcare Hackathon, May 2026. I ideated the product and built it end to end. The other three worked in mental health, including the CEO of a mental health clinic, and shaped the routing and the safety boundaries from clinical practice.

The gap

At the end of November 2025, more than 550,000 mental health referrals for under-18s in England were still waiting for meaningful help. More than half had been waiting over a year. Nearly 166,000 had been waiting more than two.

Some will have had a first contact. What none of them have is anything designed for the interval itself.

In February 2026 the Royal College of Psychiatrists published those figures with a warning attached: that the delay risks pushing vulnerable young people toward public AI chatbots that carry no safeguards appropriate to them.

They were right, and it is already happening. General-purpose chatbots, at night, alone, for exactly the conversations those systems are least equipped to hold. No escalation path, no awareness of the referral the user is already inside, no record that the conversation happened.

That is the actual competitor. Not another service. An unsafe default that the profession had already named.

Haven village with five places to go
Five places to go, no intake form. Only one of them calls a model.

What it does

Haven is a companion for the waiting period. A young person describes what is going on, and Haven points them to a specific named service they can use tonight, such as NHS Talking Therapies, Kooth or Shout, or back to their GP where the referral needs revisiting. It does not treat, and it does not pretend the wait is not happening.

The product is a small illustrated village with five places in it, not a chat window. The target user has already decided not to phone anyone, so a clinical form loses them at the first field.

Only one of the five places calls a model at all. The Lighthouse, the Library, the Signpost and the Common Room are fixed content: crisis numbers, breathing exercises, a service directory, other people's accounts of waiting. That ratio was the design, not a scoping compromise. Almost everything a person needs during the wait is retrieval, and retrieval does not need a model.

Inside the Listening Post there are three model calls, and only one writes anything the user reads as conversation. The other two are a one-word safety classifier and a bounded reformatting of what the user already said.

Haven Listening Post
The Listening Post is the only place that calls a model. The other four are fixed content.

The Listening Post

Breathing exercises and a service directory live elsewhere in the village, with no model in either. That is what four of the five places look like. The Listening Post is the exception, and even there most of the work is constraint rather than generation.

The five decisions that mattered

Four constrain the model rather than extending it. The fifth is the boundary the product sits inside.

Haven crisis screen with fixed support numbers
Risk language short-circuits generation entirely. Fixed text, fixed numbers, no model output.

Crisis handling never reaches the model

Risk language is detected before the completion call and short-circuits it entirely. The user lands on a fixed screen with Samaritans, Shout and 999. No generated text is involved in the highest-stakes moment in the product. A model that is right 99 times out of 100 here is not good enough, and it cannot be made good enough by prompting.

Haven chat conversation capped at three turns
Three turns of listening, then a routing decision. The cap is structural, not a prompt instruction.

The conversation is capped

Not because the number is optimal, but because an uncapped supportive conversation with a distressed person becomes therapy by drift. The cap forces a routing decision while the exchange is still small. Three turns of listening, then a routing decision.

Every exit terminates at a human service. Haven never resolves a conversation itself. The output of a successful session is a named organisation, not advice.

Haven GP routing card with things to say
The list is written by the model and bounded to what the user said. A description of the conversation, not a conclusion about the person.

No diagnosis, ever, including by implication

The routing logic distinguishes "this has lasted months and is affecting your sleep, your schoolwork and your friendships" from "this is a hard fortnight", and when it routes to a GP it produces a list of things to say, drawn from what the user told it. Duration, sleep, "I stopped going to lessons." The list is model-written and bounded to what was said. That last point renders as "The impact on your studies." It never names a condition, because it is a description of the conversation, not a conclusion about the person.

Haven Common Room with shared accounts of waiting
Shared accounts of the wait. Fixed content, no generation.

The cohort is one this could not ship to

The waiting list is under-18s, which means a safeguarding protocol is not a later refinement, it is a precondition for a single real user. Haven does not have one. Building for this group in a day meant building something that cannot be deployed to the group it is for, and that constraint shaped what went in more than any other.

And one that is not a constraint. The Common Room is fixed content, shared accounts of the wait, no generation involved. It exists because the loneliest thing about a waiting list is assuming you are the only one on it, and that is a product problem rather than a clinical one.

Haven commissioner dashboard with mock metrics
The right metrics to be judged on. Mock figures throughout, and two of them unobservable from inside the product.

What it is not

A six-hour prototype with a commissioner dashboard running on mock figures.

The metrics on it are the right ones to be judged on, and none of them have been measured. Drop-off and time to first contact are the two Haven could not measure even with real users, because it has no visibility into the NHS side of the referral. It knows who opened it. It cannot know who eventually got seen. A commissioner view that reports on outcomes it structurally cannot observe is the exact failure the rest of this project is about, and it is sitting in the build.

Nothing here has been near a patient. Beyond the safeguarding protocol, it would need clinical governance and an evaluation of the routing logic against clinician judgement before it went anywhere.

Why it is here

Everything else on this site is solo, professional-facing, and built over weeks. This was a consumer product, built in a day, with three people who do this work for a living in the room.

The pull throughout was toward letting the model do more, because letting it do more demos better. Under time pressure, with a panel to impress, and in the one domain where being usually right is not a passing grade. It did not, and that was the build.

More projects