Inspiration

We noticed most Canadians only hear about a bill after it's already law, because the actual bill text on parl.ca is written for lawyers, not citizens, so we set out to close that gap.

What it does

Follow the Bill turns any federal bill into a plain-language, bilingual summary with an optional audio readout, shows which real companies are registered to lobby on it, helps you find and message your MP, and lets you bookmark bills to get emailed automatically when their status changes.

How we built it

A Flask backend stitches together parl.ca/LEGISinfo for live bill data, Gemini for restricted-to-source-text summaries and letter drafting, Canada's Registry of Lobbyists bulk data for lobbying activity, Auth0 and MongoDB for accounts and bookmarks, and a scheduled job plus SMTP for status-change email alerts, and finally ElevenLabs to enable the text to speech audio of the bill summary.

Challenges we ran into

parl.ca blocks direct browser requests and exposes bill text only as scraped XML links, the Registry of Lobbyists' CSVs are Windows-1252-encoded with literal "null" strings instead of blanks, Gemini's free-tier quota is tracked per model and exhausts fast, and we accidentally bloated our git history with 50–80MB raw CSVs before locking down .gitignore.

Accomplishments that we're proud of

We caught ourselves before shipping a feature that would've surfaced MPs' personal financial holdings, an ethically shaky angle, and pivoted it into something more defensible and just as useful: showing which companies are actually, publicly registered to lobby on a given bill.

What we learned

That "public government data" and "usable government data" are two very different things, and most of civic tech is quietly bridging that gap rather than doing anything flashy.

What's next for Follow The Bill

Deploying it properly under a domain, joining the lobbying registry's free-text subject-matter disclosures to name specific bills directly, and building out draft_letter()'s real Gemini-backed letter generation.

Built With

Share this project:

Updates

Submission history