US Building Permit Leads — Scored (Chicago, Austin)
Pricing
Pay per usage
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
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 actor | Typical 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 & Porches | Sometimes |
| Contractor contact info | ✅ name + phone where the city publishes it | Partial |
| Minimum project value filter | ✅ | Rarely |
| Optional email digest | ✅ one clean email per run, not one per permit | Rarely 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 DRMap: https://www.google.com/maps/search/?api=1&query=7213+ALTIDORE+DRDate issued: 2026-08-20Work: New 1-story single-family residence, attached garage, covered porch and patioPermit #: 2016-012795 BPReported cost: $116,480Contractor on file: Sondra AllisonContractor 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
| Field | What it does | Default |
|---|---|---|
city | Which city's permits to pull | chicago |
trade | Roofing / Solar / Pool & Spa / HVAC / Electrical / Fencing / Decks & Porches / Everything | everything |
alertEmail | Optional — where to send the digest email. Leave empty to just use the Dataset/API | — |
minCost | Optional — 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.