Author Image

James Turk

Hi! I’m a software developer, civic technologist, and educator.
I teach in the CAPP and MPCS programs at the University of Chicago.

If you know me, there’s a good chance it is because I created and led Open States for 13 years.

I like meeting new people, so feel free to make an appointment or get in touch: Or, scroll on to learn more about my past work:
Projects | Courses | Work | Talks | Press



Experimental library for webscraping using LLMs.


Fast implementations of common fuzzy string comparison and phonetic algorithms.


Open States is an open source project that aggregates state level information from all 50 states and makes it publicly available. This was my primary project for the majority of 2009-2022.


Fast implementations of common fuzzy string comparison and phonetic algorithms.


Python utility library for scraping unreliable websites with features like forced‐caching, retries, and request throttling.


After spending over a decade writing (and perhaps more importantly, maintaining) scrapers in Python, I have some opinions about how to structure them. Spatula is a library that I’ve been working on to help me write scrapers in a more consistent way.


Generic honeypot utilities for use in django projects.


Custom field type for Django projects that stores markup (markdown, ReStructuredText, etc.) and pre‐rendered HTML side‐by‐side. (Used on!)


Generic rate limiting library with Redis.


A django application for building anonymous polls.


Software Engineering for Civic Tech
CAPP 30320 Spring 2024

Building on the skills taught in the first year and a half of the MSCAPP program, students spend the quarter working in teams to build a civic tech project. Covers traditional software engineering topics such as agile processes and design patterns, as well as topics that are important to civic technology such as human-centered design and working on teams more typical of government and nonprofits.

Python Programming
MPCS 51042 Fall 2022 | Fall 2023

Masters Program in Computer Science course teaching programmatic thinking using Python. Course introduces Python as a multi-paradigm language, examining procedural, functional, and object-oriented features.

Computer Science With Applications 2
CAPP 30122 Winter 2023 | Winter 2024

The second CS course in the Master of Science in Computational Analysis and Public Policy program. The course is focused on building real-world data skills in Python. Covers code organization concepts, data gathering from APIs and web scraping, databases, data cleaning and visualization, and data structures in Python.


I’m passionate about writing code for the benefit of society, and I’ve been fortunate to make a career of that, including 13 years working on Open States. I am currently working to grow the field of public interest developers and increasingly find myself drawn to work to help ensure the web remains a public good.

If you are working on something that you might want to collaborate on, please get in touch.


University of Chicago

2022 - Present

Chicago, IL

Assistant Academic Director, MSCAPP

2024 - Present

Assistant Clinical Professor

2022 - Present

  • Teach courses in Masters Program in Computer Science and Computational Analysis & Public Policy programs.
  • Data Science Clinic Mentor, Internet Equity Project (2023)
  • Congressional Modernization Fellowship Academic Lead (2023)


Plural is a company that works to make democracy more accessible and transparent. In 2020, I transferred ownership of Open States to them and joined their team as Director of Public Data. I left in 2022, after marking 13 years as the lead of Open States.

Director of Public Data

2020 - 2022



Washington, DC

After 7 years at Sunlight Foundation, Open States became an independent project in 2016. After a two-year hiatus, I again led the project. During this period, Open States was primarily funded by grants from Reynolds Journalism Institute and the National Science Foundation C-Accel program.


2016 - 2022

Princeton, NJ

I spent most of 2019 commuting between DC & NJ, serving as the principal engineer of the Princeton Gerrymandering Project, primarily supporting their OpenPrecincts application and other technical decision-making.

Principal Engineer

Jan 2019 - Oct 2019



2015 - 2019

Washington, DC

I took a hiatus from Civic Technology work, leading two backend teams through an overhaul of PBS’ internal data model for video, a migration that affected all 300+ PBS member stations.

Director of Technology

2015 - 2019

Sunlight Foundation

2007 - 2015

Washington, DC

Sunlight Foundation was the preeminent civic technology organization in the US from 2007-2016. I was fortunate to join the organization as an intern and then one of the first full time developers. Our team built award-winning civic technology tools. In 2009, I helped found what would become Open States. In 2014 I served as CTO/Director of Sunlight Labs.

CTO / Director of Sunlight Labs

2014 - 2015

State & Municipal Data Lead

2010 - 2014

Developer & Open Source Coordinator

2007 - 2010


Selected Talks

Automating Web Scraping with GPT
Media Party May 2023

Presentation on using GPT-3.5/GPT-4 for automated web scraping.

Open Civic Data

Invited participant in annual summit on civic data standards used by Google, Microsoft, Facebook, etc.

Django Built A Nonprofit
Django Birthday Jul 2015

Invited participant in annual summit on civic data standards used by Google, Microsoft, Facebook, etc.

Open Civic Data

Presentation of Sunlight Foundation’s work to audience of national media organizations.

Opening Government Data

Presented ongoing civic tech work to audience of government and volunteer developers.

Open Data, Open States

Presented ongoing state legislative work before audience of state legislators, staffers, and lobbyists.

Opening Government with Python
PyCon US 2011 Aug 2012

Presented poster on civic tech projects at largest annual Python conference.

Mobile Apps for Investigations
CAR 2011 Feb 2011

Invited speaker, presented on use of Augmented Reality to provide context for spending.

Open States Project

Invited to present Open States work to audience of journalists and developers at TimesOpen 2.0.

Selected Press

Civic Tech Pioneer James Turk Joins UChicago CS to Teach in MPCS, CAPP Oct 2022

Open States Joins Civic Eagle Nov 2021 Jan 2019

Departure from PBS

Why keep Open States going? Nov 2016

How I Work (Interview)
Technically.DC Feb 2015

Open States project achieves grand milestone Mar 2012

Open States: Transparency for state governments using open data Sep 2011

Netzpolitik Interview (German) Jul 2008

Interview with German outlet on Open Government.