Every brand that sells through certified pros (decking, roofing, siding, windows, HVAC, pool, solar) publishes a public contractor locator. Cross-match four of them and you have, for free, the operational competitive intel stack normally sold for $25K+. We mapped 10,071 contractors across the four major composite-decking networks in one afternoon.
It's the question every brand that sells through certified contractors is asking: decking, roofing, siding, windows, HVAC, pool, solar. The marketing org owns "qualified leads." The hard part is the second clause: what happens once a lead lands in a pro's inbox.
A lead handed to a dormant contractor evaporates. A lead handed to an engaged contractor in a growing market converts. So the operational question is upstream: are our certified pros even in the right places, and are they good enough? That's a competitive-intel question — and the answer is publicly available.
Below: the dead-zone map colored by which competitor is filling each county. Then the steal-target intersection: engaged competitor pros living where you have nobody. Then the engagement gradient showing how the four networks compare. deterministic
Composite-decking demand is finite and concentrated. Each step below is a strict subset of the one above; every filter is sourced from Census ACS and auditable. Everything that follows (dead-zone maps, steal-target lists, engagement scoring) is anchored to this 922-county universe.
deterministic
For other categories, swap the vintage + value criteria for your product's replacement cycle and customer demographic. Roofing = built 1995–2005, all values. Windows = built pre-2000, $400K+. HVAC = built pre-2005, no value gate. Source: api.census.gov/data/2022/acs/acs5, fields B25034 (year built) × B25075 (value) × B25003 (tenure).
Each red county is a validated dead zone: zero active pros of yours and at least one rival-network contractor already operating there (revealed demand). Counties with no active pros from any of the four networks are grayed — likely non-deck markets (desert Southwest patio-and-pavers, etc.), not recruitment opportunities. Black dots are your existing pros' HQ. Toggle competitor pills to plot their contractors in your dead zones. Top 20 priorities sit below the map, ranked by competitor_active × deck_eligible.
Cross the recruitment dead-zone map with each competitor's active-contractor roster. Every row below is a contractor in good standing with a competitor brand, operating in a county where you have zero active pros. That's a ready-made recruitment call list — the answer to "how do we put more qualified leads in our pros' hands?" is to first put more (and better) pros in our dead zones.
Trex's network already maxes out coverage in metros where it dominates. The marginal lead in Fairfax doesn't move the dial. The marginal lead in Maricopa or Riverside does, but only if a TrexPro exists there to take it. Right now, 498 active contractors from competitor networks operate in those zero-TrexPro counties. That's not a market-research insight; that's a recruitment-call list.
Each network's locator exposes different engagement signals (Trex has 6, TimberTech 7, Fiberon 4, Deckorators 4). We score each contractor on count of positive signals → active (≥3), marginal (1–2), dormant (0). Bar width = total network size; segments = engagement bucket. The healthiest network has 4× the active rate of the unhealthiest.
deterministic Thresholds tuned so each signal's hit rate is 5–25% (keeps signal density comparable across networks). Diagnostic fields like survey rating, invoice $, tenure, labor-warranty registration, and internal CRM notes are visible on contractor cards but excluded from the score (asymmetric across networks).
No CRM access. No NDA. No proprietary panel. Every layer below is a public dataset with a permanent URL: auditable, reproducible, and free or under $30 to run end-to-end on a category.
| Layer | Signal | Data source (public) | Tool |
|---|---|---|---|
| 01 | Network census | Public contractor locator APIs — every brand publishes one for homeowner searches. Algolia, Brandify, Storepoint, or custom JSON. | Node · curl · Brightdata |
| 02 | Canonical schema + dedupe | Phone-key + geo+name fuzzy match — every locator exposes phone and lat/lon. Cross-match on digits-only phone primary, fall back to geo+name for renumbered records. | Node · libphonenumber |
| 03 | Engagement scoring | Per-locator signals — tier, gallery count, certifications, warranty registration, invoice $ (TimberTech), revenue, survey ratings. Bucketed: active / marginal / dormant. | Node · simple rubric |
| 04 | Recruitment dead zones | Census ACS (owner-occupied + age + value) for "eligible homes" per county + network coverage join. Surfaces every county where competitors recruit and you don't. | Census API · turf.js |
| 05 | Steal-target rolodex | Highest-engagement contractors loyal to one competitor (zero overlap with yours). Ranked by tier + revenue + tenure + geography. | Internal — gated |
Whatever your category, the locator JS on locator.<brand>.com hits one of three vendor backends — Algolia, Brandify (where2getit), or Storepoint — or a brand-specific custom JSON endpoint. Each is a documented JSON API. "Scraping" is mostly identifying which platform a given brand uses, then paginating /browse, walking a zip-anchor grid, or making one bulk GET.
# Pattern 1 — Algolia (powering ~30% of professional locators): curl 'https://<APP_ID>-dsn.algolia.net/1/indexes/<INDEX>/browse' \ -H "X-Algolia-Application-Id: $APP_ID" \ -H "X-Algolia-API-Key: $API_KEY" \ -H "Origin: https://locator.<brand>.com" \ --data '{"cursor":"<next-page>"}' # /browse paginates the entire index. No anchor blind-spots. # Pattern 2 — Brandify / where2getit (heavy in home-products + retail): curl 'https://hosted.where2getit.com/<brand>/rest/locatorsearch' \ -d '{"request":{"appkey":"<KEY>","formdata":{ "geolocs":{"geoloc":[{"addressline":"<zip>", "latitude":<lat>,"longitude":<lng>}]}, "searchradius":"150","limit":500}}}' # 500-record cap → use a zip-anchor walker (~80 anchors covers CONUS+AK+HI). # Pattern 3 — Storepoint (small + mid-size brand locators): curl 'https://api.storepoint.co/v1/<id>/locations' # Returns ALL contractors in one shot. No pagination, no anchors. # Pattern 4 — Custom JSON (large enterprises with their own backend): curl 'https://www.<brand>.com/services/findbuilder?lat=<lat>&lon=<lon>&zip=<zip>' # Per-zip walker, usually ~70 anchors @ 200 mi for CONUS+AK+HI.
App IDs, API keys, and appkeys are extracted from the locator page's chunked JS in browser DevTools. No auth, no scraping detection. They're designed to be called from the homeowner's browser. The "which platform does this brand use?" question takes about 60 seconds in the Network panel.
Every locator exposes a phone number for the contractor (it's the whole point of the locator). Normalize to digits-only and you have an O(1) join key across all four networks. About 4% of records need the geo+name fuzzy match because they've renumbered or changed legal entity — Levenshtein on the company name, gated by 5-mile geo proximity.
function phoneKey(raw) { const digits = String(raw || "").replace(/\D/g, ""); return digits.length === 11 && digits.startsWith("1") ? digits.slice(1) : digits; } // Then: for each contractor in each network, key by phoneKey(phone). // Multi-network membership = same key across multiple network indexes.
Composite decking has four major networks. Every product category sold through certified pros looks the same. Find the locator for each competitor (they all have one) and the method runs unchanged.
GAF Master Elite · CertainTeed SELECT ShingleMaster · Owens Corning Platinum Preferred · IKO ShieldPRO Plus. Three of four use the same vendor platforms as decking.
James Hardie Elite Preferred · LP SmartSide Preferred · Royal · Andersen Certified · Pella Certified · Marvin Certified. Every one publishes a locator.
Carrier Factory Authorized · Trane Comfort Specialist · Lennox Premier Dealer · Bryant Factory Authorized. Trade-specific cert signals are richer here than in decking.
Latham network · Anthony Sylvan · Premier Pools. Pool builders publish locators with project galleries — the engagement signal is photo count.
SunPower Master Dealer · Tesla Certified Installer · Enphase Platinum · LG Pro Dealer. Solar installer networks have rich engagement signals (kW installed, photo galleries).
Clopay Premier Pro · CHI Master Authorized · KraftMaid Designer · Wellborn Certified · Shaw Floors Aligned Dealer. Same locator-API pattern, smaller universes.