Contact-data honesty pass, plus two fields that were in the payload all along.
- New output field, no extra requests:
address_line2 (suite/unit), which was in the payload
all along and is the difference between a deliverable address and a wrong one.
business_mailing deliberately NOT exposed. It is a GeoJSON Point that looks like a free
street-level geocode and is a city centroid: Travis County's 468 Electrical Contractors have
432 distinct addresses and 17 distinct points between them, 347 of them identical. It is less
precise than city_state_zip and would invite mapping a whole city onto one pin. A first pass at
this release shipped it as latitude/longitude on the strength of a single spot-check against a
downtown Austin address, which could not tell a street geocode from the Austin centroid; the
measurement above is why it was pulled back out before anyone could build on it.
- A source outage no longer reads as an empty county. A failed fetch returned
[], which in a
dataset is indistinguishable from "no contractors here" — and only one of those is our fault. It
now returns a free Notice(notice_type="source_unavailable") row. Notices are skipped by the
charge loop by type, alongside CountyOption.
- Listing, README and both articles corrected. The advertised example was
A/C Contractor,
and all 20,323 A/C Contractor rows statewide have address, city_state_zip and phone null —
TDLR publishes contact data only for its ~40 establishment/company licence types (99,720 of
983,494 rows, 10.1%, measured 2026-08-21). The output_sample compounded it by showing invented
address and phone values on a real licence number. Example input is now Electrical Contractor
(13,911 phones of 13,917 rows), the sample is a real row, and the split is stated in the input
schema where the buyer chooses, in the listing FAQ, and in both articles.
- Canary retargeted so the contact fields are actually asserted. The old golden input could
never exercise
address/phone — they are null by design on that licence type — so no tier of
testing could have caught the above. Target is now Electrical Contractor with address and
phone in required_fields (verified 468/468 in TRAVIS at time of change) and notice added to
reject_fields.
maxResults maximum raised 100,000 → 250,000; Harris County holds 161,937 rows, so the old
ceiling could not deliver the full roster the description offered.
- Initial scaffold generated from the portfolio actor template (wiring only; sample data).