PermitLookup
Nationwide permits, property, business, healthcare, and code-violations records: 2.5 billion rows across a two-node Postgres cluster, every US state and territory.
The largest data asset in the portfolio: ~2.5 billion rows of permits, property, business entities, code violations, mortgage data, and healthcare provider records across a primary + secondary Postgres cluster. Powers every permit-triggered sales motion in the portfolio and the moat for everything else.
PermitLookup is a nationwide records platform spread across a two-node Postgres cluster. The primary lives on a 32 GB RAM / 21 TB ZFS storage T430 and holds 1,426,233,456 rows across 176 tables in a 617 GB on-disk database. The secondary lives on an 88-core / 768 GB R730-2 and holds another 1,058,859,584 rows across 141 tables in 462 GB on disk. Combined, the cluster is ~2.5 billion rows and ~1.1 TB.
Permit coverage spans 57 state and territory tables on each node (all 50 states plus DC, Puerto Rico, Guam, American Samoa, Northern Mariana Islands, US Virgin Islands), totaling roughly 1.5 billion permit-row slots between the two with overlapping ingestion streams. The largest individual tables include Florida permits (230M on each node), code violations (297M on primary, 79M on secondary), Louisiana permits (99M on each), Texas permits (78M on each), business entities (99M / 35M), and New York permits (59M on each).
The cluster also carries property sales (97M primary, plus liens 37M, NYC ACRIS 33M, valuations 9M), HMDA mortgages (17M), septic systems (10M), national doctors and clinicians (12M), prospect contacts (15M), HMDA mortgages, food inspections, propane facilities, USTs, FAA facilities, sanctions entities, and a global census/demographics layer. State partitioning + a hot/cold split keeps query latency under 2 seconds even at the largest tables.
The API is FastAPI running on the R730 (88 cores / 768 GB) behind a Cloudflare Tunnel at permits.ecbtx.com, with a Railway-hosted backup at permit-api-production-6eae.up.railway.app and an `api_users` + `teams` schema already in place for multi-tenant self-serve. Licensing is the monetization path: H-Man Electrical is live, Crown Hardware is quoted, and a 5-contractor waitlist sits behind a self-serve checkout queued for shipment.
- > 2,485,093,040 rows across a 2-node Postgres cluster
- > 1.1 TB combined on-disk database footprint
- > Primary T430 (32 GB / 21 TB ZFS): 1.43B rows across 176 tables, 617 GB
- > Secondary R730-2 (88-core / 768 GB): 1.06B rows across 141 tables, 462 GB
- > ~1.5B permit rows across 57 state and territory tables per node
- > 50 US states + DC + PR + GU + AS + MP + VI covered
- > Layers beyond permits: code violations, property sales / liens / valuations, NYC ACRIS, HMDA mortgages, business entities, doctors and clinicians, food inspections, FAA facilities, USTs, sanctions, prospect contacts
- > Multi-tenant schema (api_users + teams) ready for self-serve
- > permitlookup-web Next.js 16 + shadcn frontend hosts dumpster-leads and hail-leads product surfaces on Vercel
- → Close 1–2 contractor licensing deals
- → Ship self-serve checkout (api_users + teams already provisioned)
- → External API access tier with usage-based pricing
- → Cross-node dedupe pass to publish a unified row count