Inspiration
Only about 1 in 4 people likely eligible for the Disability Tax Credit apply, and just 17% of people who start it online get the doctor's part done (CRA Disability Advisory Committee, 2024). Community centres already help people with this, but screening tools stop at "you might qualify," and paid consultants take 15–40% of a refund. We wanted a free tool that finishes the job.
What it does
Recoup sits with a community-centre worker during a benefits intake. With the client's consent, AI listens and picks out the facts, each tied to the client's exact words. A hand-written rules engine checks 11 federal and Ontario programs using published government formulas, and every dollar shows its source. Recoup then pre-fills the forms, writes a summary for the client's doctor, explains the results in 9 languages and reads them aloud to the client, and tracks each application until it's paid.
In our demo, Recoup found about $27,627 in back pay for one family. Across a simulated month of 50 synthetic clients (a hand-built mix of seniors, families, adults with disabilities and low-income workers), it found $156,431 in back pay plus $140,335 a year.
How we built it
Next.js 16, React 19, TypeScript and Tailwind 4, with PGlite + Drizzle for data and Supabase for staff sign-in, deployed on Vercel at recoup.finance. Gemini does the listening, document reading, translation, read-aloud voice and follow-up drafts, but it never decides eligibility or produces an amount. The rules engine is plain TypeScript with 163 tests. The Liquid Glass UI uses a hand-built SVG refraction map.
Challenges we ran into
- Keeping the AI honest. Early on, the model lost the client's later corrections and sometimes wrote values that weren't in the conversation. A hand-labelled test set guided the fixes ("no quote, no fact," later corrections win, sanity checks), and fact extraction now scores 77/79. The read-aloud voice only speaks explanations that pass the same number check.
- Benefit math is hard. Couples have their own GIS table, credit rates change by year, and phase-outs differ by program. We sourced every parameter, checked our formulas against official rate tables, and even caught one of our own benefits being counted twice before submitting.
What we learned
The hard part of getting benefits isn't knowing what exists, it's finishing the paperwork. AI works best here when it listens and writes, and sourced rules do the deciding.
Built With
- drizzle-orm
- elevenlabs
- gemini
- motion
- next.js
- node.js
- pglite
- postgresql
- react
- supabase
- svg
- tailwindcss
- typescript
- vitest
- web-speech-api

Log in or sign up for Devpost to join the conversation.