Case study · Pre-launch

HotSheetRadar

County public records turned into property alerts, with the official source document attached to every one.

Status
Pre-launch. Private repository; code walkthrough on request.
Stack
Python 3.11, pydantic, Splink + DuckDB, pdfplumber, FastAPI, SQLite, Next.js 16
Tests
580 passing

The problem

Code violations, tax delinquencies, probate filings, and evictions are public records, but each county publishes them differently: scanned PDFs, CSV exports, search portals.

Many products in this market resell owner phone numbers. HotSheetRadar does the opposite. It reports what was filed, links the official document, and never collects contact data.

What I built

  1. County adapters

    Grays Harbor County, Washington (scanned PDFs and public-records CSVs) and Miami-Dade County, Florida (code violations, probate, eviction, tax delinquency). I review each county's terms of use before building its adapter.

  2. A normalization waterfall

    Names and addresses pass through regular expressions, then company-name and person-name parsers, with an optional local language model as a last resort (off by default).

  3. Entity resolution

    Splink on DuckDB matches the same owner and property across different sources.

  4. One schema as the contract

    A single pydantic schema is the only thing the API and alerts read. IDs come from parcel numbers, so re-importing the same data changes nothing.

  5. A privacy boundary at intake

    Owner names and mailing addresses become tokens at intake. A refuse gate holds any alert that still contains personal data.

  6. The rest of the product

    A data API, sign-in, Stripe billing, email alerts and digests, and the first slice of a map interface.

How it fits together

Shaded steps are the legal boundary. The product reports filings and never collects contact data.

Results so far

  • 580

    automated tests passing on the latest full run.

  • 2

    counties connected: Grays Harbor, Washington and Miami-Dade, Florida.

Not built yet

  • More counties, text-message alerts, and the alert-preferences and billing screens.