Inspiration

NYC has extensive public building data, but getting a complete picture of a construction project still requires connecting records across different systems. Small architecture firms, contractors, and permit coordinators need to understand what was filed, which permits were issued, and which violations require attention.

We built CivicSite to turn scattered records into a clearer answer: what needs attention, and what evidence supports it?

What it does

CivicSite is a backend-first AI copilot for reviewing NYC construction records.

It connects job filings, permits, and violations using building and project identifiers, retrieves relevant evidence, and flags potential inconsistencies or records that need follow-up.

Instead of generating an unsupported answer, CivicSite pairs findings with source records so users can verify them.

The prototype supports:

  • Searching building and project records.
  • Connecting related filings, permits, and violations.
  • Identifying potential gaps and conflicting information.
  • Generating concise, source-backed explanations and next steps.

CivicSite supports human review. It does not issue permits or provide legal compliance decisions.

How we built it

We used Python to ingest and normalize NYC Open Data records.

Elasticsearch stores the records and supports structured filtering, full-text search, and semantic retrieval.

Mistral helps interpret record descriptions and generate explanations from retrieved evidence. Deterministic checks handle date comparisons and record relationships rather than relying on the language model alone.

We focused on the backend workflow instead of a polished interface: ingest, connect, retrieve, check, and explain.

Challenges we faced

The hardest challenge was connecting records correctly. Addresses, building identifiers, job numbers, and permit identifiers do not always align neatly across datasets.

Another challenge was distinguishing a real inconsistency from missing data. A permit that was not found in a dataset is not proof that no permit exists.

We therefore designed findings as review candidates, with supporting evidence and explicit uncertainty.

What we learned

Reliable AI requires more than a good prompt. Data normalization, retrieval quality, and traceable evidence matter just as much as the model.

We also learned to separate responsibilities: search retrieves evidence, the model explains it, and deterministic logic performs checks.

Accomplishments we're proud of

We turned a broad permitting idea into a focused prototype built around real NYC public data.

Our goal was not another generic chatbot, but a practical evidence workflow for small teams that cannot dedicate staff to checking multiple systems.

What's next for CivicSite

Next, we want to validate the workflow with architects, contractors, and permit coordinators; measure the accuracy of its findings; and add correction-letter uploads and project monitoring.

Longer term, the same evidence-based approach could support zoning and entitlement reviews for larger infrastructure projects.

Built With

Share this project:

Updates

Submission history