Inspiration

Billions in public benefits go unclaimed every year. Not because people are ineligible, but because the rules live on hundreds of portals, written for administrators, and nobody tells you which ones apply to you. India alone runs more than 3,000 central and state schemes. The same is true, at smaller scale, in every country. People have a phone. They don't have the knowledge. We wanted to give them the caseworker most of them never get.

What it does

You type a few sentences about yourself, in any language. BenefitScout finds the schemes that could fit, reads the official pages, writes down every eligibility rule with a verbatim quote, and decides, rule by rule, whether you meet it. You get a ranked list (eligible / likely / need more info / not eligible), the exact questions that would unlock more, the documents to gather, what to do first, and a cost ledger showing which Nemotron model did what. Save the result and BenefitScout re-checks it later and tells you what changed: new schemes, changed deadlines, changed verdicts.

Live demo: https://benefitscout.onrender.com (free tier, so the first visit after 15 idle minutes takes about a minute to wake). Try the example buttons, or paste a profile in Hindi.

How we built it

Three NVIDIA Nemotron 3 models on Nebius Token Factory, each with the job it is right-sized for:

  • Nemotron 3 Nano 30B normalises the profile from free text in any language, repairs malformed JSON, and diffs two runs for the watcher.
  • Nemotron 3 Super 120B plans the research (official domains, portal to crawl, eight targeted queries), triages up to 90 search results into distinct candidate schemes, turns each messy government page into typed, quoted criteria, writes the summary and translates it.
  • Nemotron 3 Ultra 550B, thinking on, is the caseworker: for each scheme it judges every criterion against the person's facts, marks what is unknown, and explains.

Tavily does the web work at runtime: search with official domains preferred (so NGO and university pages still appear, behind the government's), crawl of the national scheme portal with a natural-language instruction, and extract of every scheme page. When an official page is a JavaScript shell (myscheme.gov.in is), it searches for the same scheme on a secondary source and labels it as such.

FastAPI streams the whole run as server-sent events, so the UI shows each query, each page, each verdict and the running cost as it happens. The front end is plain HTML and JavaScript with no build step. Runs are saved as JSON, and a recheck.py job re-runs watched profiles on a schedule, ready for cron or a Nebius Serverless Job. One Dockerfile runs it anywhere.

Measured, not asserted

We labelled 8 profiles (India, US, UK, Germany, Canada: a student, a single mother, a carer, an entrepreneur writing in Hindi, a farmer, a veteran, a pensioner) with 21 expected (scheme, verdict) pairs, and ran six model assignments over the same cached web pages.

Configuration Triage Rules Judge Correct / 21 Cost, 8 runs
Nano / Super / Ultra split (shipped) Super Super Ultra 18 $0.61
Judge on Super Super Super Super 14 $0.27
Judge on Nano Super Super Nano 16 $0.20
Triage on Nano (our first version) Nano Super Ultra 16 $0.59
Rules on Nano Super Nano Ultra 18 $0.52
Everything on Ultra Ultra Ultra Ultra 14 $0.95

Ultra as the judge is what buys accuracy: the same pages judged by Super drop from 18 to 14. Nano at triage loses a quarter of the expected schemes before anyone judges them. And everything-on-Ultra is both the most expensive row and one of the worst, because Ultra over-filters at triage. The right-sized split beats the biggest model on accuracy and on cost. Every failure case is published in docs/EVALS.md, in the models' own words. A typical run costs $0.05 to $0.10 of Nemotron and 11 to 21 Tavily credits, in 60 to 120 seconds.

Challenges we ran into

  • Constrained JSON mode on Super and Ultra collapses to {} on nested schemas. We switched to plain mode with a tolerant parser and a Nano repair step.
  • Indian official portals render in JavaScript and serve crawlers an error page. Hence the secondary-source fallback, clearly labelled.
  • Triage on Nano missed BAföG for a German student even though the page was in the crawl. Moving triage to Super fixed it for a fraction of a cent.
  • Ultra was at first over-cautious, calling "need more info" on procedural steps like "you will have to show your land record". We rewrote the calibration rules so procedural requirements become next steps, not unknowns, and re-measured.
  • A commercial aggregator page gave wrong rules for a Bihar scheme. We now rank official and secondary sources above aggregators.

What we learned

The biggest model is not the best model for every step. Measuring the split on labelled people, and publishing where it fails, taught us more than any amount of prompt tuning. And the hardest part of this problem is not the AI: it is that the information people need is public, scattered and unreadable.

What's next

NVIDIA built Nemotron so intelligence like this could be open and affordable; Nebius built Token Factory so anyone could run it. BenefitScout is what that looks like for the people who need it most: a five-cent caseworker, in any language, for every scheme on earth. Our ask to NVIDIA and Nebius is to take it further with us: a phone-first flow in Indian languages, document checklists you can tick off, per-state portal connectors where official APIs exist, and the scheduled re-check running as a Nebius Serverless Job. The models are ready. The web is readable. The only thing missing is reach.

Testing instructions

  1. Open https://benefitscout.onrender.com. If it takes a minute to load, the free host is waking up.
  2. Click one of the example buttons (Student in Bihar, Single mother in Ohio, Carer in Manchester, Hindi) or paste your own situation.
  3. Click Find. The left panel streams each step; results arrive in 60 to 120 seconds.
  4. Open a scheme card to see the quoted rules and the per-rule verdict. Scroll down for the cost ledger.
  5. Click "Watch this profile", then "Re-check now" to see the change report.

Built by Rupak Kumar. MIT licence. Runs on Nebius Token Factory with NVIDIA Nemotron 3 Nano, Super and Ultra, and Tavily.

Built With

Share this project:

Updates

Submission history