Why most court sites are hard to automate
Most county court sites were built for a person at a desk. You type a name, you click a case, you open a PDF.
There is no API, no export button, and no feed of new filings. Some states run one statewide portal. Many leave it to each county, so every site looks and works a little differently.
That is why the work lands on a person. One record means a search, a PDF, and copy and paste. Then the next one.
The three ways to do it
| Option | What it is | Coverage | How fresh | When a site changes |
|---|---|---|---|---|
| County bulk data or API | Files or a feed the county publishes | Only counties that offer it | Set by the county | The county handles it |
| Data vendor | You buy the records already pulled | Wide, but not every county or record type | Set by the vendor | The vendor handles it |
| Custom browser automation | Software that searches the site like a person | Any site a person can use | Every morning, or when you choose | Someone has to fix it |
- Bulk data first. If your counties publish bulk data, use it. It is the cheapest thing that works.
- Then a vendor. If a vendor covers your counties and record types, and the price works per record, buy.
- Then build. If neither covers you, build it. Same if you need something no vendor gives you, like an address that sits inside the court PDF.
That last case is the one I see most. The record you need is often not in any feed. It is on page one of a scanned PDF.
What a daily job looks like
This is the job I run for a court-data lead company based in Florida. The company's name stays private.
Gets the report
Each morning it downloads the county arrest report.
Finds the case
It looks up each person's case on the court site.
Reads the PDF
It reads the first page of the court PDF, even when it is a scan, and pulls out the home address.
Sets aside what it can't find
If no address turns up, the record is set aside. It does not guess.
Sends the good ones
A person checks every record on a simple review screen. Approved records go to the shipping tool.
It runs for Seminole and Broward counties in Florida and Tarrant County in Texas, with a fourth on the way. Together they handle about 250 to 300 records a day. Each county has its own scraper, built for that court site.
By hand, each record takes at least a minute: a search, a PDF, an address. Across three counties, that is 4 to 5 hours of someone's day, every day.
What breaks, and how to keep it running
Court sites change. Sessions expire. A PDF comes back blank. A search times out.
A job built for a demo stops at the first one of these. A job built for real data plans for them:
- One bad record never stops the run. It gets set aside, and the rest keep going.
- No address, no guess. If the court record or address is missing, the record goes to its own list.
- A person sees every record before it goes out. A wrong address costs money, so nothing ships without a check.
- You hear about it right away. If a record fails, a site goes down, or a step breaks, an email goes out at once. It goes to me and to the client.
- One county's problem stays in that county. Each county has its own scraper, so a change on one court site does not stop the others.
- A site redesign is a fix, not a rebuild. Only that county's scraper changes. The rest of the job stays as it is.
Before you automate: check the site's terms
Read each county site's terms before you automate it. Keep the pace close to what a person would do, not hundreds of searches a minute. And ask your own lawyer about how you use the records, since the rules differ by state and by record type.
This is not legal advice. It is what I check before I build.
When it is not worth it
- A few records a week. A person is cheaper.
- Records you only need once. Buy them, or pull them by hand.