US Building Permit Leads — Scored (Chicago, Austin) avatar

US Building Permit Leads — Scored (Chicago, Austin)

Pricing

Pay per usage

Go to Apify Store
US Building Permit Leads — Scored (Chicago, Austin)

US Building Permit Leads — Scored (Chicago, Austin)

Turn official city building-permit records into scored, deduplicated leads — Chicago, Austin, more cities over time.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Volodymyr Ruskykh

Volodymyr Ruskykh

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

🏗️ Permit Alert Monitor — Deduplicated Construction Leads with Lead Scoring

Turn official city building-permit records into scored, deduplicated leads. This actor pulls directly from city open-data APIs (Socrata), scores every new permit HOT/WARM/COLD based on freshness and project value, and — unlike every one-off permit scraper on the Store — remembers what it already showed you, so a scheduled run only ever surfaces what's genuinely new.

A new building permit means a project is about to start. Typical lead window is 1-6 weeks before construction begins — exactly when roofers, solar installers, HVAC companies, electricians, and remodelers want to reach the homeowner or contractor before someone else does.

No proxies. No CAPTCHAs. No blocks. 100% public government records.


Why this instead of a typical permit scraper

This actorTypical permit scraper
Lead scoring (🔥 HOT / 🟡 WARM / ⚪ COLD)❌ raw dump
Deduplication across runs✅ — only genuinely new permits❌ re-exports everything every time
Multiple cities, one Actor✅ (Chicago, Austin — more added over time)Usually one Actor per city
Trade filter✅ Roofing, Solar, Pool & Spa, HVAC, Electrical, Fencing, Decks & PorchesSometimes
Contractor contact info✅ name + phone where the city publishes itPartial
Minimum project value filterRarely
Optional email digest✅ one clean email per run, not one per permitRarely offered

What you get

Every genuinely new permit, deduplicated against everything seen in previous runs:

{
"permit_number": "2016-012795 BP",
"issue_date": "2026-08-20T00:00:00.000",
"address": "7213 ALTIDORE DR",
"description": "New 1-story single-family residence, attached garage, covered porch and patio",
"reported_cost": "116480",
"contractor_name": "Sondra Allison",
"contractor_phone": "5126518100",
"lead_score": 85,
"lead_grade": "HOT"
}

Plus, if you set an email, one digest per run covering everything new — never one email per permit, so volume stays sane no matter how many matches show up:

Subject: New permit: 7213 ALTIDORE DR ($116,480)
🔥 Lead: HOT (85/100)
Address: 7213 ALTIDORE DR
Map: https://www.google.com/maps/search/?api=1&query=7213+ALTIDORE+DR
Date issued: 2026-08-20
Work: New 1-story single-family residence, attached garage, covered porch and patio
Permit #: 2016-012795 BP
Reported cost: $116,480
Contractor on file: Sondra Allison
Contractor phone: 5126518100

Supported cities

Chicago (IL) · Austin (TX) — more added over time, verified against each city's real schema before going live (no guessed field names).


Who uses this

Roofers · Solar installers · HVAC & electrical contractors · Fencing & deck companies · Remodelers & general contractors · Lead-gen agencies · Real-estate & proptech researchers · Anyone building a CRM feed via API, n8n, or Make


Input

FieldWhat it doesDefault
cityWhich city's permits to pullchicago
tradeRoofing / Solar / Pool & Spa / HVAC / Electrical / Fencing / Decks & Porches / Everythingeverything
alertEmailOptional — where to send the digest email. Leave empty to just use the Dataset/API
minCostOptional — only alert on permits at or above this project value

To force a clean-slate test run (see all matching permits as "new" again), don't use an input flag — manually delete the memory instead: Apify Console → your Actor → Storage → Key-value stores → find the store named permit-alert-state-<city>-<trade> → delete the "STATE" key.


Use it from code / n8n / Make

Run it via the Apify API and pull results from the Dataset, or wire it into n8n, Make, or Zapier to drip fresh, scored leads into your CRM every run.


FAQ

Is this legal? Yes — building permits are public records, published by each city's own official open-data portal.

How fresh is the data? Cities update their open-data portals roughly daily. Nobody in this space is truly real-time despite the marketing — even large commercial permit-data platforms refresh their bulk feeds on a multi-week cycle. Pulling directly from each city's own portal keeps this Actor about as fresh as the data gets.

Why are some fields empty? Each city publishes a different raw schema. Chicago splits an address into street number/direction/name; Austin gives one combined address string. Austin publishes a contractor phone number; Chicago doesn't. The Dataset keeps every original field the city publishes, unmodified — blank fields just mean that city doesn't publish that particular detail.

How does lead scoring work? A simple, explainable formula — not a black box: freshness (days since issued), project value, and whether there's a contact to actually call. Full transparency: it's meant as a quick triage signal, not a guarantee.

Why deduplication instead of a raw export? Most permit scrapers give you the same records again on every run, leaving you to figure out what's actually new. This Actor remembers what it already surfaced (per city/trade combination) and only alerts on genuinely new matches.