Skip to main content
Back to portfolio
Portfolio Demo

Council Minutes AI Search

An AI-powered search tool that makes city council meeting minutes accessible and searchable across multiple South Bay municipalities. Natural language queries surface relevant discussions, votes, and decisions with AI-generated summaries.

Elasticsearch OpenAI Embeddings React TypeScript Tailwind CSS Python ETL

How it works

1

Ingest & Parse

Meeting minutes PDFs and agendas are scraped from city websites, parsed with OCR, and structured into searchable records with metadata.

2

Index & Embed

Documents are indexed in Elasticsearch with OpenAI embeddings for semantic search, enabling natural language queries beyond keyword matching.

3

Search & Summarize

Results are ranked by relevance and an LLM synthesizes findings across multiple meetings into a concise summary for the user.

Interactive Demo

Search the Record

Full-text search across council minutes, planning commission hearings, and committee reports from six South Bay municipalities.

Example queries:
Jurisdiction
Year
Fetching meeting data from city systems...

Search South Bay Council Minutes

Full-text search across meeting minutes, hearings, and committee reports from six South Bay municipalities. Enter a query above to begin.

The problem

City council meeting minutes are public record, but practically inaccessible. They're published as multi-hundred-page PDFs that technically meet the transparency requirement but functionally hide the information. Keyword search fails on scanned documents, nothing is indexed across meetings, and a resident trying to find when their neighborhood sidewalk project was discussed has to download and manually search dozens of files.

The approach

Legistar API for structured meeting data, OpenAI embeddings for semantic search, and Elasticsearch for retrieval. Meeting minutes are ingested, chunked, embedded, and indexed automatically. Natural language queries surface relevant agenda items, votes, and discussions with AI-generated summaries that cite the source meeting and page. Fast enough to feel conversational: not "run a query" but "ask a question."

Why it matters

AI-powered access to government documents reduces FOIA request volume, lets staff answer constituent questions in seconds instead of hours, and dramatically improves transparency without changing how minutes are published. Agencies keep their existing workflow; Stoa handles ingestion and keeps the index current. The result is a city council that looks responsive and modern with minimal lift on their end. One system, eleven municipalities, one search interface.