LeadFactory.dev · Apify Actor · PPE · Web · AI · SEO agencies

One API call. A full sales dossier.

LeadFactory.dev is not a Maps dump. Each row is a nested packet: contacts & phones, platform (WordPress, Next.js…), modernization 1–10, site ops (chat / booking / call-tracking), hosting & TLS, free digital footprint, Census trade area, review brief, social posture, peer percentiles in-run, primaryOffer + ICP fits, screenshot, and fieldCoverage — stamped isLive: false.

  • Pay per packet (PPE)
  • 10-packet free trial / login
  • 24h snapshot cache
15+API layers per lead
1nested packet object
10trial packets / login
24hsnapshot cache

Actor / API surface

Everything the packet returns.

One Apify dataset row per business. Nested under packet for agents. Exact field names — filterable where noted.

Identity & geo

SerperPlaces · ZipCountyIndex

  • businessName category categories
  • address city state postalCode
  • county countyFips geo
  • latitude longitude placeId cid
  • googleMapsUrl priceLevel

Contacts

Maps · WebsiteCrawl · ContactIntel

  • phone primaryPhone sitePhones
  • allPhones phoneInventory phonesFound
  • emails primaryEmail website
  • people contacts socials
  • contactIntel

Web platform & modern

WebsiteCrawl · website-intel

  • websitePlatform websitePlatformCategory
  • websitePlatforms (WP, Next.js, Wix, Shopify…)
  • modernizationScore modernizationLabel
  • modernizationGaps modernizationSalesAngles
  • siteTitle siteDescription siteH1
  • techSignals jsonLdTypes openingHours
  • hasViewport hasOpenGraph hasJsonLd

Site ops stack

HTML scrape · site-ops

  • hasChat chatVendors
  • hasOnlineBooking bookingVendors
  • hasCallTracking callTrackingVendors
  • hasPayments paymentHints
  • fieldServiceCrm claims24Hour
  • brandsServiced siteOpsMaturityScore
  • siteOps (full object)

Hosting & TLS

DNS · TLS handshake

  • hostingOrg primaryIp
  • sslDaysToExpiry tlsIssuer
  • hostingIntel

Digital footprint

DNS · RDAP · Wayback

  • emailProvider hasSpf hasDmarc
  • domainAgeYears waybackFirstSeen
  • digitalFootprint

Security & certs

HTTP headers · crt.sh

  • securityScore securityLabel
  • securityPosture
  • certIntel certSubdomainCount
  • certFirstSeen

Reputation

SerperPlaces · SerperReviews

  • rating reviewCount
  • reviewSummary reviewSentiment
  • reviewThemes significantReviews
  • reviewSampleSize reviewOwnerResponseRate

Social

SocialProbe

  • socialPresenceScore socialPresenceLabel
  • socialInsights socialProfiles
  • missingSocialNetworks socialRecommendedActions

Trade area

Census ACS 5-year · ZCTA

  • tradeAreaMedianIncome
  • tradeAreaPopulation
  • tradeAreaOwnerOccupiedPct
  • tradeAreaMedianHomeAge
  • tradeArea

Batch / market

In-run peers · batch-stats

  • competitorsInBatch
  • ratingPercentile modernizationPercentile
  • enrichmentScorePercentile
  • rankByEnrichmentScore
  • peerGapSummary batchStats

Sales brain

Derived · offer-intel

  • primaryOffer primaryOfferReason
  • offerCandidates
  • icpFitWeb icpFitAi
  • talkTracks riskFlags
  • reviewOfferHints worthMentioning

Visual & quality

ApiFlash · score.js

  • screenshotUrl hasScreenshot
  • enrichmentScore scoreGrade
  • scoreBreakdown scoreReasons

Coverage & modes

field-coverage · trial · cache

  • fieldCoverage (column availability map)
  • outputMode full | preview
  • trialPacket billing
  • fromCache snapshotAt isLive
  • dataFreshness packet (nested)

Nested packet

One object agents can walk.

Top-level fields for Sheets/CRM filters; packet.* groups for n8n / Clay / custom agents.

01

packet.identity / location

Name, categories, placeId, address, county, lat/lng, Maps URL

02

packet.contacts

allPhones, phoneInventory, emails, people, socials

03

packet.web

Platform, modernization, meta, tech, schema, hours

04

packet.ops

Chat, booking, call-tracking, payments, field CRM, maturity

05

packet.hosting + digitalFootprint + security + certs

TLS, MX, RDAP, Wayback, headers, CT subdomains

06

packet.reputation + social

Review brief, themes, quotes; social presence & gaps

07

packet.tradeArea + market

Census ZCTA; competitorsInBatch; percentiles; peerGapSummary

08

packet.sales + quality + screenshots + meta

primaryOffer, ICP fits, talkTracks; score; screenshot; snapshot stamps

How a run works

Discover → enrich → derive → cache.

Serper Places → site crawl (platform, ops, people) → free probes (DNS, TLS, CT, security) → Census ZCTA → reviews brief → social probe → optional screenshot → in-run batch percentiles → primaryOffer / ICP → write Supabase snapshot (24h). Trial: 10 full packets once per Apify login.

