What I built
SeeZambia: Find My Ballot is a voter-facing civic information tool for Zambia's 2026 general election. It helps a voter identify their constituency, ward and voting location, then understand the contests and candidate information relevant to where they live.
Zambia enters the election with more than eight million registered voters, over 13,000 polling stations, 70 new constituencies and some existing constituencies reassigned to different provinces. Yet candidate information below the presidential level is still difficult to find on government pages. It is scattered across PDF files, public notices, websites, Facebook posts and reports, and some records are not online at all.
The wider SeeZambia platform existed before Build Week. During OpenAI Build Week, I developed the Find My Ballot voter journey and the supporting election-data and candidate infrastructure needed to make fragmented public information usable.
How it works
A voter starts on the SeeZambia homepage, selects Find My Ballot, searches for an area, and saves their constituency and ward. That location remains available as they explore candidates and other election information.
Behind the simple interface is a governed electoral-data pipeline. The system preserves the official hierarchy, checks that wards belong to the correct constituencies, links polling locations properly and verifies that totals match the source. If data does not reconcile, the importer stops instead of silently publishing incorrect information.
Candidate information is also evidence-aware. SeeZambia separates direct candidate confirmation, party announcements, reported filings and ECZ-confirmed nominations. It can show useful emerging information without presenting it as final official confirmation, and it clearly identifies incomplete coverage.
How GPT-5.6 and Codex were used
My role was to make the product, data, governance and engineering decisions: how the voter journey should work, how the electoral hierarchy should be modelled, which sources could be trusted and what safeguards were required.
I used GPT-5.6 in ChatGPT to pressure-test those decisions, reason through edge cases and turn the requirements into precise implementation plans.
Codex performed the hands-on implementation inside the repository. It inspected the existing architecture and wrote application code, database migrations, deterministic importers, validation checks, regression tests and Cloudflare deployment changes.
The result is more than a candidate directory. It is a system for turning fragmented election information into something a voter can understand before entering the polling station.
Stable test path
Open the homepage, select Find My Ballot, then use Roma Constituency and Roma Ward 20 as a stable example.
Build Week boundary
The repository includes a dedicated Build Week document explaining what existed before 13 July 2026, what was built or meaningfully extended during the event, the engineering decisions, selected pull requests and known data boundaries.
Built With
- cloudflare-d1
- cloudflare-r2
- cloudflare-workers
- codex
- gpt-5.6
- mcp
- next.js
- opennext
- react
- typescript
Log in or sign up for Devpost to join the conversation.