Inspiration
Patient interviews are rushed, and one question nobody asks can mean a missed emergency. We wanted a copilot that helps clinicians ask the right next question without trying to diagnose anything. Jev made that practical. It's a typesafe model that responds fast and cheap, so it can run on every message of a live conversation, not just once at the end.
What it does
Dr. Jev listens to what a patient says and suggests the three most useful questions to ask next.
- Routing: it decides which body system the complaint belongs to: urinary, respiratory, cardiovascular, neurological, digestive, oral, musculoskeletal, head and neck, or skin. Complaints that touch two systems activate both.
- Red flags: it checks every system for red-flag symptoms on every request, so a dangerous symptom like chest pain, blood in the urine, or stroke signs surfaces even if the conversation seems to be about something else.
- Unclear input: if it can't tell what the problem is, it asks a clarifying question instead of guessing.
- Scope: it never diagnoses or gives advice. It only suggests what to ask.
How we built it
- Question banks: each body system has a JSON bank of questions, each with a rationale and a status of "needs clinician review". Each bank also has red-flag detectors and a fallback checklist.
- Two stages: a router stage reads the patient's statements and picks the right bank or banks. A scoring stage then ranks only those banks' questions.
- Typesafe Jev calls: every decision is a typed yes/no probability, a multiple-choice, or a 0-to-1 score. That means no free-text parsing and fast, cheap batched calls.
- Reliability: if the API fails, a keyword router and fallback checklists keep the app working.
- Adding a specialty: this takes one JSON file and one manifest entry.
Challenges we ran into
- Building a good question bank was the hardest part. Questions had to be short, askable out loud, and clinically meaningful. Each one also needed a rationale, and the red flags needed detection instructions precise enough for a model to apply.
- Routing must not hide emergencies. A wrong route could bury a red flag, so red flags are checked across all banks regardless of routing.
- Overlapping domains. Chest pain plus trouble urinating, and headache versus neurological symptoms, meant supporting multiple active banks and removing duplicate questions.
- Question IDs collided across banks, so we namespaced every question and red flag by bank.
Accomplishments that we're proud of
- A working end-to-end pipeline that goes from a patient's sentence to routed, ranked, red-flag-aware questions in less than a second.
- 26 question banks with about 40 questions and 10 red-flag detectors each
- Graceful degradation, so the tool stays useful even when the model is unavailable.
What we learned
- Typesafe, structured outputs make LLM decisions fast, cheap, and easy to test. Small models can do real work when each call asks one narrow question.
- Safety checks should be independent of routing and never depend on a model guessing the right category first.
- The model was easier than the content. A good question bank is the real product.
What's next for Dr. Jev
- Clinician review and sign-off on every bank, since all questions are currently AI-drafted.
- More specialties, including ophthalmic, ENT, gynecological, pediatric, and mental health.
- Voice input and live transcription for use during real visits.
- Learning from which suggestions clinicians actually use to improve ranking.
- Support for more languages.
Log in or sign up for Devpost to join the conversation.