How to Actually Get Ohio Government Salary Data Without Losing Your Mind
The state of Ohio publishes employee compensation data through several channels, but finding it is not as straightforward as a single download link. I spent a few days mapping this out for a project last year and ended up with more spreadsheets than I intended. Here is what actually works. Ohio tracks government salaries at multiple levels, and they do not all live in the same place. The state-level employee payroll data comes primarily through the Ohio Department of Administrative Services (DAS) and the Ohio Budget Office. County-level salaries, which make up a significant chunk of public employer payrolls, are published by each county auditor's office individually. That means there is no single dataset, just a collection of them. You will need to decide which level you are working with first. For state-level data, the Ohio state employee salary lookup tool is searchable by name, agency, job title, and other filters. It pulls from the state's payroll system. The interface is basic but functional. The real friction comes from the fact that the data is updated on a schedule, not in real time. During open enrollment periods and quarterly payroll adjustments, there can be gaps or stale entries that make your results look wrong.
At the county level, each of Ohio's eighty-eight counties maintains its own public salary database. Most of them post employee compensation through their auditor websites. The format varies widely. Some counties give you a downloadable CSV file. Others require you to filter and export one result at a time. I ran into this directly when working with Cuyahoga County's data. The export feature only let me pull about two hundred records at once. My project needed roughly twelve thousand. The workaround was writing a simple script that paginated through the search results and stitched the exports together. It took me about an hour to set up but saved me from manually downloading file after file. If you are dealing with a large county, do yourself a favor and automate the scraping rather than clicking through the interface. One thing most people miss when digging into this data is how compensation is reported. Base salary is only part of it. Overtime, shift differentials, longevity pay, union-negotiated stipends, and various allowances are often recorded separately and can substantially change what a position actually pays. A nurse at a state hospital might show a base salary of sixty thousand dollars but bring in close to ninety with differentials and overtime factored in. If you are doing analysis, always pull the total compensation field when it exists, not just the base. Not every county includes total comp in their public files. Franklin County and Hamilton County tend to be reasonably thorough. Rural counties sometimes only publish the base figure, which limits what you can actually do with the data. Another nuance worth knowing: job titles are inconsistent across agencies and over time. The state changes classification codes periodically, and the same title can map to different roles depending on the agency. I found a position listed under "Program Analyst III" in one agency and "Analyst, Level 3" in another, even though they were functionally identical roles paying similar ranges. If you are doing cross-agency comparisons, you will want to build a normalization layer for job titles before the numbers mean anything useful.
The biggest bottleneck I encountered was date filtering. Most of the public salary portals let you query by fiscal year, but the state fiscal year runs July through June, and many county systems use calendar years. When I tried to compare state-level data against county-level data for the same twelve-month period, the mismatches caused real headaches. The fix was standardizing everything to calendar-year dates and manually adjusting for any fiscal-year edge cases. It adds a step but prevents you from accidentally counting the same pay period twice or missing data at the boundary. If you need raw data in bulk rather than interacting with the portals, your best bet is to submit a request through the appropriate public records channel. Ohio's public records law applies to these salary records, and agencies are required to provide them. I have used this route when the web interfaces were too limiting, and it usually gets you a clean spreadsheet within a few business days, assuming the request is specific enough. Vague requests get pushed back. Be precise about dates, agencies, and file formats in your submission. There are also third-party aggregators that compile Ohio government salary data, some of which offer paid access to cleaner datasets. They can save time if you are willing to pay for convenience, but the underlying data still comes from the same sources. Make sure whatever site you use cites the original publication and gives you visibility into how recent and complete the data is.
Get the Full Details

The transparency landscape has been slowly improving. A few years ago, accessing even basic salary information required emailing individual agencies and waiting weeks for responses. The online tools are better now, though they still carry the quirks you would expect from government-built systems. The main takeaway is to plan for data cleaning and normalization before you start any analysis. The raw numbers are there. You just need to account for the inconsistencies or your results will look off.