Inspiration

One in five prescriptions in the United States is never filled, and about half of the rest are taken incorrectly (CDC). For the 25 million Americans who speak limited English, the label on the bottle is not even readable. The doctor did everything right, and the patient still goes home and guesses. Pharma spends billions getting a drug prescribed and loses the patient in week one. Nobody owns week one. We wanted to give every patient the thing wealthy patients already have: someone to call who knows their chart and speaks their language.

What it does

CuraVox lets a physician hand a patient a personal medication companion in thirty seconds. Her name is Cora. The physician picks the drug, the language, and the patient's first name, adds visit notes and contacts, and gets a QR code. The patient scans it, taps one button, and talks to Cora in Spanish, French, or English. Cora answers out loud in a natural voice, using only two sources: the approved information sheet for that medication and what the doctor wrote about this patient. Ask about a missed dose, DayQuil, a beer this weekend, or what the doctor said last visit, and she answers from the doctor's plan. Ask something the plan does not cover, and Cora does not guess: she files the question to the physician's inbox, the doctor answers in one line in English, and Cora delivers it back to the patient's phone in their language, spoken, within seconds. She requests follow-up appointments and flags concerning symptoms the same way. No app, no login, no patient data stored anywhere.

How we built it

Next.js 16 and TypeScript, one app for both sides. Google Gemini 2.5 Flash for the answers, boxed in by a strict system prompt built from a structured drug monograph plus the physician's record. Deepgram Nova-3 for speech to text and Aura-2 for Cora's voice, both behind server routes so keys never reach the browser. The companion link is the database: patient first name, medication, language, doctor, visit notes, and contacts are compressed with lz-string into the QR code itself, so there is no patient record at rest. Cora's actions are structured tags she appends to her replies; the server strips them, files them to an in-memory inbox, and the physician dashboard and the patient phone both poll it. Tap-to-talk instead of hands-free, on purpose: patients are often elderly, in noisy kitchens, and want time to think.

Challenges we ran into

Everything worked on the laptop and nothing worked on the phone, three times over. The QR encoded localhost, which a phone cannot resolve. Fixing that exposed that crypto.randomUUID() does not exist on non-secure origins, so the chat crashed silently. Fixing that exposed that Next.js 16 refuses its dev WebSocket from any host not on an allowlist, and its matcher compares hostname segments right to left, so an IP address needs a four-segment pattern. Then the microphone only works over HTTPS, so we ran the dev server with a self-signed certificate. Gemini's free tier rate-limited us mid-demo, so the API now falls through four models. Getting Cora to actually file an action rather than just promise to took making the tag a hard rule with worked examples in the prompt.

Accomplishments that we're proud of

The full loop works end to end on a real phone over Wi-Fi: physician adds a note, QR updates, patient scans, speaks in Spanish, Cora answers in her voice from the doctor's plan, escalates what she should not answer, and brings the doctor's reply back in Spanish. Cora refuses to freelance and attributes every instruction to the physician. We round-tripped Cora's own Spanish speech through the transcriber and got it back word for word, accents included. And the whole thing runs on one laptop with two API keys at roughly a nickel per conversation.

What we learned

The constraint is the product. A model that knows one care plan and one doctor's notes is more trustworthy, more useful, and easier to make compliant than one that knows everything. Voice is not a feature you add to a chat, it is the interface for the people who need this most. Judges and clinicians think in visit notes, not knowledge bases, so we rebuilt the physician side around the record they already keep. And a demo that only works on localhost is not a demo.

What's next for CuraVox

Server-side records with revocable links instead of notes inside the QR. Business Associate Agreements with Google and Deepgram, which both offer, to make the HIPAA-conscious architecture HIPAA-compliant. More medications from Impiricus's brand partners, each one a data file. Anonymized question trends back to the physician and the brand: what patients actually ask in week one is data nobody has. SMS delivery for patients who cannot scan, adherence check-ins, and the languages nobody serves, starting with Wolof and Fulani, where our team's earlier work already leads.

Built With

Share this project:

Updates

Submission history