Inspiration

I grew up in LegeTafo, a small town outside Addis Ababa. The healthcare gap there is not really about doctors. It is about the distance to reach one and the cost of finding out whether the trip is even necessary. A neighbor with a fever stays home, hoping it passes, because the clinic is hours away and the bus fare is the day's budget. Sometimes that judgment call is right. Sometimes it is not.

Almost everyone I knew had a phone. Almost none of them had a smartphone. The technology people kept building for health, however, assumed exactly the opposite: bright screens, fast internet, English-speaking users with data plans. The communities I came from were quietly written out of the design.

Voice Triage is my attempt to write them back in. It is a system that anyone with a basic phone can use by simply calling a number, describing their symptoms in their own language, and getting a calibrated recommendation: manage at home, visit a clinic, or seek emergency care. In an emergency, the system also delivers step-by-step first-aid guidance the caller can act on while help is on the way.

How I built it

I built Voice Triage on MeDo, an AI app-building platform, and I treated it as an engineering collaborator rather than a code generator. That distinction mattered more than I expected.

I worked in layers. The first conversation produced the core triage flow and a dashboard skeleton. Each later conversation was a self-contained upgrade spec rather than a stream of edits:

  • a telephony layer designed around Africa's Talking instead of a US-centric provider, so the architecture matches how African carriers actually work;
  • a low-resource speech recognition design using Meta's MMS model paired with constrained-grammar dialogue, so the system only needs to recognize a small vocabulary at each step instead of pretending open dictation works in Amharic or Oromo;
  • a medical safety rail: when triage confidence is below a calibrated threshold, the system escalates to in-person care or a human operator instead of guessing, and every decision is written to an audit log;
  • an Africa-wide map of real health facilities sourced from OpenStreetMap and healthsites.io, rendered offline-first with react-leaflet so the map loads instantly even on weak networks;
  • an emergency first-aid layer built from a fixed library of pre-vetted protocols based on WHO and IFRC first-aid guidelines, where the AI only classifies the situation and never authors the medical content;
  • and a judge-interactive pass that turned the demo from something a reviewer watches into something they test: speak a symptom, watch it run through triage, the safety rail, and clinic routing on a live map.

The triage intelligence is LLM-driven, but the project's credibility comes from refusing to stop at the API layer.

What I learned

The strongest lesson was that uniqueness in a project like this does not come from the AI. Anyone can wire up an LLM. The differentiation lives in the constraints you design around and the real systems you connect to. Designing for feature phones forced me to think about latency, language coverage, and offline behavior in ways smartphone-first projects never have to.

I also learned, in a way I had not before, how to talk to an AI builder. Leading with constraints rather than features produced better architecture. Building in self-contained upgrade specs stopped earlier work from regressing. Using the builder's own error feedback as a loop, rather than patching around it, surfaced real bugs (one dynamic-import failure traced back to a single misbehaving component) and resolved them cleanly.

Challenges

Low-resource languages. General speech recognition is genuinely bad at Amharic, Oromo, Hausa, and Tigrinya. Hiding this would have undermined the entire project. Instead I made it the centerpiece: use MMS for the languages that need it, and design the dialogue as a constrained vocabulary so recognition accuracy stays usable.

Medical safety. First-aid content is medical advice. Letting an LLM free-generate CPR instructions would be unsafe. The architectural answer was to make the AI a classifier only and keep the medical content static, vetted, and traceable to authoritative sources.

Self-explanation. Because this submission has no video, the deployed site has to explain itself to a judge clicking through it alone. That changed how I designed every panel. Captions name the specific thing being demonstrated, not generic "processing" text, and the demo is interactive precisely so a judge becomes a tester rather than an audience.

What I built is a prototype. What I learned is how to keep building it.

Built With

Share this project:

Updates

Submission history