Inspiration: About 25.6 million people in the United States speak English less than "very well."
The paperwork a hospital hands them on the way out is written at a tenth-grade reading level, and in one study only about a quarter of patients correctly understood their discharge instructions.
Right now those people get this service from whichever bilingual relative happens to be free that evening. It is unpaid, untrained, unavailable at 2am, and it is the only thing standing between a patient and a misread prescription.
The gap is sharpest where it is least discussed. An estimated 39,584 US nursing home residents had limited English proficiency in 2023. Interpreters are not staffed around the clock, so a resident can be unable to communicate a basic need to the person caring for them, at three in the morning, in a bed they cannot leave.
What it does: Surya CareGuide is a health navigator in 13 languages.
- Describe a symptom in your own language and get back how urgent it is, what to do tonight, the warning signs to watch for, and the questions to ask a clinician.
- Photograph a discharge summary, prescription label, or lab result and get it rewritten at a sixth-grade reading level.
- Find nearby care filtered by cost, sliding-scale eligibility, and languages spoken.
- Runs in any browser. Installs as a desktop or phone app. No download, no account, no password.
The point is availability at 2am, in a language the local urgent care does not speak.
How I built it: React 19 + Vite in the browser. Express on Google Cloud Run. Gemini 3.7 Flash does every clinical inference, server-side — the API key never reaches the browser.
The architecture decision the whole product rests on is this: Gemini is not allowed to decide whether someone is dying.
A deterministic rule engine screens the patient's input BEFORE Gemini sees it, and screens Gemini's output AFTER it answers, using red-flag rules written in all 13 languages — cardiac, stroke, respiratory, anaphylaxis, hemorrhage, neurological, obstetric, infant distress, self-harm, abuse.
The engine can raise urgency. The model can never lower it.
On an emergency, Gemini's output is discarded entirely and replaced with pre-written, country-correct guidance. A model that wants to say "this is a heart attack, chew an aspirin" produces "This may be a medical emergency. Call 112 now." Self-care steps are emptied, because self-care advice during a cardiac event is actively dangerous.
Emergency numbers are never assumed. The app asks which country you are physically in and uses that number — 999 in the UK, 112 in Poland, 000 in Australia, 111 in New Zealand. If it doesn't know, it says "your local emergency number" rather than guessing 911. For a product built to serve immigrants and travellers, baking in a US number would have been a real defect.
Every clinical endpoint uses response Mime Type application/json with an explicit responseSchema. That is not decoration — it is what makes deterministic override possible. Urgency can be overridden safely because it is a guaranteed enum field, not a sentence we would have to regex out of a paragraph.
30 automated tests enforce all of this. They never call a model, need no API key, and run offline.
Built in Google AI Studio and deployed to Google Cloud Run.
Challenges I ran into: Making the safety layer work in 13 languages rather than in English. An English-only red-flag screen in a multilingual health app fails precisely the users it exists to serve.
"dolor de pecho", "胸痛", "mwen pa ka respire" and "chest pain" all had to trigger the same screen, and each is tested explicitly.
Emergency numbers were the harder problem. Hardcoding 911 is invisible until it kills someone in Warsaw. Removing that assumption meant threading a country selection through the UI, the API, and the safety layer, and rewriting the model's own output when it mentions the wrong number.
Deciding what to do when Gemini is rate-limited. The easy answer is to serve canned text. We serve the red-flag screen, label the response SERVICE UNAVAILABLE, empty the self-care guidance, and tell the user plainly that nothing was assessed. A wrong dose is worse than a missing one.
Accomplishments that I'm proud of: An AI health product where the AI is genuinely constrained, and the constraint is executable rather than a paragraph in a system prompt. A prompt is a request. A test suite is a guarantee.
Real paying customers during the competition period, not letters of intent.
One person shipped 28,000 lines, 44 components, 36 endpoints, 13 languages, encrypted client-side storage and a tested clinical safety architecture. Five years ago that is a team of six and a year.
What I learned: That the interesting question in AI health is not what the model can do. It is what you
refuse to let it do, and whether you can prove the refusal holds.
Most projects solve the "don't diagnose a heart attack" problem with a stern system prompt. I inverted it: the model does the language work no human is available to do, and a rule engine that has never seen a neural network decides whether this is an emergency. That inversion is the only reason this is defensible as a business rather than a demo.
What's next for Surya CareGuide: Clinician review of the red-flag table and the emergency copy. Those are clinical artifacts currently written by an engineer, and no patient should rely on them until a
physician has read every line.
A substantially wider set of languages by the end of next quarter, prioritised by where the emergency copy can be reviewed by a native speaker rather than by which translations are easiest.
Per-facility licensing rather than per-patient subscriptions. The patient should not be the one paying for the ability to understand their own discharge paperwork.
Around 117 million people are forcibly displaced worldwide, and 71% of refugees are hosted in low- and middle-income countries. Per-minute phone interpretation was never going to reach those places. A browser tab costing a few dollars a month can.
Built With
- express.js
- gemini
- google-ai-studio
- google-cloud-logging
- google-cloud-run
- google-maps
- node.js
- react
- tailwind
- typescript
- vite
Log in or sign up for Devpost to join the conversation.