← AI Objectives Institute

The Elicitation Bot

A multimodal WhatsApp agent for democratic deliberation at scale. I built it end-to-end, solo, at the AI Objectives Institute, and kept it reliable through months of live national-scale sessions.

What it is

The Elicitation Bot is an open-source, LLM-based tool the AI Objectives Institute built to strengthen democratic deliberation. Citizen assemblies and public consultations surface valuable input but are expensive and hard to scale; the bot delivers that same reflective dialogue directly over WhatsApp (a platform billions already use), reaching communities with limited connectivity or digital literacy who are usually left out. It is the front-end companion to AOI's flagship platform, Talk to the City, which aggregates and analyzes the responses at scale.

What I built

I built it end-to-end as the sole engineer: a full-stack, multimodal WhatsApp agent (Twilio + GPT-4o + Whisper) that guides each participant through the bot's three phases (active listening, view-broadening, and reflection), drawing out personal stories and the reasoning behind their views, in their own language. It transcribes multilingual voice and text responses and feeds them into Talk to the City for analysis. I also contributed cloud engineering to Talk to the City itself.

How it works

The system ran as two loops sharing one store: a real-time, multilingual WhatsApp conversation, and a batch pipeline that turns each finished session into structured data for Talk to the City. Hover, tap, or tab through any component to see what it does and the tech behind it.

External actorSystem componentDestination - Talk to the City
Real-time conversationFirst contactjoin event · consent · nameSession aggregation → Talk to the CityTrigger: the deliberation is a time-boxed event - when it ends, the export job runs and the full transcript is handed to Talk to the City.reply · in the participant's languagestateread sessionParticipantWhatsApp · text + voiceTwilioWhatsApp Business APIAPI serverFastAPI · HerokuWhispervoice notes → textMode routerlistener · survey · reflectAI facilitation3 phases · multilingualper-participant memoryFirestoresession state · responsesSOURCE OF TRUTHAPI Gatewaysession-end triggerAWS Lambdaexport jobCSV exportfull-session transcriptTalk to the Cityanalysis platform

Hover, tap, or tab through any component for what it does and the tech behind it.

Production considerations

The diagram is the overarching framework. These are the concerns handled beneath it.

Burst aggregation

AWS Lambda runs the session-end exports; a deliberate cold-start vs. provisioned-concurrency tradeoff for when many sessions end at once.

Reliability

Retries and fallbacks when Whisper, the LLM, or Twilio fail; idempotency on Twilio webhook retries so a message is never processed twice.

Latency

Async by design - the webhook acknowledges immediately and the reply is sent as a separate Twilio call, so model latency never blocks the request.

State & PII

Per-participant session keyed in Firestore for safe concurrency; phone numbers as identity handled with care; authenticated fetch for Twilio media.

Making it reliable at scale

The hard part was keeping it up under real load. Across four months of weekly live sessions it ran at 10-20K messages/day at peak. Onboarding thousands of new users at once hit Twilio's per-number cap of 1,000 new users/day (a day-one launch blocker), so I sharded onboarding across five Twilio numbers to clear it. Then I lifted delivery success from 96% to 98% by fixing Heroku rate-limit and cold-start failures and sizing horizontal and vertical scaling to the app's actual CPU and memory profile. This is the transferable part: shipping and operating a high-volume, multilingual, voice-and-text agent that stayed reliable in production.

Where it ran

The bot was deployed in multiple languages across universities and international conferences, including:

  • Search for Common Ground - the world's largest peacebuilding organization, piloted in 2024 across 12 conferences in the UK, US, and Taiwan, then Burundi and Niger, in French, Kirundi, Swahili, and English.
  • Taiwan AI College Alliance (TAICA) - ~5,000 students across 55 universities in Taiwan reflecting on course material and ethics after each class, over four months.
  • Notre Dame's Kroc Institute - a peacebuilding workshop on deliberative tools in polarized contexts, sponsored by the Toda Peace Institute.
  • Edge Esmeralda AI Conference - 50-75 leaders in AI, governance, and health, captured in real time.

All of it fed Talk to the City, AOI's flagship platform - adopted by Taiwan's Ministry of Digital Affairs for national consultations - which I also contributed cloud engineering to.

Why it mattered

Most digital-democracy tools reach the people who are already online and comfortable with them. Running deliberation over WhatsApp, in each participant's own language, brought reflective public dialogue to underrepresented, low-connectivity communities - and gave policymakers and peace mediators clean, structured input to act on without losing the nuance of individual voices.