Hold the mic and say what you saw, or photograph it. The phone tags where you are, and the report lands on a public feed and a map instead of a council inbox nobody can see into. The failure it targets is not that councils ignore people, it is that nothing is ever on the record, so twenty complaints never add up to one loud one.
Tommy Tran
scoring, map, voice agent
Deduplication and priority scoring: embeddings cluster near-duplicates, so ten reports of one pothole raise the priority of one instead of filling the map. Hey Argus, the spoken help agent: the spec, three implementation plans, and the whole mobile side. The map and everything on it: report pins, safety incidents, profile badges, pantries, shelters and services, plus the alerts that fire when one lands nearby. The council feed, where a council posts and it reaches the people it affects.
Gylles Varga
AI, submission, design
The agent behind Hey Argus: a tool layer the model calls to search issues, pantries, shelters and services, and to file a report from a spoken sentence. The submission pipeline it sits on, where Whisper transcribes the voice note, GPT-4o reads the photo, and the form opens already filled in. Five languages, translated the moment a report lands, so the feed never waits on a translation call. The design system the app runs on, down to the pre-commit rule that rejects a hardcoded colour.
Meenu
council dashboard, languages, status loop
The dashboard council staff work in: auth, the report queue, and status updates. The wiring that carries a status change out of that dashboard and back to the one resident who filed the report. The idea Argus started from, and the one who stood up and pitched it to the room. The language layer the whole app runs through, five locales, the switcher and the provider.
Attached to what you submit, not to you, unless you sign your name to it:
Photo metadata is stripped before upload, so an image never carries the exact spot it was taken. Reports can be filed anonymously, and there are no advertising identifiers or third-party analytics.
Every control carries a screen reader label and a role, and nothing is smaller than a 48px target. Voice is the default way in, for people who will not fill in a form, and the app follows the device language across five locales.
vector(1536) embeddings, ivfflat cosine index, matched at 0.86 within 100mtext-embedding-3-small