Inspiration

Saathi started with a phone call. One of our teammates learned that his sister was pregnant- great news, until it came time to schedule her first prenatal visit. What should have been straightforward quickly became overwhelming. Finding an in-network OB, figuring out whether she needed a referral, and understanding what her insurance actually covered meant jumping between portals, phone calls, and dense policy documents.

She's pregnant and exhausted, yet she's spending hours trying to decode insurance instead of focusing on her health. That experience isn't unique millions of people face the same confusion when navigating a new diagnosis, surgery, or specialist referral.

We built Saathi (companion) to make that process simpler. The healthcare and insurance systems already exist; what's missing is a guide that can read the fine print, do the legwork, and clearly answer the questions people actually have: where to go, what it's going to cost, and what to expect.

What it does

Saathi walks a patient end-to-end through getting care they can actually afford, in six steps: Intake: A guided conversation that builds your profile: the procedure you need, your insurance, budget, location, whether you have a referral, how far you're willing to travel. Document Intelligence: upload your insurance card, referral, or lab order and Saathi pulls out the details that matter (CPT codes, diagnosis, network info) with a manual-review step so you can correct anything before it's trusted. Provider Research: finds and compares providers with cost, distance, ratings, and availability, and attributes where every number came from. Coverage Verification: checks each provider against your plan and labels every single fact as Verified, Estimated, or Unknown, so you're never guessing what's solid. Recommendation: ranks your options with a transparent score across cost, coverage, quality, distance, and availability, and explains the tradeoffs in plain English. Care Plan : hands you a final plan: where to go, expected costs, what documents to bring, questions to ask, and a checklist for the appointment.

Every claim is sourced and every uncertainty is labeled, because the last thing a patient needs is confident-sounding advice that turns into a surprise bill.

How we built it

We built the project as a monorepo with a FastAPI backend, a Next.js 16/React 19 frontend, and Supabase handling our database, authentication, and file storage. At the core of the platform is the OpenAI Agents SDK with GPT-5.6. Instead of relying on one large prompt, we split the workflow into specialized agents- one each for intake, document processing, research, coverage analysis, recommendations, and care planning. Each agent returns structured, schema-validated data, which makes the entire pipeline much more reliable than passing around free-form text. Before introducing any AI, though, we built a fully deterministic version of the pipeline. It uses regex-based extraction, rule-based scoring, and source attribution to complete all six stages from start to finish. That gave us a working, testable baseline from day one and lets us compare the LLM agents against something we can actually verify instead of treating the model as a black box.

One part we're especially proud of is the infrastructure behind the scenes. We built a durable job queue with retries, exponential backoff, and dead-letter handling, and it can run either on a lightweight local JSON store or on PostgreSQL using LISTEN/NOTIFY so workers pick up jobs almost instantly. We also added versioned document corrections, route-protected authentication through Supabase, and a pytest suite of around 1,000 lines that exercises the entire workflow from patient intake all the way to generating a care plan end to end.

Challenges we ran into

Unstructured, unpredictable data from the outside world. This was the whole game. Insurance documents, referrals, and lab orders don't follow a schema - every insurer formats things differently, half the important info is buried in prose, and the same field shows up five different ways. Getting reliable structure out of that mess, while being honest about our own confidence, forced us to build the Verified / Estimated / Unknown labeling and the manual-review correction loop. We'd rather tell a patient "we're not sure about this one" than confidently hand them a wrong number.

Accomplishments that we're proud of

A complete, working six-step flow: every stage is built, wired to the UI, and tested end to end, not a demo that only works on one happy path. Infrastructure that punches above a hackathon: a real job queue with retries and dead-lettering, versioned corrections, and instant Postgres notifications. Trust as a feature: every fact is sourced and every uncertainty is labeled, instead of hiding the guesswork. The moment it got real: we ran the teammate's sister's situation through Saathi, the pregnancy and referral and coverage mess she'd spent hours on hold over, and watched it come out as a clear plan: where to go, what it'd cost, what to bring. That's when it stopped feeling like a hackathon project and started feeling like something worth finishing.

What we learned

One of our biggest takeaways was that healthcare data is inherently messy, so we designed our labeling system to embrace that uncertainty instead of trying to ignore it. We also learned that the less glamorous parts of the system matter just as much- the job queue and deterministic baseline gave us the stability to iterate quickly without building on shaky ground. Finally, building with cutting-edge tools was a valuable experience in itself. When there wasn't already an answer online, we had to read the source code, experiment, and learn how the tools actually worked.

What's next for Saathi

A Post-Care Bill Advocate. Right now Saathi gets you to the right care. The next step is staying with you after the appointment: an agent that reads the bill you actually get, cross-checks it against what your plan should have covered and what was quoted, and flags anything odd like duplicate charges, out-of-network surprises, codes that don't match the service, balance billing that shouldn't be there. Because the fight isn't over when the visit ends. That's usually when the confusing bill shows up, and that's exactly where people give up and just pay it. We want Saathi to catch what they'd otherwise miss.

Built With

Share this project:

Updates