Inspiration
Atlanta publishes a huge amount of civic data, but simply making data public does not necessarily make it accessible.
Crime incidents, code enforcement records, neighborhood boundaries, and other city data are spread across multiple portals and often stored in formats that are difficult for the average resident to understand. We started Pulse ATL around a simple question:
If I live in an Atlanta neighborhood, can I easily understand what is happening around me, whether things are getting better or worse, and how effectively the city is responding?
For many residents, the answer is no.
That problem becomes even more important when looking at equity. Two neighborhoods can experience similar issues but receive very different levels of city response. Those differences can remain buried inside thousands of rows of government data.
Pulse ATL was inspired by the idea that AI could make that information understandable and actionable. Instead of expecting residents to analyze spreadsheets or GIS datasets, we wanted to create a neighborhood-level "pulse" that tells people what is happening, highlights unusual trends, and helps communities identify where city attention may be falling short.
What it does
Pulse ATL is an AI-powered civic intelligence dashboard that transforms fragmented Atlanta open data into easy-to-understand neighborhood health reports.
The platform collects civic datasets, normalizes them into a common format, and analyzes activity across Atlanta's Neighborhood Planning Units (NPUs).
Residents can use an interactive Atlanta map to explore neighborhood pulse scores and see patterns within their communities. Behind the dashboard, Snowflake aggregates neighborhood-level statistics and analyzes trends and anomalies. Gemini then translates those results into plain-English pulse reports that explain what is happening and why it matters.
Rather than simply displaying another government dataset, Pulse ATL helps answer questions such as:
- What issues are increasing in my neighborhood?
- Is this activity unusual compared with previous periods?
- How does my neighborhood compare with others?
- What should residents pay attention to?
One of the most important parts of the project is the ability to surface disparities between neighborhoods. By comparing neighborhood data side by side, Pulse ATL can make differences in civic conditions and government responsiveness much easier to see.
The goal is to give residents, neighborhood organizations, journalists, and civic advocates evidence they can actually understand and use.
How we built it
Pulse ATL uses a full data-to-AI pipeline.
Atlanta open datasets are collected and normalized through an ingestion worker running with Render Workflows. The pipeline converts records from different civic data sources into a consistent schema before loading them into Snowflake, which acts as the project's analytics warehouse.
Inside Snowflake, SQL-based aggregation calculates neighborhood statistics while Snowflake Cortex handles data-side intelligence such as detecting trends and anomalies.
Those structured results are then sent through our API layer to Gemini, which handles the user-facing intelligence. Gemini converts the analytics into readable neighborhood pulse reports and powers conversational questions about the selected neighborhood.
The results are displayed through a React-based map dashboard, allowing residents to move from a citywide view to a neighborhood-level explanation with only a few clicks.
We intentionally gave each major technology a distinct responsibility:
Render handles the application infrastructure and scheduled data workflow. Snowflake handles storage, aggregation, and analytical intelligence. Gemini turns those analytics into understandable explanations and resident-facing interactions.
We also used an agentic software-development workflow while building the project, with AI coding agents working from structured implementation tickets and an orchestrator/reviewer coordinating development and review.
Challenges we faced
One of our biggest challenges was the data itself.
Our original concept relied heavily on Atlanta 311 service-request data. During development, we discovered that the raw 311 data we wanted was not reliably available through a straightforward bulk-download API. Because the entire application depends on trustworthy location and status information, fabricating or guessing missing fields was not an option.
We redesigned the ingestion system around a canonical incident schema so that individual datasets could be swapped without changing the rest of the application. This allowed us to work with validated sources including Atlanta Police Department data, City of Atlanta GIS data, and other civic datasets while keeping the architecture flexible.
Another challenge was making several different technologies work together while ensuring none of them were included simply for the sake of using another API. We wanted the entire system to form one meaningful loop:
Atlanta data → Render Workflow → Snowflake analytics → Gemini explanation → resident dashboard.
Building that end-to-end integration required us to think carefully about where traditional analytics should stop and generative AI should begin.
We also had to design around imperfect civic data. Some records did not contain enough geographic information to reliably associate them with an Atlanta NPU. Instead of inventing coordinates or neighborhood assignments, the pipeline rejects those records and tracks them explicitly. Preserving the integrity of the underlying civic data was more important than making the dataset appear more complete.
What we learned
One of the biggest things we learned is that building a useful civic AI application is not primarily an AI problem—it is a data quality and communication problem.
An LLM can explain information extremely well, but only if the information underneath it is trustworthy. We learned to separate deterministic analytics from generative explanation: Snowflake calculates and analyzes the underlying numbers, while Gemini communicates those results to the user instead of inventing the analysis itself.
We also gained hands-on experience connecting Render Workflows, Snowflake, Snowflake Cortex, Gemini, Postgres, and a React frontend into a single application.
Most importantly, we learned that open data becomes much more powerful when people do not need to be data analysts to understand it.
Pulse ATL is our attempt to make Atlanta's civic data feel less like a collection of government databases and more like a tool residents can use to understand—and advocate for—the communities they live in.
Log in or sign up for Devpost to join the conversation.