Local Lead Qualifier — Google Maps + AI Scoring avatar

Local Lead Qualifier — Google Maps + AI Scoring

Pricing

from $110.00 / 1,000 lead qualifieds

Go to Apify Store
Local Lead Qualifier — Google Maps + AI Scoring

Local Lead Qualifier — Google Maps + AI Scoring

Search Google Maps for a niche and location, then use Claude to score each business as a sales lead based on their web presence and draft a ready-to-send outreach line for the hot ones.

Pricing

from $110.00 / 1,000 lead qualifieds

Rating

0.0

(0)

Developer

Cong

Cong

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

10 days ago

Last modified

Share

Stop paying for raw lead lists. Get pre-qualified leads with a reason and an opening line already written.

Local Lead Qualifier searches Google Maps for a niche + location (e.g. "roofers in Denver, CO"), checks each business's actual web presence, and uses Claude to score every business as hot / warm / cold against the service you're selling — plus a ready-to-send outreach line. Built for agencies and freelancers selling to local businesses (web design, SEO, ads management, anything where "weak or missing website" is the buying signal).


Why this instead of a generic Maps scraper

Raw Google Maps scrapers hand you a spreadsheet of names and phone numbers — you still have to manually check every website and decide who's worth calling. This Actor does that triage for you:

  1. Scrapes the listing (name, category, rating, phone, website)
  2. Fetches the business's actual homepage and checks it for weak signals (no site, no SSL, no mobile viewport, no analytics, stale copyright year)
  3. Sends those signals + your service description to Claude, which returns a score, a one-sentence reason, and a non-generic outreach line
  4. Skips businesses already flagged in a previous run, so repeat runs only surface new leads

Quickstart

1. Describe what you sell

In What You Sell, be specific — this is what the AI scores against:

"We build fast, mobile-friendly websites for local service businesses, $1,500 flat fee."

2. Add your Anthropic API key

Get one at console.anthropic.com → API Keys → Create key. Stored as a secret.

3. Configure searches

[
{ "query": "roofing contractors in Denver, CO", "maxResults": 20 },
{ "query": "family dentists in Austin, TX", "maxResults": 20 }
]

4. Turn on a Residential proxy

Google Maps applies bot detection to datacenter IPs — use Apify Residential Proxies in the Proxy Configuration field. Without one, runs will frequently get blocked or CAPTCHA'd.

5. Connect Slack (optional)

Same as any Apify Incoming Webhook setup — paste the URL into Slack Webhook URL to get a digest of new hot leads per search.


Output

One dataset record per qualified lead:

{
"searchQuery": "roofing contractors in Denver, CO",
"scoredAt": "2026-07-31T14:00:00.000Z",
"listing": {
"name": "Peak Roofing Co",
"category": "Roofing contractor",
"address": "123 Main St, Denver, CO",
"phone": "(303) 555-0100",
"website": null,
"rating": 4.6,
"reviewCount": 82,
"mapsUrl": "https://www.google.com/maps/place/..."
},
"websiteSignals": {
"hasWebsite": false,
"isReachable": false,
"hasSsl": false,
"hasMobileViewport": false,
"hasAnalytics": false,
"copyrightYear": null,
"loadErrorMessage": null
},
"leadScore": {
"score": "hot",
"reason": "82 reviews at 4.6 stars but no website at all — strong local reputation with no digital front door.",
"outreachLine": "Peak Roofing Co has 82 five-star-ish reviews on Google but no website — happy to show you what a $1,500 site could do for calls booked."
},
"isNewLead": true
}

Pricing guidance

Billed per business scored (pay-per-result recommended — see Apify's pricing setup when publishing). Each result costs roughly one Claude Haiku call plus one lightweight HTTP fetch, so cost scales with maxResults × number of searches.


Known limitations

  • Requires a residential proxy for reliable results — Google Maps blocks datacenter IPs aggressively.
  • Website signal checks are HTTP-only, not a full browser render — this is intentional (keeps cost and run time down across hundreds of businesses) but means JS-only sites may look weaker than they are.
  • Google's Maps DOM changes over time. If listing scraping starts returning empty results, the CSS/attribute selectors in src/mapsScraper.ts need an update — same maintenance profile as any Maps scraper on the platform.
  • Dedup state is per-Actor, not per-run — disable "Skip Leads Already Flagged" if you want a full re-score every time.

Architecture

Playwright (headless Chrome, residential proxy) → Google Maps listings
→ HTTP fetch of business homepage → website quality signals
→ Claude Haiku (lead scoring + outreach line)
→ Apify KV Store (seen-lead dedup)
→ Slack Block Kit digest (hot leads only)
→ Apify Dataset (full run archive)