Coverage: 17 → 71 jurisdictions, 20 → 92 datasets, 14 → 28 states, 727 distinct places.
- New generic, config-driven adapters for ArcGIS REST (FeatureServer/MapServer), Socrata and CKAN — a new source is one registry entry (
src/registry.js).
- 54 new jurisdictions, including Detroit, San Antonio, Denver, Nashville, Louisville, Baltimore & Baltimore County, Washington DC, Miami, Tampa, Columbus, Cleveland, Pittsburgh, Minneapolis, Kansas City, Raleigh, Durham, Charlotte/Mecklenburg, Fort Worth, Arlington TX, Tucson, Scottsdale, Portland, Salem, Tacoma, Bellevue, Everett, San Jose, Anaheim, Corona and more; extra trade datasets for Los Angeles, Seattle, Austin, Montgomery County MD and Cambridge (solar).
- County & multi-town feeds: Cook County IL (68 towns), Collin County TX (24), San Diego County (38), Louisville Metro (52), Montgomery County MD (30), Nashville (15), Wake (15), Mecklenburg (8).
city now holds the town on the record; new jurisdiction field holds the issuing authority.
- Statewide: New Jersey DCA construction permits (415 municipalities) as an opt-in lagged feed (published ~2–3 months behind).
- New inputs:
municipalities (server-side town filter for county feeds), allJurisdictions, includeLaggedSources.
- Default run now queries a fast sample of 20 large datasets (finishes in seconds); all 92 datasets take about a minute; choose cities/states/towns or tick Query all jurisdictions for everything.
- Every source validated on 2026-10-22 (freshness ≤ 60 days, field mapping, measured fill rates in README).
- Fix:
maxResults could be exceeded by 1 when parallel sources finished at the same moment.
- Parallelism per ArcGIS organisation instead of per shared host, so many ArcGIS sources run concurrently.
Rejected after validation (not added): Dallas (stale 2020), Kansas City old dataset (stale), Honolulu (ends 2025-06), Somerville, Gainesville, Sonoma, Cambridge pools (stale), Mesa old dataset (retired), Fort Collins (portal moved), Phoenix (2023), Las Vegas (near-empty), Urbana (2 rows), Rockford (unparseable dates), Prince George's County (sparse), Williamson CAD (no recent issues), Boulder County / Redmond OR / Fort Pierce / Bend / Atlanta (no issue date or mostly non-building cases), Raleigh right-of-way, Canadian portals (not US), Alamance County NC (blocks cloud/datacenter IPs with HTTP 403 — fails on Apify).
- 17 jurisdictions / 20 official datasets (was 6): added Boston (CKAN), Philadelphia (CARTO), New Orleans, Cincinnati, Cambridge MA (alterations, new construction, roof), Montgomery County MD (residential + commercial), Orlando, Baton Rouge, Norfolk, Mesa, Marin County.
- New normalized schema:
permitId, isNewConstruction, contractorLicense, contractorAddress, ownerName (organisations only), clean 5-digit zip, validated coordinates.
- 17 trade tags (added siding, fireProtection, deck; stricter roofing; battery storage counts as solar).
- New filters: states, ZIP codes, new construction only; trade names are case-insensitive.
- Fair-share quota with redistribution, cross-source dedup, per-source time budget and error isolation (one failing portal never fails the run), per-source status in
OUTPUT_SUMMARY.
- Dataset views: Overview, Contractor leads, Locations. Output schema links.
- First version: Chicago, NYC, LA, SF, Seattle, Austin.