BallotBot.NYC
May–June 2025
BallotBot.NYC is an AI chatbot and voter guide that I designed and built to help NYC voters rank their choices for mayor in the 2025 Democratic mayoral primary.
A quick Loom walkthrough of the chatbot and voter guide features.
The Problem
Local elections often get the least attention—even though they affect our daily lives the most. In NYC, the June 2025 Democratic primary for mayor had:
- 9 major candidates
- Ranked Choice Voting (RCV), letting you select up to 5 candidates
- Little media coverage until weeks before the vote
I talked to some friends and read stuff online and saw that most voters:
- Had only heard of 1 or 2 candidates
- Many weren't sure what the mayor actually controls, so they didn't know which issues to think about
- Were intimidated and overwhelmed by the amount of research to make an informed decision
I had a hypothesis that AI could address this problem.
The Idea
A German friend I shared the idea with pointed me to Wahl-o-mat, a quiz based tool the German government made to help voters find the party that best matches their views.
I thought it was a great idea, but felt like a chatbot would work better than a quiz because it's far more flexible:
- Users can focus on issues they care about, and skip ones they don't, versus quizzes where you have to go through everything.
- It enables more exploration, e.g. if a user was interested in climate policy but hadn't heard of Local Law 97 (an issue on some platforms), they could ask the chatbot for more info.
- Could be more engaging than a quiz, especially for the younger, fairly engaged voters I was targeting
It was also much faster to prototype - I could get a working version up and running in under 60 minutes with a custom GPT.
User Research
I set up quick conversations with 6 friends to figure out how to design the conversation flow for the chatbot prototype. These are some of the questions I asked:
- Do you remember how you ranked candidates in the last mayoral primary (2021, won by Eric Adams)?
- If you had to rank the candidates for mayor today, how would you go about deciding who to put first, second, third, etc.?
-
If there were a tool that helped you figure out your ranked list based on your views, how would you want it to work?
- Ask open-ended questions? Let you choose policy areas? Show side-by-side candidate comparisons?
- What kinds of questions would you ask to figure out how to rank candidates?
- When thinking about policies, would you rather start by talking about what matters to you—or react to where the candidates stand on different issues?
- Is there anything that would make you less likely to trust or want to use a tool like this?
From these conversations, I learned that people wanted to be able to:
- Say what issues matter to them
- Get more info on the different positions on those issues and figure out which ones they want
- Get their recommendations
Prototyping & Early Feedback
Based on the research, I came up with this conversation flow:
- Give a list of topics to choose from
- Ask how users want the topic addressed, offering examples of policies without naming names
- Have users weight the topics by importance
- Give the recommendations as a ranked list
I wrote a prompt for a Custom GPT to implement this flow, and sent it to friends.
Their feedback helped shape the next phase:
- Offer multiple ways to start (open-ended or topic menu)
- Added a Candidates page to learn more about them, and link out to campaign sites - friends wanted to read more after getting their recommendations
- Added an explanation and FAQ about RCV

Iteration
Moving to an App
Adding new pages for candidates and an explanation of RCV meant I had to move off of a Custom GPT and build an app.
I used assistant-ui to make a Next.js app that was easily to hook up to any LLM backend, and also let me make a custom UI and additional pages.
I got more feedback after sharing the app in a Discord server for NYC tech people and fixed a latency problem by moving to the OpenAI Chat API and switching from file search to prompt-stuffing.
Design Direction
After seeing tools like TheCityNYC and Gothamist's Meet Your Mayor get traction, I knew I needed a friendlier tone and more visual appeal.
I used ChatGPT as a thought partner and moodboarded a few designs, and went with:
- Playful, optimistic civic design
- Custom font (Roslindale) for a smart, editorial feel
- Bright, nonpartisan accent colors (autumnal purple)
- Micro-interactions and animations to add charm and fun
The goal: serious content, delivered with joy — not government-drab or overly polished NGO aesthetic.


Final Design




Launch & Results
I shared the tool through groupchats, Reddit and Nextdoor, and Discord and Slack tech communities.
A little over 500 users had multi-message conversations with the bot! I volunteered as a texter back in 2020 and only had ~30 full conversations across 15 hours of work, so helping 500 people think through their vote was a really exciting result.
Some feedback:
- "This nailed my top 3 choices and helped me re-rank them."
- "I hadn't heard of Whitney Tilson before and I'm excited to learn more about him."
- "Omg thank you for making this!!!"