DEV Community

Cover image for My dad's health insurance covered nothing, so I built an AI that reads the fine print for him
Jayant Jeet Tomar
Jayant Jeet Tomar

Posted on AI-assisted

My dad's health insurance covered nothing, so I built an AI that reads the fine print for him

Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle Submission 💸

This is a submission for the Hacktoberfest Open-Source AI Challenge: Side Hustle

What I Built

Insurance Samjho ("samjho" = "understand", for the non-Hindi readers). You upload your health insurance policy PDF, and it tells you, in plain language, where the policy will quietly leave you paying out of pocket.

Here's why it exists.

A few insurance agents got hold of my father. You know the type: warm smile, big promises, "sir, everything is covered." He bought a policy. Then he was hospitalized for knee pain, and nothing was covered. Nothing. Zero. The "everything" in "everything is covered" was doing a lot of heavy lifting.

So I did what any slightly furious son would do: I read the entire policy. Forwards. Then backwards, in case the plot twist was at the end. Verdict: a deeply mediocre policy, nowhere near worth the premium he was paying.

furious reading

And my dad isn't special here. Most people holding a health policy have no idea what's actually in it. Policy documents are 40+ pages of legal English written by people who are paid by the word and punished by clarity. Nobody reads them until the hospital bill arrives, and by then it's a bit late for reading.

So now you upload the PDF and get risk-level cards: long waiting periods for pre-existing diseases, room rent caps, deductibles, sub-limits, co-pays and more. Every finding links back to the exact quote from your policy, so you're not trusting an AI's vibes. You can check it yourself.

The whole site also works in Hindi, because the people who most need this are often the least served by English-only tools.

The landing page: pick Online or Local LLM, then drop your PDF

Who would pay for this? Anyone about to buy, renew, or claim on a policy. That's a lot of people. It's also the exact tool I wish someone had handed my dad before the agent finished his pitch.

Demo

🔗 Live: insurancesamjho.tech

Upload a policy and the app walks through four steps: segmenting the PDF pages, extracting coverage, cross-checking quotes against the original text, and building an "Out-of-Pocket Map."

Analysis in progress

Then you get your results. For the sample policy below it found 13 things worth a look: 4 high risk (red), 8 medium (yellow), and 1 note. Start with the red cards.

Risk cards on a sample policy

And the same results in Hindi, one click away:

The same results in Hindi

Code

🛡️ Insurance Samjho (Health Insurance Check Karo)

Hacktoberfest 2026 - Week 2 (Side Hustle) Submission

Insurance Samjho is a privacy-first, local-AI web application that reads dense health insurance policies and instantly generates an "Out-of-Pocket Map." It tells users exactly when they are covered and when they will have to pay from their own pocket—without ever sending highly sensitive financial and medical documents to closed-source cloud providers.

🚀 The Architecture

This project utilizes a modern, decoupled full-stack architecture built for local-first AI:

  1. Frontend (React / Vite / Tailwind): A high-trust, responsive UI utilizing Apollo Client to map financial risk via dynamic scenario cards.
  2. API Gateway (Java Spring Boot / GraphQL): Orchestrates the data flow. Handles multipart PDF uploads via REST and serves complex, nested UI data via GraphQL.
  3. ML Microservice (Python / FastAPI): Runs vLLM with Gemma 4 (12B). It segments PDFs and uses constrained decoding (guided_json) to…

How I Built It

The pipeline is simple on purpose:

  1. Upload the policy PDF.
  2. Parse it with Gemma (gemma-2-9b-it) and extract the sections that matter: waiting periods, exclusions, caps, co-pays.
  3. Cross-check each finding against the original text, so every card carries the exact supporting quote.
  4. Translate on demand into Hindi with IndicTrans2 (AI4Bharat), another open model.

