Inspiration

Teens in crisis rarely think in the language that support systems use. Nobody types "I need domestic violence intervention services" — they type "my boyfriend scares me sometimes" or "I don't see the point in anything anymore." Real help exists: 988, Crisis Text Line, The Trevor Project, Love Is Respect — but the gap isn't that help is missing, it's that a scared, overwhelmed teen has to translate their own pain into the right bureaucratic category before they can even find the door. Compass exists to close that gap: type what's actually happening, in your own words, and get routed to the real organization that fits — by name, by contact method, in plain language.

What it does

Compass is a chat interface where a teen describes their situation freely. The AI reads the message, classifies the underlying need (mental health crisis, bullying, dating abuse, domestic violence, unsafe home, or general need), and returns 1-3 real support organizations pulled from a curated, verified resource list — never invented. Each result shows what the organization does, how to reach them (call/text), and a one-line explanation of why it matches. For any message containing crisis signals — suicidal language, self-harm, immediate danger — Compass bypasses normal AI reasoning entirely and immediately surfaces 988 and Crisis Text Line first, before anything else.

How we built it

The resource directory is a manually curated JSON dataset of verified U.S. support organizations (988 Suicide & Crisis Lifeline, Crisis Text Line, The Trevor Project, National Domestic Violence Hotline, Love Is Respect, RAINN, National Runaway Safeline, StopBullying.gov, SAMHSA National Helpline, 211), each cross-checked against its official website. The matching layer uses an LLM (via OpenRouter) for intent classification — it never free-generates organization names or contact info; it only ranks and selects from the fixed resource list, which eliminates the risk of hallucinated hotlines. A hardcoded safety layer sits in front of the AI ranking: certain crisis signals short-circuit the normal flow and force the crisis-tier resources to the top regardless of what the model would otherwise rank. The interface is a simple chat + result-card UI, designed to feel calm and uncluttered rather than clinical.

Challenges we ran into

The hardest design problem wasn't the AI — it was deciding what the AI should never be allowed to do. Early drafts let the model freely describe organizations in its own words, which risked subtly misrepresenting what a hotline does or who it's for. We constrained the model to a strict retrieval-and-rank role over a fixed dataset instead of open generation. The second challenge was crisis handling: a misclassified urgent message is far worse than an over-cautious one, so crisis detection had to sit outside normal AI ranking entirely, as a deterministic override, rather than something the model could be talked out of.

Accomplishments that we're proud of

Every single resource in the directory is a real, currently operating U.S. service, manually verified against its own official page rather than assumed from training data. The safety guardrail — crisis signals always surface 988 and Crisis Text Line first, no exceptions — is enforced in code, not just in a prompt, so it can't be reasoned around.

What we learned

Designing for teens in crisis means the AI's most important job is restraint: knowing when not to interpret, diagnose, or improvise, and instead hand off to a real human support system as fast and clearly as possible.

What's next

Expanding the resource directory beyond U.S. national hotlines to state and local services (using a 211.org-style API instead of a static list), and adding multi-language support so the same plain-language routing works for non-English speakers.

Built With

Share this project:

Updates