Projects · · 4 min read

Building Yojana Saathi: a free government scheme finder for India

I share how I built Yojana Saathi, a free assistant that matches people with Indian government schemes, using VS Code, Claude Code and Supabase.

Screenshot of the Yojana Saathi web app showing a form and a list of matching government schemes

When I typed "free government scheme finder india" into Google, I found a gap: there are many schemes, but no simple tool that tells a person whether they qualify. That realization sparked Yojana Saathi, a free assistant that helps users discover the schemes they are eligible for. I wanted a portfolio project that solves a real Indian problem, and I could build it step by step in VS Code with Claude Code guiding me in the terminal.

Why I chose the free government scheme finder india project

Living in Pundri, Kaithal, I often hear neighbours talk about subsidies, scholarships, or pension plans they never know how to apply for. The information is scattered across different ministries, and the eligibility criteria are hidden in long PDFs. By creating Yojana Saathi I could address a need I see every day, and I could also show future employers that I can turn a social idea into a working web app.

The tools I used

I kept the stack simple: VS Code as my editor, Claude Code for code generation and debugging, Supabase for the database and auth, and Gemini for a lightweight language model that parses scheme documents. I also leaned on my existing knowledge from building JARVIS, my voice assistant in Python, which taught me how to combine AI tools with a backend. You can read more about that process in how I built JARVIS, my own AI assistant in Python.

Setting up the backend with Supabase

Supabase gave me a hosted Postgres database and an instant REST API. I created a "schemes" table with fields like name, description, eligibility_criteria, and link. The eligibility criteria are stored as JSON so I can match user inputs (age, income, location, etc.) against them. Claude helped me write the initial migration script, and I tweaked it manually to make sure the JSON format was consistent.

User authentication is optional, but I added email‑based sign‑up so people can save their profile for later. Supabase's auth hooks let me trigger a webhook that records each search, which later helps me see which schemes are most requested.

Building the front‑end UI

I used plain HTML, CSS and a tiny amount of JavaScript. The UI has three parts: a form where users fill in basic details, a results list that shows matching schemes, and a detail view with a link to the official portal. The form validation is simple – just check that required fields are not empty. I reused a component I wrote for the memory‑match game to render the list items, which kept the code DRY.

When a user submits the form, the front‑end calls a Supabase RPC that runs a PostgreSQL function. That function loops through the "schemes" table, evaluates each JSON eligibility rule, and returns only the matching rows. Claude suggested the function structure, and I added a few test cases to make sure edge cases (like missing income data) are handled gracefully.

Integrating Gemini for smarter searching

Some schemes have eligibility described in natural language rather than strict numbers. To bridge that gap I called Gemini with the scheme description and the user's profile, asking it to output a yes/no decision and a short explanation. The model runs in a serverless function, so the latency stays under a second for most queries.

I was careful not to over‑promise the AI’s accuracy; the result is always presented as a suggestion, with a link to the official source so the user can verify the details themselves.

Challenges I faced

  • Cleaning up the eligibility data – many PDFs use different terms for the same concept, so I had to normalise fields like "annual income" and "household size".
  • Balancing AI assistance with manual logic – Gemini is great for vague criteria, but I still needed deterministic SQL for clear cut rules.
  • Keeping the project lightweight – I avoided heavy front‑end frameworks to stay within the resources of a free Supabase tier.

Every time I hit a roadblock I asked Claude for a quick code snippet, then tweaked it to fit my specific schema. That workflow reminded me of the process I described in how I use AI tools without outsourcing my thinking.

What I learned from building Yojana Saathi

The biggest lesson is that a useful tool does not need to be flashy. A simple form, a clean database, and a modest AI helper can already provide real value to people who otherwise struggle to find information. I also reinforced my habit of writing small, testable pieces of code before stitching them together – a habit I first discovered while learning to code with just a laptop.

If you’re curious about my other projects, you can see them on my projects.

Practical takeaway

If you have an idea for a tool that solves a local problem, start with the data you already have, pick the simplest stack that lets you query it, and let AI assist you in the repetitive bits. You don’t need a big team – just a laptop, a willingness to experiment, and the discipline to keep the project focused on one clear outcome.

Frequently asked questions

What is Yojana Saathi?

Yojana Saathi is a free web assistant that asks users for basic details and then shows the Indian government schemes they may qualify for, using a Supabase backend and Gemini for smart matching.

Can I use Yojana Saathi without creating an account?

Yes. The tool works anonymously for quick searches, but signing up with an email lets you save your profile and view past results.

How does the AI component help the search?

Gemini processes natural‑language eligibility text that isn’t strictly numeric, turning it into a yes/no suggestion with a short explanation, which complements the SQL rules for clear criteria.

What tools did you use to build the project?

I built Yojana Saathi in VS Code, used Claude Code for code generation, Supabase for database and authentication, and Gemini for AI‑enhanced eligibility checking.

Related posts