Channel strategy · A field note

Your competitor's contractor network is hiding in plain sight.

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.

10,071 contractors mapped
4 public locator APIs
276 competitor-validated dead zones
The strategic question

How do we put more qualified leads in our pros' hands?

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.

The question behind the question

How do we get our pros engaged enough to actually close those leads?

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.

The outside-in answer

Map the universe, find the engaged competitor pros in your dead zones, convert them.

276
Competitor-validated dead-zone counties — zero active pros of yours, but at least one rival network already operating (revealed demand)
536
Engaged competitor contractors already living and working in those counties
1
Recruitment-team afternoon to convert the list into qualified outreach

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

From 68M US single-family homes to 922 markets that matter.

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.

68M
Single-family owner-occupied
The only roof type that gets a deck. Filters out condos, multifamily, rentals, manufactured, vacant land.
17M
Built 1995–2010
The vintage window where the original wood deck is now 15–31 years old, past typical wood-deck service life.
5.7M
Home value $500K+
Budget threshold for premium composite. A deck replacement is a $40K–$70K project; $500K+ households underwrite it without HELOC drama.
922
Counties with meaningful demand
Counties holding ≥500 eligible homes: concentrated enough to justify a dedicated TrexPro. Below that threshold, recruiting for the market doesn't pencil out.

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).

Of those 922 markets — where does the competition recruit and you don't?

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.

Most-engaged competitor contractors. Living in your dead zones.

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.

The math is operational, not analytical.

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.

How healthy is each network, by each locator's own signals.

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).

Five layers, four public locators, each independently sourced.

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
Claude Code · Algolia /browse · Brandify locatorsearch · Storepoint API · api.census.gov · Mapbox GL

Three platforms cover almost every brand's contractor locator.

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.

Phone is the universal identifier. Geo+name is the fallback.

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.

Adapt the method to any vertical with a certified-contractor network.

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.

Roofing

GAF Master Elite · CertainTeed SELECT ShingleMaster · Owens Corning Platinum Preferred · IKO ShieldPRO Plus. Three of four use the same vendor platforms as decking.

Siding / Windows

James Hardie Elite Preferred · LP SmartSide Preferred · Royal · Andersen Certified · Pella Certified · Marvin Certified. Every one publishes a locator.

HVAC

Carrier Factory Authorized · Trane Comfort Specialist · Lennox Premier Dealer · Bryant Factory Authorized. Trade-specific cert signals are richer here than in decking.

Pool / Outdoor

Latham network · Anthony Sylvan · Premier Pools. Pool builders publish locators with project galleries — the engagement signal is photo count.

Solar / Storage

SunPower Master Dealer · Tesla Certified Installer · Enphase Platinum · LG Pro Dealer. Solar installer networks have rich engagement signals (kW installed, photo galleries).

Garage doors / Cabinets / Floors

Clopay Premier Pro · CHI Master Authorized · KraftMaid Designer · Wellborn Certified · Shaw Floors Aligned Dealer. Same locator-API pattern, smaller universes.