NY Civic Research Assistant

A mirror for
NY government.

Spiegel is German for mirror.

Our platform, Civic Spiegel, holds a clear, undistorted, and nonpartisan reflection of NYC and NYS government back to the people it represents.

The problem

NYC and NYS lawmakers generate thousands of pages of legislation, transcripts, hearing minutes, and committee reports every month — spread across a dozen different portals, each with their own formats and search interfaces.

The solution

We scrape official sources daily, embed the text into a vector database, and surface the most relevant records when you ask a question. The LLM answers directly from retrieved official documents, with citations — no hallucination.

Features

Free to use, no account required.

Representatives We Cover (Legislative)

Every New Yorker is simultaneously represented at five levels of government.

City Council51 members

Local laws, city budget, zoning, sanitation, parks

State Assembly150 members

State legislation (lower chamber), education, labor, state budget

State Senate59 members

State legislation (upper chamber), confirmations, budget oversight

U.S. House26 NY members

Federal laws, appropriations, constituent services

U.S. Senate2 NY senators

Federal legislation, treaties, cabinet confirmations

Purpose + Values

Behind every technical decision.

Primary Sources Only

Every fact traces to an official government record — Legistar transcripts, NYS Open Legislation, House.gov, NYC Open Data. No aggregator bias, no paraphrased third-party summaries.

Hyper-Local Context

RAG retrieval is augmented with your query and location input, so results surface the policies that affect you — not just citywide headlines.

Live & Automated

Our GitHub Actions workflows run every morning. The representative directory and legislative corpus are refreshed and ingested daily from official APIs — no stale data.

Clear Information

Legislation is dense. The AI layer translates long records and complex language into clear, actionable takeaways without losing the underlying facts or hallucinating false ones.

Tech Stack
FrontendNext.js 14 + TypeScript + Tailwind CSS
BackendFastAPI (Python 3.11) on Render
DatabaseNeon Serverless Postgres + pgvector
EmbeddingsBAAI/bge-small-en-v1.5 (384-dim, FastEmbed)
Primary LLMLlama 3.1 8B via Groq Cloud
Fallback LLMGPT-4o-mini via OpenAI API
ScrapingCheerio (TypeScript) + BeautifulSoup (Py)
AutomationGitHub Actions (daily 06:00 UTC × 2)
HostingVercel (frontend) + Render (backend)
Full architecture breakdown

Start exploring

Ask about policies, find your representatives, or explore district boundaries — no account needed.