Inspiration

We've all reported something to a municipal body and watched it disappear. The hard part was never describing the problem — it was everything that came after: figuring out which department owns it, finding the right portal, filling a form in English, and then waiting with no one to follow up. Most people just give up, and the pothole stays a pothole.

So we asked a simple question: what if an agent could take over the annoying part? Not just file the complaint, but stay on it the way a persistent human would.

What it does

You upload a single photo of a civic problem. Nagrik OS then runs it through a chain of eight agents that:

  • identify what the issue is, from the image
  • read your location and look up the ward
  • work out which department is responsible and the deadline they're bound by
  • draft a formal complaint and verify it before sending
  • file it and record a reference
  • and then keep watching — reading replies, deciding whether it's actually resolved, and escalating on its own if the deadline lapses

Every case also rolls up into a weekly per-ward performance report, so you can see which departments actually respond.

The part we care about most: it doesn't stop at "complaint sent." It keeps making decisions over days.

How we built it

The MVP is a Vite + React app with no backend, so anyone can clone it and run it in seconds, and it deploys as a static site. The eight agents are a small client-side orchestrator where each step is its own function that hands a structured result to the next.

Some parts are genuinely real. Geolocation uses the browser API, and reverse-geocoding uses OpenStreetMap Nominatim — both free and keyless. (In our own test runs it correctly resolved the ward from live GPS.) The vision step and the complaint draft call any OpenAI-compatible model, configured in the app and stored in localStorage; we tested with Qwen-VL. There's a fallback path so the whole thing still runs with no key and no internet, which made demoing painless.

Challenges we ran into

The biggest one was showing a multi-day process inside a 60-second demo. We solved it with a fast-forward control, so you can watch the monitoring agent decide and escalate across "days" in seconds.

The second was staying honest. It was tempting to claim live integration with municipal systems. Instead we built the parts that are actually real — location, vision, drafting — and clearly labelled what's simulated, because a working demo beats an inflated claim.

Accomplishments that we're proud of

A working end-to-end flow that runs anywhere with zero setup, and a monitoring loop that behaves like an agent rather than a script: it observes, decides, and escalates without anyone pressing a button. Adding an independent verification step and a closed monitoring loop is what made it feel less like a chatbot and more like a civil servant.

What we learned

The interesting line isn't "AI that does a task" versus "a chatbot." It's whether the thing keeps acting after the first step. Persistence — acting, observing, and re-deciding over time — changed how the project feels more than any single model call did.

What's next for Nagrik OS — Autonomous Civic Complaint Agent

  • A server-side scheduler and database so monitoring runs for real over days
  • Actual email dispatch to department inboxes, with proof of delivery
  • Direct API filing where a municipality exposes one
  • Predicting failures (recurring potholes, chronic flooding) before they're reported
  • A public per-ward accountability index ranking departments by response time
  • WhatsApp and voice intake for people who can't fill forms

Built With

Share this project:

Updates

Submission history