Architecture
This consultation is a reference deployment of the Open Listening Block: a small collection app in front, a moderation service (:/ mod) in the middle, and a theme-analysis pipeline behind it. Each piece is a separate service with its own store, talking over open APIs.
you ── speak · type · chat · WhatsApp · call
│
▼
survey app (this site) ── own store
│ POST /api/v1/ingest
▼
:/ mod ── moderation: flag spam & manipulation,
│ redact personal details
│ compliant records only
▼
analysis ── theme map: rubric + emergent themes,
versioned snapshot runsPrinciples
- Many doors, one record. Speaking, typing, chatting, WhatsApp and a phone call all answer the same questions and produce identical records. No channel is second-class.
- Your language. Answer in any of 22 Indian languages, by voice or text. The system adapts to the respondent, not the other way around.
- A visible journey. Every respondent sees exactly what happened to their answer — the moderation verdict, a reference locator, and what was redacted. The journey is shown, not implied.
- Privacy by default. Personal details are redacted automatically before anything is stored.
- Moderation protects speech. Spam, scams and coordinated manipulation are flagged; dissent, criticism and satire are explicitly protected — and that boundary is tested with evals, not assumed.
- Small, replaceable blocks. Collection, moderation and analysis are separate services behind open APIs, each owning its own data, so any block can be swapped without rewriting the rest.
- Reproducible analysis. Theme analysis runs as versioned, idempotent snapshots over compliant records only — a new run never rewrites an old one, so trends stay comparable.
- Finish, don’t stall. The conversational surfaces are state machines over the question list. If the AI falters, the answer is recorded verbatim rather than lost — a stalled survey is worse than an unpolished reply.