-
-
Run any case live. Nothing here is staged or pre-rendered.
-
PM-JAY is visibly marked pending. We never hide an unverified scheme.
-
Questions ask what's true. No invented thresholds shown to citizens.
-
Real Gemini extraction or manual entry. User stays in control either way.
-
Four real cases: a mismatch, a clean pass, two issues, a pending state.
-
Ask a real question. Get the exact official passage, not an AI summary.
-
Every match cites its source. One result even flags itself as unverified.
Inspiration
It started with something small. My father works in the Railways and has a SBI RuPay card with offers for railway employees, one of them an OTT subscription. We found the offer, clicked redeem, filled in payment details, and got redirected to another site that just said failed. We tried again. Each retry made it worse. Now it was flagged as a payment error from too many attempts.
We called SBI customer care. They redirected us to YONO. They gave us a "solution." We tried again the next day. Same error. We called again, got redirected again, and a complaint got lodged. It still didn't work.
It hit us then. This was a small, low-stakes problem, and it still cost us hours of calls and failed retries with no real explanation of what went wrong.
So we thought about people for whom the stakes are much higher. People standing in line for hours for a scholarship or a health scheme, and when their turn finally comes, being told a name doesn't match, a document expired, something is missing. No warning beforehand. No explanation. Just a rejection after the wait was already spent.
If a bank with dedicated customer support couldn't fix a simple error in days, what hope does someone navigating a government scheme alone have?
That question became Salahkaar. A system that catches the hidden mismatch before you've already spent your day standing in line for it.
What It Does
Salahkaar is a Benefits Readiness Navigator for three real Indian government schemes: PM-KISAN, NMMSS, and Ayushman Bharat PM-JAY, demoed for Bihar.
A citizen enters their documents, and the system:
- Builds a unified profile across multiple documents, tracking which fact came from which source
- Detects cross-document contradictions such as name mismatches, expired certificates, and conflicting family records, before submission, not after rejection
- Evaluates eligibility against real official rules, sourced directly from government text
- Computes a readiness score kept clearly separate from eligibility. A citizen can be eligible but not ready, and the system shows exactly why
- Cites the exact official clause behind every rule, using grounded retrieval. No AI-generated policy explanations, only verbatim official text with a source link
- Refuses to guess. When official rules are incomplete or unverified, the system says so plainly instead of inventing an answer
How We Built It
We treated this as a policy problem first, not a technical one. AI plays a narrow, specific role: extracting structured facts from documents and retrieving the right official passage to support a claim. The actual eligibility, contradiction, and readiness decisions are made by deterministic rules, not the model, because a citizen's application outcome should be explainable and reproducible, not a black box.
We chose this architecture so eligibility logic stays fully data-driven. Every scheme's rules live in configuration, sourced directly from official government text we verified clause by clause, not generated. That meant adding a new program felt less like writing code and more like adding verified facts, which is exactly the discipline a system like this needs if it's ever going to be trusted with something as consequential as a welfare application.
The same discipline shaped the AI we did use. Retrieval is grounded only in real official documents, with a deliberately strict matching requirement, so every citation a citizen sees is something they can verify for themselves.
Challenges We Faced
The hardest constraint we set was the core thesis itself: never invent a government rule we couldn't cite. Every program rule traces back to verbatim official text, and every unverifiable gap is clearly marked instead of papered over. This includes PM-JAY, which stays in a pending verification state throughout our demo by design, because we don't have a verified Bihar-specific beneficiary dataset.
During testing, we found cases where retrieved guidance was related to an issue but didn't directly support it. We tightened our retrieval requirements so evidence is only attached when the source actually supports the specific claim being made. A confidently wrong citation is worse than no citation at all.
What We Learned
Real-world public-service workflows are far more complex than a checklist. Eligibility depends on documents, cross-document consistency, and program-specific rules that often aren't fully published anywhere.
We learned how to combine AI with deterministic policy evaluation, and how to build systems that openly acknowledge uncertainty instead of guessing. The biggest lesson was that responsible AI isn't only about giving answers. It's about knowing when the evidence isn't enough to give one.
Impact
Salahkaar turns government applications from a reactive process into a proactive one. Instead of discovering problems after submission, citizens can find hidden blockers beforehand, understand why they matter, review the supporting policy guidance, and fix them before applying.
Eligible doesn't mean ready. That's the gap Salahkaar is designed to close.
Built With
- alembic
- chromadb
- fastapi
- postgresql
- pydantic
- python
- rag
- react
- sqlalchemy
- typescript
- vite
Log in or sign up for Devpost to join the conversation.