Open States strives to improve civic engagement at the state level by providing data and tools regarding state legislatures. We aim to serve members of the public, activist groups, journalists, and researchers with better data on what is happening in their state capital, and to provide tools to reduce barriers to participation and increase engagement.
https://openstates.org/about/
Open States aggregates legislative information from all 50 states, Washington, D.C., and Puerto Rico. This information is then standardized, cleaned, and published to the public via OpenStates.org, a powerful API, and bulk downloads. OpenStates.org enables individuals to find out who represents them, look up information on an important bill that’s been in the news, discover how their representatives are voting, or just stay current with what is happening in their state. Additionally, our API and bulk downloads see millions of hits every month from advocacy organizations, journalists, researchers, and many others.
Open States was holding (what appears to be) their 2nd annual summit Thursday, January 12th-14th 2023. Thursday began with a virtual series of discussions and talks over Open States’ mission, uses, and goals for the future. This was followed by 2 days of hackathon-ing at the University of Chicago Harris School of Public Policy’s Keller Center. Open States was providing 2 tracks, the first being a more-guided introduction to web scraping with their Python library spatula and the second for using their bulk data API for data analytics.
Very recently I’ve started looking for connections and opportunities to work on projects and, as far as I can tell, there’s no better place to do that than a hackathon. This one was 2 days away and I had no good ideas or people to work with, so I signed up for the first track to learn more about web scraping.
The Thursday talks were very interesting, unfortunately I could only join in at various points between my work hours. Regardless, it was great learning about the many nonprofits utilizing Open States to further their causes and educate common people to the consequences of confusing bills. The first half of Friday was filled with frustration and confusion while I struggled to make my XPath commands do what I wanted and figured out how to properly contribute to projects on GitHub. After the logistical struggles though, I was able to use spatula to begin collecting the data that Open States was looking for. I took on their issue of creating a web scraper for the Iowa Legislative Committees & Schedules, hoping it helped that I was from Iowa (it didn’t).
By the end of Friday’s session, I was finished with the majority of my scraper completed. So, I returned for the Saturday session in the afternoon to ask questions about edge cases and make the final touches on my error handling and stylizing. Once linting runs on my commit, I’ll have completed my first contribution to an open-source project.


Leave a comment