Inspiration
Every year, Americans leave tens of billions of dollars in public benefits unclaimed — food assistance, healthcare, tax credits they're legally entitled to. The heartbreaking part is that it's almost never because they don't qualify. It's because the rules are unreadable and the applications are exhausting. The IRS estimates that nearly one in five people who qualify for the Earned Income Tax Credit never claim it — purely because no one ever told them they could.
We kept coming back to one idea: benefits aren't lost to ineligibility, they're lost to complexity. So we built BenefitBridge to turn "I don't know what I qualify for" into "here's exactly what you're owed — and here's the filled-out application."
What it does
You describe your situation in plain language — "single parent in SF, about $2,800 a month, one kid, renting" — and BenefitBridge:
- Finds every program you likely qualify for (CalFresh, Medi-Cal, CARE, LifeLine, EITC/CalEITC, and more).
- Computes a real, personalized dollar estimate for each — from the actual 2026 rules.
- Files the application for you, stopping right before submit so you stay in control.
- Shows its work, with every number traced to an official source.
It even surfaces money people never think to look for — California's low-cost auto insurance, local tax credits — and a categorical cascade: qualify for one program, and it automatically unlocks the others you're now eligible for without more paperwork.
How we built it
The core principle: the language model never touches a number.
- DigitalOcean Gradient AI runs the reasoning layer — a multi-agent graph (an intake agent that turns free text into a structured profile, a router, and specialist agents per benefit category), Knowledge Bases for citation-backed answers grounded in official program docs, Guardrails that block any "you're guaranteed $X" phrasing, function routing, and Evaluations for correctness and safety.
- A separate deterministic engine (TypeScript, integer-cent math, no floats) computes eligibility from the real program rules. For example, the SNAP benefit is computed exactly:
$$\text{monthly benefit} = \text{max allotment} - 0.30 \times \text{net income}$$
where net income is derived through the full deduction cascade (earned-income, standard, shelter, dependent-care, medical). The model reads and explains; the code decides.
- Live official data, not scraping. Eligibility thresholds come from the HHS ASPE Poverty Guidelines API — the government's own structured endpoint — pulled into a versioned, provenance-stamped store (source URL + effective date + checksum on every value). That's the difference between a search-engine summary and a data pipeline you can audit.
- The filer generates the real application as a PDF and uses a browser agent to fill it live, halting at the submit button.
- Accessibility-first frontend (Expo + react-native-web + NativeWind): voice input and multilingual intake, high-contrast type designed for low-vision readers, and a Verification Console that shows the parsed profile, the deterministic cascade, the data provenance, and lets a judge fire an adversarial prompt to watch the guardrail hold.
Challenges we ran into
- Getting eligibility right is hard, and subtly wrong is worse than nothing. A wrong dollar figure isn't a bug — it's harm. We scoped carefully to what we could compute and prove, framed results as transparent estimates, and tested the engine adversarially instead of on happy paths.
- Avoiding the "isn't this just a chatbot?" trap. A judge rightly pointed out that scraping a page and letting an LLM read it is no different from an AI search engine. So we rebuilt the data layer around structured official APIs with validation and versioning — the intelligence lives in the deterministic engine, not the fetch.
- Building in parallel across a two-person team, we ended up with duplicate cloud resources and had to consolidate onto a single canonical stack without losing the good parts of each.
- Handling the most sensitive data responsibly — income and immigration status — meant a privacy-first posture: ephemeral by default, no server-side storage of personal data.
What we learned
- Benefits are a design and trust problem as much as a data problem. The hard part isn't the math — it's making people feel safe enough to use it.
- The most defensible technical move was restraint: keeping the LLM out of the numbers entirely. It made the system provably correct instead of plausibly correct.
- Live, structured, sourced data beats scraping on every axis — accuracy, trust, and defensibility.
What's next
Expanding the program library and county coverage, a full HIPAA-compliant enterprise tier for the health plans and agencies that lose money on unenrolled members, and getting BenefitBridge into the hands of the caseworkers and families who need it.
Built With
- anthropic
- app-platform
- census-api
- digitalocean
- expo.io
- fastify
- gradient-ai
- hhs-aspe-api
- knowledge-bases
- nativewind
- node.js
- opensearch
- rag
- react-native
- react-native-web
- spaces
- typescript
- vitest
- web-speech-api
Log in or sign up for Devpost to join the conversation.