The part I'm most pleased with is that you choose where the model runs:

  • Local LLM (Private): vLLM serves Gemma on your own machine, so your policy never leaves your device. The site has a built-in setup panel with the exact commands for Windows (WSL2), macOS, and Linux, plus a "Refresh Status" button, so you can see that the parser and translator are running before it lets you upload.
  • Online LLM: for the 95% of humans who don't have a GPU lying around, the same Gemma setup is hosted on Modal. I'll be honest: the cold start is my villain origin story. On a cold start, parsing one policy sometimes took close to 30 minutes. I stared at a spinner long enough to reconsider my life choices (and my hairline). Once the container is warm it's fine, and I haven't found a fix I can afford yet, so for now that's the price of "free." If you have a GPU, Local mode skips the wait entirely.

The backend runs on Render.

The frontend lives on a .tech domain, which I got free for a year through the Hacktoberfest promo. If people actually start using Insurance Samjho (fingers crossed), I'll happily keep it there and renew every year.

I also leaned on the GitHub Copilot coding agent for the part I was dreading most: model setup. I have two models (Gemma for parsing, IndicTrans2 for Hindi), each with its own docs, serving flags, and parameters that all look equally mysterious until something breaks. Normally that's a weekend of tabs, GitHub issues, and muttering. Copilot read through the options, configured both models, and helped me debug performance problems, so I could spend my time on the actual product. Model setup went from "ugh" to a piece of cake.

Known rough edges: it's a 9B model, not a lawyer. Sometimes it repeats a finding in two cards (you can spot the pre-existing waiting period twice in the screenshot above) or flags a benefit as a risk. That's exactly why every card shows the exact quote from your policy: so you can verify it instead of trusting me. Please treat it as a "questions to ask your insurer" list, not legal advice.

Why Does Open Innovation Matter?

Because of what a health insurance policy is. It's full of personal health and financial details. Uploading that to a random closed API and hoping for the best felt wrong to me.

Open-weight models let me do things a closed API couldn't:

  • Privacy: run Gemma locally, so the document never leaves the user's machine. A closed API can't offer that option at all.
  • Language: IndicTrans2 is built for Indian languages. For a product aimed at people like my dad, "Hindi support" shouldn't mean a translation that reads like it was dictated to a very confused robot.
  • No lock-in, no meter I can't control: I'm a solo dev with a free domain and a Modal bill I'd rather not look at, so open models are the only reason this is financially possible. With a closed API, every policy a stranger uploads would cost me per token, and a tool people use once or twice a year can't really charge for that.

My First User

The first (and toughest) user was my dad. He's the reason this project exists, so it felt right that he got to try it first.

His review: he loved it. His only complaint was the parsing time, which is fair, and see the Modal section above for my own pain on that.

He now understands his policy far better than he did after paying the premiums for a year. Then something happened that I did not plan for: I caught him taking screenshots of his results and sending them to the insurance agent on WhatsApp. The agent who sold him the policy. The one who said everything was covered.

sounds like a scam

Would he pay for it? Obviously not. He's a typical Indian dad, and the idea of paying for a website is deeply offensive to him. But he did send the link to a bunch of relatives and then phoned them to explain how it works. That's a better growth strategy than anything I could have planned.

I've built a lot of things, but I've never seen one of them used to confront someone in real time. 10/10 would recommend to every family with an agent problem.

Prize Categories

  • Best Use of Gemma: Gemma does the policy parsing, both locally and online
  • Best Use of Render: hosts the backend
  • Best Use of GitHub Copilot: model setup, configuration, and performance debugging
  • Best Use of a .tech Domain: insurancesamjho.tech, free for a year via the Hacktoberfest promo, and I plan to renew it if people adopt the site

One Last Thing ☕

If Insurance Samjho saved you from a bad policy (or finally made you read the one you have), I'd love to hear about it. The results page also asks if it was helpful, and if it was, you can buy me a coffee. It funds the Modal GPU bill and my ongoing recovery from reading insurance PDFs.

And if you ever meet an insurance agent who says "everything is covered," please upload first, believe later.

Top comments (0)