AI, data & intelligence

A survey-research platform that ships models, not raw responses.

Versioned survey instruments, single-completion response tokens keyed to a voter file, and a propensity-model deliverable, respondent data compartmentalized by design.

research platform
Sector
Political research
Engagement
Product build
Stack
Next.js · Postgres · JWT · Mailgun
Status
In production

Context

Campaign clients need what a poll implies, a propensity model of who’s persuadable, not a spreadsheet of raw responses. And the research has to be trustworthy: one response per real voter, no ballot-stuffing, respondent identities protected.

What we built

We built a survey-research platform with a public research face and an authenticated response system underneath. Survey instruments are versioned; each invitation carries a single-completion JWT token keyed to a subset of the voter file, so a response is one real person, once. A Mailgun send-and-warming pipeline with webhook ingestion and unsubscribe handling drives distribution. Compartmentalization is enforced by design: the deliverable is a propensity model, not the raw responses. The modeling and the respondent data stay separated.

The value

  • Clients get the actionable artifact, a propensity model of who’s movable, instead of raw data they’d have to model themselves.
  • Single-completion tokens keyed to the voter file make the research defensible: one response per real voter, no stuffing.
  • Respondent data is compartmentalized from the client deliverable by design, a privacy posture most polling operations don’t build in.
  • A complete pipeline, not a survey form: versioned instruments, tokenized capture, warmed distribution, webhook ingestion.
One-per-voter

no ballot-stuffing, verified once

Voter-file

keyed capture

Model, not raw

propensity deliverable

Compartmentalized

respondent data separated

Client name and identifying details withheld by design. Every figure here is drawn from the system we actually delivered.

Your work would get the same discretion.

Tell us what's breaking. We'll tell you whether we've solved something like it. And if we take it on, your name stays yours.

Start with a diagnostic