How It Works

Search by meaning,
not by keyword

Petaluma Civic answers questions about local government by finding documents that mean the same thing — not just documents that share the same words.

Scroll to explore
"Pavement Resurfacing Program FY 2025"
"Arterial Street Rehabilitation"
"Capital Improvement — Infrastructure"
"Maintenance of Roadway Assets"
0 documents matching exact phrase
"road maintenance on Petaluma Blvd"
Voyage AI · voyage-3
your query agenda items ordinances minutes transcripts
Agenda items
Ordinances
Minutes
Transcripts
5,404
document chunks · all indexed
Ordinances 1,900
Transcripts 1,506
Agenda items 1,443
Minutes 555
step 01
Your question
"How did council vote on housing density?"
step 02
Embed with Voyage AI
voyage-3 · 1,024-dim vector
step 03
Search with pgvector
cosine similarity · top 8 chunks
step 04
Claude synthesizes
grounded answer from real documents
Illustrative example
"How did the council vote on the housing element update?"
agenda item minutes · 2023-08-07
Council approved the Housing Element Update 4–1, with the dissenting vote citing concerns about infrastructure capacity in the eastern growth area.
Illustrative example
"What are the rules on short-term rentals in Petaluma?"
ordinance · 2022
Ordinance 2910 requires hosts to obtain an annual permit, collect Transient Occupancy Tax, and limits rentals to primary residences only.
Illustrative example
"Has the city discussed traffic on Lakeville Highway?"
transcript · 2024-03-11 agenda item
Yes — council discussed a traffic study for Lakeville Highway in March 2024, focusing on the Foss Creek intersection and proposed signal timing improvements.
01 / 06
01 · The problem

Keyword search misses the point

Ask a traditional database to find documents about "road repair," and it looks for those exact words. Never mind that city planners call it "pavement resurfacing" or "arterial rehabilitation." Never mind that the agenda item approving a $2.3 million contract is filed under "Capital Improvement Program, Item 4c."

The words don't match, so the document disappears — even when it contains exactly what you were looking for.

This isn't a search problem. It's a vocabulary problem. City government has its own language, and most residents don't speak it.
02 · The insight

Every word becomes a coordinate

Semantic search works differently. A language model — Voyage AI's voyage-3 — reads a piece of text and produces a list of 1,024 numbers called an embedding. These numbers encode meaning: the concepts present, the context, the relationships between ideas.

The phrase "road maintenance on Petaluma Blvd" produces an embedding close to "pavement resurfacing program" — because the model has learned they refer to the same thing. The words differ; the coordinates are nearby.

03 · The space

Meaning clusters in space

Visualize every document as a point in a 1,024-dimensional space. Documents about similar topics end up close together — not because they share words, but because they share meaning.

Search for "housing affordability" and your query lands in a cluster of agenda items and council votes about zoning, density bonuses, and developer fees. Ask about "environmental review" and the cluster shifts toward planning commission minutes and General Plan ordinances.

The dashed ring shows what "nearby" looks like — the documents most likely to contain your answer.

04 · The corpus

5,404 documents, all indexed

Every document in Petaluma Civic has been processed through Voyage AI and stored as a 1,024-dimensional vector in PostgreSQL, using the pgvector extension.

That's 1,900 ordinances going back decades. 1,443 agenda items from recent meetings. 1,506 chunks of spoken council transcript. 555 segments from meeting minutes PDFs — all chunked, embedded, and waiting for your question.

When new meetings happen, new documents are added to the index within days.

05 · The pipeline

Three steps from question to answer

When you type a question, three things happen in under a second.

First, your question is embedded into the same 1,024-dimensional space as the documents. Then pgvector finds the 8 closest chunks by cosine similarity — the documents that most closely "mean" what you asked. Finally, Claude reads those 8 chunks and synthesizes an answer.

No hallucination. Every claim in the answer comes directly from a real Petaluma city document — which you can request as a source citation.

06 · The result

Ask the questions you actually have

This works for the kinds of questions that frustrate traditional government search: questions where you know what you mean, but not how the city recorded it.

Ask about council votes, permit history, budget decisions, zoning rules, developer agreements. Ask follow-ups. The examples shown are illustrative, but the documents are real — all from official City of Petaluma records.