PublicBrief DMV

Inspiration

On the side, I work in Loudoun County's Community Services Board, where I see how decisions about data centers, land use, infrastructure, public spending, and emerging surveillance technologies (e.g. APLRs like Flock) can have long-term effects on residents. Yet the information needed to understand those decisions is often scattered across meeting agendas, staff reports, procurement documents, resolutions, and public notices.

The information is technically public, but it is not always practically accessible. A resident may need to read dozens of pages just to answer basic questions:

  • What is actually being proposed?
  • Has the decision already been made?
  • Who is responsible for approving it?
  • What financial, privacy, or infrastructure concerns are involved?
  • What information is missing?
  • Is there still time to participate?

Companies, vendors, developers, and institutional stakeholders often have dedicated resources for monitoring local government. Individual residents usually do not. When people disengage because these processes are difficult to follow, consequential decisions can advance without meaningful public scrutiny. For example, tools like Hamlet (https://www.myhamlet.com/).

That information imbalance inspired PublicBrief DMV.

What it does

PublicBrief DMV helps residents understand local-government decisions and identify useful next steps before proposals are finalized.

The prototype includes two complementary experiences.

Scan My Locality

Users can browse a demonstration feed of source-linked decisions relevant to Loudoun County and Virginia. Items are organized into three categories:

  • Public Money
  • Privacy & Surveillance
  • Community & Infrastructure

Each item explains why it was flagged, what is being proposed, its current status, which government bodies and departments are involved, what information remains unclear, and where residents can find the official source. There is no actual scraping for this currently.

Analyze a Document

Users can paste an agenda item, public notice, procurement proposal, land-use document, resolution, or policy excerpt.

PublicBrief produces a structured civic brief containing:

  • A five-second summary
  • The proposed action
  • Current decision status
  • Important dates
  • The decision-making body
  • Affected groups
  • Financial and revenue considerations
  • Privacy and surveillance considerations
  • Community and infrastructure considerations
  • Missing or unclear information
  • Questions residents could ask
  • Public-participation options
  • A neutral public-comment draft
  • Short excerpts grounding the findings in the supplied source

PublicBrief is not designed to tell residents what position to take. Its purpose is to help them understand the decision, verify the evidence, and participate more effectively.

How I built it

I built PublicBrief DMV as a solo hackathon project using:

  • Next.js
  • TypeScript
  • Tailwind CSS
  • Vercel
  • A server-side large-language-model integration
  • Structured JSON validation for AI output

The application uses a one-page editorial interface inspired by modern public-information publications rather than a traditional government portal or generic chatbot.

For the document analyzer, the server sends the user-provided text to the AI with a strict structured-output schema. Instead of asking for a general summary, the prompt requests specific civic information such as decision status, responsible entities, participation opportunities, unresolved questions, and supporting evidence.

The locality scanner currently uses curated demonstration data drawn from official public sources. The data is separated from the interface so future versions can replace the curated feed with locality-specific agenda integrations.

A future ingestion architecture could normalize different public systems behind a common adapter:

interface AgendaSourceAdapter {
  fetchMeetings(): Promise<Meeting[]>;
  fetchAgendaItems(meetingId: string): Promise<AgendaItem[]>;
}

This would allow PublicBrief to support systems such as Legistar, CivicPlus, HTML agenda pages, PDF packets, and state legislative sources without depending on one universal scraper.

Preventative security and responsible AI

Because PublicBrief deals with public decisions, trustworthy behavior was a core design requirement.

I added safeguards so the application does not simply trust either the pasted document or the model response.

Prompt-injection protection

The pasted document is treated as untrusted evidence, not instructions. The model is explicitly told not to follow commands contained inside the source text.

Source-grounded output

The model must distinguish between:

  • Documented in the source
  • Potential implication
  • Not specified

When information is missing, PublicBrief labels it rather than inventing a date, official, vendor, policy, or participation process.

Structured validation

Both incoming requests and AI-generated responses are validated server-side. Arbitrary model-generated HTML is not rendered.

Protected credentials

The AI API key remains in server-side environment variables and is never exposed to the browser.

Abuse prevention

The application limits input size and repeated requests to reduce accidental duplicate submissions and public endpoint abuse.

Safe civic guidance

PublicBrief does not automatically send emails, contact officials, or take actions on behalf of users. Contact links come from curated government information rather than AI-generated URLs.

The interface also reminds users to verify dates, procedures, and decision details with the issuing government body.

Challenges I faced

Defining a realistic hackathon scope

The larger vision involves continuously scanning city, county, district, and state sources. Local governments, however, publish information through many different platforms and document formats.

Building a reliable DMV-wide ingestion system during a short hackathon would have created a broad but unfinished project. I narrowed the prototype to:

  1. A curated Loudoun and Virginia demonstration feed
  2. A fully functional manual document analyzer
  3. A clear roadmap for locality-specific adapters

This allowed me to demonstrate the complete resident experience without claiming live coverage that the prototype does not yet provide.

Going beyond generic summarization

A basic AI summary would not meaningfully address the problem. I had to determine which outputs actually help a resident make sense of a decision.

The most useful structure was not simply “What does this document say?” but:

What is being decided, where is the proposal in the process, who holds each role, what evidence supports the analysis, what is missing, and what can the resident do next?

Handling uncertainty

Government documents frequently omit context. A resolution may mention an approval without explaining later implementation, project-level effects, or future participation opportunities.

It was important for the tool to say that information is unavailable rather than filling the gap with a plausible answer.

Balancing urgency with neutrality

PublicBrief is inspired by concern about decisions involving surveillance, data centers, infrastructure, and public resources. However, the product should not assume every proposal is harmful or tell residents what to believe.

I designed the output to raise source-grounded questions and identify potential implications while keeping the resident in control of the conclusion.

Creating a readable interface

The analyzer produces a large amount of information. I had to prioritize the most important content through:

  • An At a glance section
  • Clear decision status
  • Category-specific analysis
  • Separate facts and implications
  • Expandable evidence
  • Action-oriented questions and participation guidance

What I learned

I learned that the hardest part of civic technology is often not access to information, rather it is turning fragmented public information into a structure residents can use.

I also learned that responsible AI requires more than a disclaimer. Trust has to be designed into the system through:

  • Constrained prompts
  • Structured output
  • Request and response validation
  • Explicit uncertainty
  • Source evidence
  • Safe link handling
  • Clear limits on automated action

Most importantly, I learned that a focused prototype can communicate a much larger product vision. PublicBrief DMV does not yet continuously monitor every jurisdiction, but it demonstrates the full workflow from public document to civic understanding and participation.

What’s next

Future development could include:

  • Live agenda monitoring for additional DMV jurisdictions
  • Legistar and CivicPlus integrations
  • Virginia General Assembly data
  • Address-to-district matching
  • Verified representative lookup
  • Notifications before hearings and votes
  • Historical tracking from proposal to final decision
  • Comparisons between proposed and adopted policy language
  • Community-organization dashboards and shared watchlists

The long-term goal is to give residents access to the kind of early decision intelligence that well-resourced organizations already use—while keeping the experience transparent, neutral, and grounded in official sources.

Built With

Share this project:

Updates

Submission history