Jeremy Burke
Project 04
Contents
AI · Data

OpenCitizen

A digital twin of New York City that tracks civic events and models their effects. The first prototype covered the 2025 mayoral primary, turning 11 candidates’ scattered policy documents into simple, comparable reporting.

Summary

01

Built a three-stage pipeline turning raw scraped content into a queryable database.

02

Made 16 policy proposals from 11 candidates directly comparable.

03

Published 11 sourced, citable posts drafted from structured data.

Role
Developer
For
Self-directed
When
June – July 2025
Built with
Python, spaCy, FAISS, sentence-transformers, SQLite

Description

Context

Political races are flooded with incomplete and inaccurate information, and it's hard to know where any candidate stands on the issues critical to voters. In the 2025 NYC mayoral primary, 11 candidates had policy documentation spread across PDFs, websites, news articles, and interviews, with no way for a voter to compare plans side by side.

Approach

I built a three-stage processing pipeline that cleans, enriches, and canonicalizes 740+ source documents, including coverage from 23 news outlets, then applied one fixed 11-topic taxonomy across every document to tag all policy proposals. Entity aliases resolve to canonical IDs across the whole dataset, and semantic search with citations drafts reports from sources rather than memory.

Deliverables

I published 11 sourced, citable posts drafted from structured data: candidate comparisons, debate analysis, and policy breakdowns. Among them were a seven-candidate housing table and a thirteen-topic debate breakdown.

More projects