Filtering · low cardinality

Built for qualified lists.

Prefer booleans and small enums for pre-filter products (e.g. WordPress-only). Continuous scores stay for sort. Premium filters = fields that required enrichment.

Basic Maps / geo

  • state · city / metro pack
  • requireWebsite · requirePhone
  • Rating / review buckets
  • Niche query (HVAC, dental…)

Premium after enrich / cache

  • websitePlatform / websitePlatformCategory
  • modernizationLabel · score buckets
  • hasEmail · hasChat · hasOnlineBooking
  • hasCallTracking · primaryOffer
  • icpFitWeb / icpFitAi buckets
  • scoreGrade · hasSpf / hasDmarc

Snapshot cache lets you re-serve and (roadmap) merchandise inventory without re-hitting Serper — ideal for “only WordPress, dated, has email” qualified pulls at a higher rate.

Actor inputs (high level)

Control discovery, depth, trial, cache.

Input Default Purpose
searchQuery + locationHVAC · DallasTerritory discovery
maxResults50Places per query (trial caps remaining)
enrichContactstrueSite crawl · emails · ops · platform
fetchReviews / analyzeSocialstrueReview brief · social probe
captureScreenshotstrueApiFlash visual (optional key)
digitalFootprint · securityPosture · certInteltrueFree killer layers
outputModefullpreview = score + fieldCoverage only
useTrialtrue10 full + 3 shots · once per Apify login
useCache · cacheTtlHourstrue · 24Snapshot re-serve · lower COGS
forceRefreshfalseIgnore cache · new snapshotAt
minEnrichmentScore · onlyEnriched0 · falseOutput filters

Trial · preview · PPE

Try density. Then pay per packet.

MODES
{useTrial: true
  → 10 full packets + 3 screenshots
  → once per Apify userId
  → billing: "trial" · event lead-trial @ $0

outputMode: "preview"
  → businessName, postalCode, score
  → hasPhone, hasEmail, fillRate
  → fieldCoverage.columns[field].available
  → premium values LOCKED

outputMode: "full"
  → complete packet + nested packet{}

useCache: true (24h)
  → same snapshotAt on HIT
  → event lead-cached
}

PPE events (list)

  • lead-trial $0 · lead-cached $0
  • lead-basic $0.02 · lead-enriched $0.07
  • screenshot $0.03 · review-summary $0.02
  • Full packet list $0.12 (enriched + shot + reviews)

Always: isLive: false · isDynamic: false · dataFreshness: snapshot

Field lineage diagrams →

Vs thin scrapers

API depth, not row count.

Capability Typical Maps scraper LeadFactory.dev
Name / phone / ratingYesYes
Platform (WP, Next.js, Wix…)NowebsitePlatform
Modernization 1–10No+ gaps + angles
Site ops (chat / booking / call-track)NositeOps
Hosting + SSL expiryNohostingIntel
DNS / SPF / DMARC / domain ageNodigitalFootprint
Security headers + CT certsNofree probes
Census trade areaNoZCTA ACS
Peer percentiles in-runNobatchStats
primaryOffer + ICP fitsNosales brain
Review brief (not dump)Stars onlyYes
fieldCoverage / previewNoYes
Trial + 24h cacheRareBuilt-in
Snapshot honestyVariesisLive: false

Who calls the API

Web. AI. SEO. Ops.

Web agency

Filter modernizationLabel dated + websitePlatform WordPress. Open with redesign.

  • primaryOffer = redesign | care_plan
  • Screenshot for Loom
  • icpFitWeb

AI / automation

hasChat: false + phone + claims24Hour → AI receptionist. Call-tracking = already buying leads.

  • primaryOffer = ai_phone | booking
  • Review themes → demo script
  • icpFitAi

SEO / local SEO

Schema, meta, H1, social gaps, review themes as page ideas, peer modernization gaps.

  • jsonLdTypes · siteTitle · siteH1
  • missingSocialNetworks
  • batch peer gaps

Clay / n8n / CRM

Nested packet, fieldCoverage, snapshot audit trail, cache re-pulls.

  • outputMode preview to probe
  • forceRefresh for new stamp
  • PPE unit economics

Technical lineage

Source entity → field name.

One ER-style diagram for integrators. Full field→source matrix on the lineage page.

LeadFactory.dev field lineage: sources to exact field names

Field → source matrix →

Sales quote

Price the packet.

Order-of-magnitude for a territory push. Final PPE is set on Apify.

  • Free trial — 10 full packets + 3 screenshots, once per Apify login
  • Full packet — entire API surface above (+ screenshot when configured)
  • 24h cache — same snapshot re-serve; Serper-friendly economics
  • Premium filters — platform / offer / ops (roadmap: inventory merchandise)

*Estimates only. COGS include Serper + optional ApiFlash. Not a live data feed.

QUOTE · LEADFACTORY.DEV
Fresh scrapes425
Cached re-serves75
Est. scrape subtotal$51.00
Estimated project total$51.00

500 packets @ $0.12 · 15% cache

Open Apify Store

Ship dossiers, not empty columns.

LeadFactory.dev — dense local packets, snapshot-stamped, priced per unit.

Get your territory quote