PermitLookup ← Back to app

Data Sources

Where each data layer comes from and how often it refreshes.

LayerSourceRefresh cadence
PermitsCounty/city building permit portals, named per jurisdictionNightly
Hail/storm reportsNOAA Storm Prediction CenterPer event
Property recordsCounty Central Appraisal Districts, named per countyPeriodic
Contractor licensesTDLR and other state licensing boardsPeriodic
Flood zonesFEMA National Flood Hazard LayerAs FEMA updates
Environmental facilitiesEPA Facility Registry ServicePeriodic
DemographicsUS Census ACSAnnual
Broadband availabilityFCC Broadband Data CollectionBiannual

On storm (roof-damage) lists, an important honesty rule: we do not estimate roof age; we check the permit record. A property counts as "work not yet done" when no re-roof permit is on file for it, not because a model guessed the roof's age.

Source lineages for specific jurisdictions are listed on the data catalog. Records are provided as-is; see the Terms of Service.

Importing a Storm List into your CRM

Every Storm List CSV has the same 9 columns in this order: street_address, city, zip, lat, lng, hail_size_in, storm_date, lead_score, days_since_storm. Map them into your CRM's lead-import fields once and reuse the same mapping for every future list.

CRMImport pathField mapping
AccuLynx Leads > Import Leads > Upload CSV street_address → Address, city/zip → City/Zip, lat/lng → Latitude/Longitude (AccuLynx geocodes if left blank, but mapping these skips a redundant geocode call), lead_score → a custom Lead Score field (create one if you don't have it), storm_date/hail_size_in → custom fields or the Notes field concatenated.
JobNimbus Contacts > Import > CSV street_address, city, zip map directly to JobNimbus's Address block. hail_size_in and storm_date map cleanly to two custom Contact fields (Settings > Custom Fields > Contacts) — create "Hail Size" (number) and "Storm Date" (date) once, then every future import reuses them.
SPOTIO Leads > Bulk Import lat/lng matter most here since SPOTIO's canvassing map plots by coordinate — map them directly rather than relying on SPOTIO's own geocoder. days_since_storm is useful as a custom sort/filter field for prioritizing the freshest damage first.
SalesRabbit Leads > Import Leads street_address, city, zip → the standard address fields; lead_score → SalesRabbit's lead status/priority field, so higher-scored leads surface first on the canvassing map.

Column mappings are stable across every county and every storm window — the same CSV shape ships every time, so a saved import template in your CRM never needs to be redone.

Storm List upgrades

Storm List purchases can include optional upgrade columns. Property owner (owner of record name and mailing address) and Property details (year built, building square feet, market value, assessed value) come from county appraisal district rolls — public record.

Fields may be blank where a county does not publish them: some appraisal districts do not publish an owner mailing address, and a handful do not publish the owner name at all. Where a column is blank, the county did not provide the value; we do not fill it from a third-party model.

The year built column is the year the home was built, not the roof. It says nothing about the roof's age — see our roof-age honesty note above.

Webhook / Zapier-compatible alerts

POST /v1/alerts supports a hail_leads watchlist: set source_type: "hail_leads" and filters: {"county": "Tarrant"} (any storm-list catalog county) with a webhook_url, and PermitLookup POSTs a JSON payload ({alert_name, source_type, match_count, matches, run_at}) to that URL every time a new hail lead appears in that county — pipe it into Zapier's Catch Hook trigger to auto-create CRM leads without a manual CSV import. Alerts also support daily/weekly email digests (email_notify: true) using the same table shown above.

Roofers running a CRM already listed here: PermitLookup has applied to the JobNimbus partner directory for a native integration listing — check back or ask support@ecbtx.com for status.