Inspiration
Over $140 billion in federal benefits go unclaimed every year — not because people don't need them, but because the system is designed in a way that makes it nearly impossible to navigate without help. Eligibility rules are buried in government PDFs. Applications use legal jargon that assumes a college education. The people who need help most — those experiencing housing instability, job loss, or a health crisis — are also the ones least equipped to spend hours researching eight different programs across four different agencies.
We kept coming back to one question: what if someone just told you what you're owed and walked you through getting it? That's BenefitsBridge.
What it does
BenefitsBridge is a federal benefits screener that takes about 5 minutes and tells you exactly what government assistance you likely qualify for — and what it's worth. The flow: A short, plain-language survey (~10 questions) about your household, income, housing, and insurance A personalized results page showing which of 7 programs you're likely eligible for, with estimated annual dollar values For each program, a step-by-step AI-generated application guide tailored to your specific profile A community resources finder that uses your zip code to surface local food banks, tax prep sites, and social service agencies that help with applications for free A jargon translator — a floating tool that lets you highlight any confusing term on the application form and get a plain-English explanation
Programs covered: SNAP (food stamps), Earned Income Tax Credit, Child Tax Credit, Medicare Extra Help (LIS), Lifeline phone/internet benefit, and LIHEAP heating assistance.
The entire experience is available in English and Spanish, works on any device, requires no account, and stores nothing on our servers.
How we built it
Stack: Next.js 16 App Router + React 19, TypeScript, Tailwind CSS v4 with a custom government-grade design system, deployed on Vercel.
Eligibility engine: A rule-based screening engine (lib/screen.ts) that applies federal program rules — income thresholds as percentages of the Federal Poverty Level, household size adjustments, categorical eligibility, age gates — against a structured user profile. We deliberately kept this layer rule-based rather than AI-generated, because accuracy matters more than fluency when someone's food budget is on the line. AI layer: We use Claude Haiku (via the Anthropic API) for three things: personalized application guidance (streaming markdown guides tailored to each user's profile), the jargon translator (2-3 sentence plain-English explanations of legal terms), and the local org finder (structured JSON of real nearby organizations based on zip code and eligible programs). Profile encoding: The user's profile is encoded as URL-safe base64 and passed as a query param (?p=...). This means results pages are shareable and bookmarkable without any server-side state or login. Design system: We built against a custom Material Design-inspired system tuned for accessibility — 18px minimum body text, Lexend (designed to reduce reading stress) for body copy, Public Sans for headlines, high-contrast colors that pass WCAG AAA, minimum 56px touch targets, and a max-width of 800px to maintain readable line length on any screen.
Challenges we ran into
Getting AI to stay in its lane. Our first attempt at AI-generated guidance was a chatbot. It was slow, unpredictable, and users didn't know what to ask. We switched to a structured checklist model where AI generates the content once, pre-baked around the user's profile, and the UI presents it as a guided walkthrough. Much better.
AI hallucinating org addresses. When we first asked Claude to find local organizations, it would confidently invent phone numbers and addresses. We solved this by prompting it to omit any field it wasn't confident about rather than guess, and by validating the output structure before rendering.
Markdown bleeding into prose. The jargon translator and community section kept outputting bold and ## headers as raw text. Required very explicit prompting: "Do not use markdown, bullet points, headers, or bold. Plain prose only."
Voice integration. We tried adding a voice input mode for users who struggle with typing. Web Speech API is inconsistent across browsers, gets blocked as a bot by many sites, and added complexity that hurt more than it helped. We cut it entirely.
13 steps, 7 programs, 2 languages. Maintaining bilingual translations across a dynamic survey, a rule-based screener, 7 application guides, a results page, and a community finder — while keeping the code maintainable — required building shared primitives (useLang, LangToggle, UI i18n object) that could propagate language state through the whole app without a full i18n library.
Accomplishments that we're proud of
The eligibility engine actually works. We tested it against published federal income thresholds, categorical eligibility rules, and program-specific edge cases. It correctly identifies program eligibility and produces dollar estimates that match the federal benefit tables. Truly zero-friction. No account, no email, no data stored on our servers. The profile lives in the URL. You can close the tab and return to your exact results via a bookmark. Full bilingual support in 48 hours. Every screen — survey, results, application guides, community resources — is available in Spanish with a single toggle that persists across navigation. The application guide UX. For programs like SNAP, we built a split-screen mode where the official government form opens in one window and our step-by-step checklist lives in the other. Fields auto-populate with the user's answers where possible; the user fills in the rest. Design under constraint. We held ourselves to a strict design system built for the actual user — someone who may be stressed, on a cracked phone screen, in a public library. Every decision optimized for clarity over beauty.
What we learned
Rule-based screening + AI guidance is the right architecture. AI is great at explaining and personalizing; it's bad at applying legal rules with precision. Keep those layers separate. The hardest product question is which questions to ask. We iterated the survey many times. Every question you add increases drop-off; every question you remove reduces accuracy. The final 10-question survey represents dozens of cut questions. Language access is a feature, not an afterthought. A meaningful portion of people who need benefits the most are Spanish-speaking. Bolting on translation at the end never works — we built bilingual support into the data model from the start. People don't know what they don't know. Nobody wakes up and searches "LIHEAP eligibility." The right mental model is a conversation that reveals programs, not a search engine that assumes you know what to look for.
What's next for BenefitsBridge
More states. The application guide layer currently covers New York in depth. We want to build state-specific guides for the 10 largest states, covering 60% of the US population. More programs. WIC, SSI, CHIP, Section 8 housing vouchers, and state-level programs (rental assistance, utility credits) are the obvious next layer. SMS interface. A significant portion of the target population doesn't have reliable home internet but does have a cell phone. A Twilio-based SMS screener that works over text would reach them where they are. Trusted referrals. We want to partner with legal aid organizations, food banks, and public libraries to embed BenefitsBridge as a kiosk tool — making the "community org finder" a two-way relationship where orgs can register and update their own listings. Outcome tracking. Right now we have no idea if people who use BenefitsBridge actually apply and get benefits. Building an optional, privacy-preserving follow-up flow ("Did you apply? Did you get approved?") would let us measure real impact and improve the screener.
Built With
- and-application-guidance-streaming)-fonts-&-icons-google-fonts-?-public-sans-(headlines)
- claude
- lexend-(body)-google-material-symbols-(icons)-platform-&-deployment-vercel-key-libraries-@anthropic-ai/sdk-?-claude-api-client-with-streaming-support-next/font/google-?-font-optimization-next/navigation-?-app-router-hooks-(usesearchparams
- local-org-lookup
- next.js
- react
- tailwind
- typescript
- useparams
- vercel
Log in or sign up for Devpost to join the conversation.