Project Prelude · internal explainer
Listening to a public at scale
How we turn tens of thousands of Persian-language voices about media propaganda
into structured, honest insight — and then go back and listen deeper.
A walkthrough of the full process: what each stage is for,
what goes in, what comes out, and which tool does the work.
Navigate with → / ← arrow keys or click the dots below.
Context 1/3
What is "sensemaking"?
When thousands of people talk about an issue, nobody can read it all. The usual shortcuts —
polls, hashtag counts, viral posts — either flatten opinion into multiple-choice, or amplify
whoever shouts loudest.
Sensemaking is a middle path: use AI to read everything, organize it
into themes and distinct opinions, keep people's actual words attached as evidence, and present
it so a human can explore what a whole community thinks — including the quiet, thoughtful voices.
The research community calls the collection side of this "broadlistening" —
the opposite of broadcasting: one institution listening to many people, instead of speaking to them.
The term comes out of the Plurality movement around Audrey Tang (Taiwan's former digital
minister) and Glen Weyl.
Context 2/3
Whose tools are we standing on?
Google Jigsaw — sensemaking-tools
Jigsaw (Google's societal-challenges unit) open-sourced the pipeline it used to digest
1M+ opinions from Bowling Green, Kentucky. Our analysis engine — adapted
by us to run on Claude models.
AI Objectives Institute — Talk to the City
The lineage most analysis tools trace back to; their WhatsApp "elicitation bot" is one of
the interviewers we evaluated.
Team Mirai — みらい議会 (mirai-gikai)
Engineer Takahiro Anno ran for Tokyo governor in 2024 with an AI avatar
that listened to voters around the clock, then founded the party Team Mirai. Their platform
runs AI depth interviews — adaptive follow-up questions, a structured
report per person. Our listening engine, translated fully into Persian.
Showra — ours
Our own implementation of Polis, the open-source agree/disagree
deliberation format proven in Taiwan's vTaiwan and Jigsaw's Bowling Green project. Already
built out — this is our voting engine for validating findings with real
participants beyond Twitter.
Context 3/3
Project Prelude: the issue at hand
Prelude studies media propaganda targeting Iranians — how audiences talk about
the influence of outlets like Iran International, Manoto, BBC Persian, state TV (صداوسیما), and
social-media influencers, across 2016–2026 including the war period.
28,619
Farsi statements collected & labeled
6
analytical dimensions per statement
~$24
total collection + labeling cost
10 yrs
of discourse covered
The az-democracy hashtag study (#از_دموکراسی_بگو, 4,180 tweets) was our prototype:
we ran it through every stage first, end to end, so Prelude runs on a proven path.
The big picture
Two ways of listening, one analysis machine
1a · Harvest→
1b · Interview→ merge →
2 · Organize→
3 · Report→
4 · Test agreement→
Validate (Showra)
Collection has two channels. First we harvest what people
already say publicly — broad, cheap, and it maps the terrain. That map is what makes good
interviews possible: the themes it reveals become the questions our AI interviewer
asks in depth. Both sources merge into one dataset.
That merged dataset feeds the analysis machine: organize it into themes,
opinions and quotes → publish an explorable report → test which
concrete statements could command broad agreement → validate with real votes.
Any stage can send us back to collect more.
Stage 1a · Collect: harvest prelude pipeline (ours)
Harvesting the discourse
- Purpose
- Gather what people already say publicly, at scale, without prompting them.
- Input
- Keyword & phrase queries in Farsi (outlet names, propaganda terms, media-criticism phrases).
- Tools
prelude/collect.py against the twitterapi.io service (X/Twitter data);
categorize.py (Claude Haiku) labels each tweet's role and dimensions; export.py packages the dataset.
- Output
- A clean CSV — one row per statement:
participant_id, survey_text —
plus per-dimension slices and keyword lists (bilingual README included).
Every statement gets tagged with which of six questions it speaks to:
the mechanisms of propaganda, disputed facts, its impact, the discourse
around outlets, who is affected, and proposed solutions. Those six dimensions echo
through every later stage — starting with the second collection channel, where they become the
interviewer's question plan.
Stage 1b · Collect: interview Team Mirai: mirai-gikai (in Persian)
An AI interviewer that listens in Farsi
- Purpose
- Harvesting is broad but shallow — one post per person, skewed toward
complaint. The second channel invites people into a real ~15-minute conversation with adaptive
follow-ups, to capture reasons, lived experience, and the things people don't volunteer on
social media (like solutions).
- Input
- An interview plan prepared from the harvest: the six Prelude dimensions
became six questions, each with follow-up guidance, and the interviewer is "briefed" with
background knowledge on the topic — read the full interview guide
(bilingual, with every question and probing path).
- Tool
- Team Mirai's interview platform, which we fully localized: Persian interviewer
persona, right-to-left Persian interface (585 translated strings), running on Claude. Safety is
built into the prompt: no pressing for identity or location, any question can be skipped, anonymity by default.
- Output
- Per-person transcripts and structured reports (summary, stance, background, key
opinions with verbatim quotes) — exported into the same format as the harvest and merged
with it into one dataset that feeds everything downstream.
نمونهٔ واقعی از مصاحبهٔ آزمایشی — مشارکتکننده گفت در فضای مخالفان هم منتقدان «مزدور» خطاب میشوند؛ مصاحبهگر پرسید: «به نظر شما ریشهٔ این رفتار کجاست؟»
Stage 2 · Organize Jigsaw: categorization_runner
From 28k posts to a map of opinion
- Purpose
- Discover what themes exist and what distinct positions people take — with receipts.
- Input
- The merged collection CSV (harvest + interview statements) + a short "context file" telling the AI who's speaking and what the study is about (this framing file matters more than any setting).
- Tool
- Jigsaw's topic-discovery stage, running on Claude. It reads every statement,
builds a topic taxonomy, writes distinct opinions under each topic, and extracts verbatim
quotes as evidence for each opinion. It even grades its own extraction quality.
- Output
- A structured CSV: topic → opinion → quote → who said it.
Prototype benchmark: 4,180 tweets became 30 topics, 226 opinions, and 9,132
quote-to-opinion links. Rule of thumb: read the topic list before trusting anything downstream.
Stage 2½ · Score Jigsaw: get_bridging_scores
Finding the constructive voices
- Purpose
- Not all quotes are equal. This stage scores each one for constructive quality —
does it give reasons, acknowledge other views, invite dialogue?
- Input
- The organized topic/opinion/quote table.
- Tool
- A cheap, fast model (Claude Haiku) scoring tens of thousands of quotes.
- Output
- The same table plus a quality score per quote.
This is what lets the final report surface thoughtful contributions instead of the loudest or
most repeated ones — the quiet middle of a discourse becomes visible.
Stage 3 · Report Jigsaw: report generator + report UI
An explorable, bilingual report
- Purpose
- Make the whole discourse browsable by a human — themes, summaries, and real quotes side by side.
- Input
- Scored quotes + AI-written topic summaries.
- Tool
- Jigsaw's web report builder, which we extended with right-to-left layout,
a Farsi translation layer, and an English/فارسی switcher.
- Output
- A static website — shareable as a link, no servers to maintain.
Prototype example (az-democracy): az-democracy-report.pages.dev — English at
/, Farsi at /index-fa. Prelude gets the same treatment once its analysis
run completes.
Stage 4 · Test agreement Jigsaw: propositions + simulated jury
From "what people said" to "what they'd endorse"
- Purpose
- Turn the opinion map into concrete, votable statements and predict which could command broad agreement.
- Input
- The opinion map from stage 2.
- Tool
- Jigsaw's deliberative track: it distills opinions into short "propositions", then
runs a simulated jury — the AI role-plays real participants (each persona built from that
person's own posts) voting Agree/Disagree — and aggregates the votes with real election math,
including a proportional method so minority viewpoints stay represented.
- Output
- Ranked statement slates per topic, with simulated approval rates.
The honest caveat we always attach: these are AI predictions of
votes, not votes. We treat the output as a draft questionnaire for a real poll — which is
exactly what the next stage does with Showra — never as "X% of people agree." The rankings and gaps
carry the signal, not the percentages.
Stage 4½ · Validate with real people Showra — our Polis implementation
From simulated votes to real ones
The simulated jury is our preliminary analysis — fast and nearly free, it tells us
which propositions are even worth putting in front of people. The real test happens on
Showra, our own implementation of Polis.
- The model
- Polis is the open-source deliberation format proven in Taiwan's
vTaiwan process and Jigsaw's Bowling Green project: participants see one statement at a time,
vote Agree / Disagree / Pass, and can contribute statements of their own. Clustering reveals
opinion groups and — most valuably — the statements that bridge them. Showra brings that
format to our community, already built and ready to use.
- Input
- The top-ranked propositions from the simulated jury become Showra's seed statements.
- Output
- Real votes from a self-selected but much wider community — anyone with the
link can participate, not just the Twitter users whose posts we harvested.
So the division of labor is: simulated jury to shortlist cheaply, Showra to measure for
real. Where the two disagree, that gap itself is a finding — it usually means the harvested
discourse doesn't represent the wider community.
Proof it works
The az-democracy dry run
Before pointing this at Prelude, we ran the analysis path — harvest through simulated
jury (stages 1a → 4) — on the smaller hashtag study:
4,180
tweets in → 30 topics, 226 opinions, 9,132 quotes
2
languages, one report, live on the web with a switcher
751
propositions distilled, then ranked by a simulated jury
7,360
jury ballots cast by 40 AI personas of real participants
See the results yourself: the explorable report —
az-democracy-report.pages.dev
(فارسی) — and the
propositions + jury-simulation analysis —
/propositions
(فارسی).
Every stage ran on Claude (the toolkits were built for other providers — the
adaptations are ours and reusable), and the interviewer has hosted real Persian test sessions.
Not yet exercised: Showra validation and interview-fed re-analysis — Prelude will
be the first project to run the full process.
Limitations
What this process can't tell us
- Who's missing: harvested posts represent people who post — not lurkers, not the
offline public. Interviews reach only people we can invite safely.
- AI bias flows downstream: topic discovery, scoring, translation, and jury
simulation all inherit the model's blind spots. We spot-check every stage against raw quotes.
- Simulated agreement is a hypothesis: jury results shortlist statements worth
testing with real people; they are never findings on their own.
- Participant safety comes first: for this population, anonymity, consent framing,
and never collecting identifying details are requirements baked into the interviewer — not options.
Where we are · what's next
Prelude status
- Done: 28,619-statement dataset collected, labeled across six dimensions, and
exported in the pipeline's input format (bilingual documentation included).
- Done: Persian AI interviewer configured and verified for the propaganda topic —
six questions mirroring the six dimensions.
- In progress: the main analysis run (topics → opinions → quotes → scores) on the
full dataset.
- Next: bilingual Prelude report; proposition/jury pass; then invite-based deep
interviews where the harvested data is thinnest — likely the solutions dimension, which is
always underrepresented in complaint-driven discourse.
Questions → Hadjar. This deck: docs/prelude-sensemaking-deck.html in the sensemaking workspace.