Inspiration

Delhi has millions of migrant workers — construction labourers, garment workers, domestic help — who are among the most common victims of wage theft, and among the least equipped to do anything about it. Filing a complaint with the Labour Commissioner means navigating paperwork in a language they may not read, on a platform they don't have. Most of them do have one thing though: a basic Android phone with WhatsApp. That gap — between "the problem is common and provable" and "the reporting process is inaccessible" — is what Awaaz is built to close.

What it does

Awaaz has two sides talking to the same backend:

  • For workers (WhatsApp bot): a worker sends a voice note describing what happened, in Hindi, Bhojpuri, Bengali, or another regional language. It gets transcribed and translated, then structured into a case record — employer name, dates, amount owed, location — without the worker having to fill out a single form field. The bot also answers common rights questions ("can my employer withhold my wages?") from a fixed, lawyer-reviewed knowledge base, and can look up the current Delhi minimum wage on demand.
  • For agents (web dashboard): a searchable case queue with status tracking (new → reviewing → filed → resolved), one-click complaint document generation, and a "repeat offenders" view — an aggregation that surfaces which employers/contractors show up across multiple complaints. That last part turns individual grievances into a pattern NGOs and journalists can actually act on.

How we built it

  • Backend: FastAPI, acting as a proxy in front of Elasticsearch — the browser never talks to ES directly, so credentials never reach client-side code.
  • Search & aggregation: Elasticsearch with an explicit index mapping (.keyword sub-fields on employer and status), powering a fuzzy multi_match search across employer/sector/location/worker name, and a terms aggregation for the repeat-offenders panel.
  • Data store: the same Elasticsearch index doubles as the case record store for the hackathon scope; Postgres is the planned store for case records at production scale.
  • Frontend: a single-page interface with a Worker View (mocking the WhatsApp voice-note → structured-case flow) and an Agent Dashboard, with a live/offline badge that falls back to demo data if the backend isn't reachable — so a flaky connection doesn't break the demo.
  • Planned pipeline (not yet wired): WhatsApp Business API webhook → Whisper transcription → LLM structuring into a strict JSON schema → POST to the case API. ## Challenges we ran into
  • Keeping the LLM in its lane. It would be easy to let the model also answer legal questions directly, but wrong legal advice to someone already in a vulnerable position is a real harm — so we scoped the LLM strictly to transcription/translation/structuring, and kept all rights content in a fixed, vetted knowledge base instead.
  • Making search actually meaningful, not decorative. It's easy to fake "search" with a client-side .filter(). We built a real Elasticsearch mapping and query layer so the repeat-offenders aggregation reflects genuine terms bucketing on real fields, not a hardcoded list.
  • Designing for a demo that can't fail on stage. Since we couldn't guarantee live connectivity in front of judges, we built a graceful fallback so the UI works identically whether or not the live cluster is reachable. ## Accomplishments that we're proud of We're proud that Awaaz actually works end to end for the pieces we scoped: a worker can send a voice note in a regional language and see it come out the other side as a structured case record, and an agent can search across cases and see the repeat-offenders aggregation surface real patterns, not a hardcoded demo list. We're especially proud of the guardrail we built in early rather than as an afterthought, keeping the LLM strictly to transcription and structuring while all rights and legal content comes from a fixed, vetted knowledge base, because getting that wrong would have real consequences for someone already in a vulnerable position. We're also proud of the live and offline fallback, since it meant the demo never depended on a fragile network connection working perfectly in front of judges. ## What we learned We learned that meeting people where they already are matters more than building a polished new app, since a WhatsApp voice note removes almost every barrier a form or a download would add for someone with limited literacy or an unfamiliar phone. We learned how much design work goes into deciding what an LLM should not be allowed to do, since the tempting version of this product lets the model answer legal questions directly, and the responsible version deliberately does not. We also learned that aggregation is often more valuable than search on its own, because a single wage complaint is one person's story, but five complaints against the same contractor is evidence, and that shift from individual case to pattern is what makes a tool like this useful to NGOs and journalists rather than just to one worker at a time.

What's next for Awaaz

What's next for Awaaz is wiring up the real WhatsApp Business API webhook so voice notes flow in live, connecting Whisper for transcription and an LLM for structuring under the same strict guardrails we designed for, and partnering with a labour lawyer or NGO to build out a properly verified rights knowledge base instead of the placeholder version. We also want to move case records fully onto Postgres with Elasticsearch dedicated purely to search and aggregation, add authentication to the agent dashboard before any real case data touches it, and extend minimum wage lookups and rights content beyond Delhi to other states with large migrant worker populations.

Built With

Share this project:

Updates

Submission history