Google Maps Lead Priority Scorer avatar

Google Maps Lead Priority Scorer

Pricing

from $1.50 / 1,000 scored leads

Go to Apify Store
Google Maps Lead Priority Scorer

Google Maps Lead Priority Scorer

Scores Google Maps places (from any Google Maps scraper's output) into a single 0-100 lead-priority score by combining missing website, unclaimed profile, GBP completeness, and relative review count. Zero-fetch, zero-LLM.

Pricing

from $1.50 / 1,000 scored leads

Rating

0.0

(0)

Developer

オレンジ Tb

オレンジ Tb

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

11 days ago

Last modified

Share

What does Google Maps Lead Priority Scorer do?

Type a business type (e.g. "plumber") and a city, and this Actor returns Google Maps leads sorted by a single, sortable lead-priority score from 0 to 100 for every business — in one run, no separate scraper step required. It calls Google Maps Scraper for you under the hood to fetch the places, then combines four signals that local SEO and marketing agencies already sell against — no independent website, an unclaimed Google Business Profile, missing profile fields, and a below-median review count versus similar nearby businesses — into one number plus a plain-English list of reasons.

It makes no external API or LLM calls of its own. You can also skip the built-in fetch and paste in the output of any Google Maps scraper you already ran — see Advanced below.

Key features

  • 🔎 One-run search — give it a business type and a city; it fetches and scores in a single Actor run, no separate scraper Actor to configure first.
  • 🎯 Combined lead-priority score — no independent website, unclaimed profile, GBP completeness, and relative review count merged into a single 0-100 number instead of four separate exports to juggle.
  • 🧹 Filter before you pay — set leadFilter (e.g. "no website OR unclaimed") and only matching leads are scored and charged for.
  • 📈 Change tracking between runs — run this Actor again later on the same area and every lead is tagged NEW, UPDATED, or UNCHANGED vs. last time, so you only re-review what actually moved.
  • 🚫 Closed businesses excluded automatically — places marked permanently closed on Google Maps are dropped before scoring, so you never call a business that no longer exists.
  • 🔔 Built-in Slack / Discord / webhook notifications — post a summary of new or updated leads straight to your team, no separate integration setup required.

Why use this Actor?

Existing tools give you one signal at a time — a list of businesses with no website, or a list of unclaimed profiles. But a business missing a website and unclaimed and falling behind its neighbors on reviews is a much hotter lead than one missing just a website. This Actor combines the signals so your sales team can sort by a single number instead of juggling four separate exports — and does the Google Maps fetch itself, so you don't need to run and configure a separate scraper Actor first.

Typical users: local SEO agencies and freelancers doing outbound prospecting, marketing agencies building target lists for a specific city or category, and directory/listing sites prioritizing which businesses to reach out to for profile claims.

How to use Google Maps Lead Priority Scorer

  1. Set Business types to search for (searchTerms, one per line, e.g. "plumber") and Location (location, one city/area per run, e.g. "Leeds, UK"). Minimal input:
    { "searchTerms": ["plumber"], "location": "Leeds, UK" }
  2. Optionally narrow with Lead filter (leadFilter) and Minimum priority tier (minTier) so you only pay to score/output the leads you actually want.
  3. Run it. Results are sorted highest-priority first, each with checksApplied showing which checks fed into its score.
  4. Already have a Google Maps scraper's dataset output? Skip the fetch entirely — see Advanced below.

Input

FieldTypeDescription
searchTermsarray of stringsBusiness types to search for, one per line (e.g. ["dentist"])
locationstringOne city/area per run (e.g. "Austin, Texas")
maxPlacesPerSearchintegerDefault 100 — max places fetched per search term. Charged to your own Apify account by Google Maps Scraper, ~$4/1,000 places on the free plan
languagestringLanguage for the Google Maps results — en (default), ja, de, fr, es, pt-BR, it, nl
leadFilterstringall (default), noWebsiteOrUnclaimed, noWebsiteAndUnclaimed, noWebsite, unclaimed — only matching places are scored/output
minTierstringHot, Warm, or Cold (default) — the minimum tier to include in the output
checkOpeningHoursbooleanDefault false — also fetch each place's opening hours (+$0.002/place on the free plan)
places (advanced)arraySkip the built-in fetch and score a Google Maps scraper's dataset output you paste in directly — see Advanced
slackWebhookUrlstring (optional)Slack Incoming Webhook URL — posts a summary after each run
discordWebhookUrlstring (optional)Discord Channel Webhook URL — posts a summary after each run
webhookUrlstring (optional)Any URL — receives a structured JSON summary (e.g. for n8n/Make)
notifyOnlyNewOrUpdatedbooleanDefault true — only include NEW/UPDATED leads in notifications

leadFilter values:

ValueKeeps a place when
allalways
noWebsiteOrUnclaimedno website OR unclaimed profile
noWebsiteAndUnclaimedno website AND unclaimed profile
noWebsiteno website
unclaimedunclaimed profile

Filtered-out places are never scored or pushed, so they are never charged for.

Output

{
"title": "Lemari Coffee",
"placeId": "ChIJv79rmEfzGGARhXlSEd8ceiQ",
"priorityScore": 60,
"tier": "Warm",
"changeStatus": "NEW",
"reasons": [
"No independent website (social-media link or none at all)",
"No business description"
],
"hasRealWebsite": false,
"isUnclaimed": false,
"completenessScore": 70,
"reviewPercentileInGroup": 25.0,
"checksApplied": ["has_website", "is_unclaimed", "completeness", "review_percentile"]
}

checksApplied is included when this Actor did the fetch itself (i.e. you gave searchTerms/location); it lists which checks fed into that item's score. It is omitted when you paste in places directly.

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

Scoring breakdown

SignalMax points
No independent website (a bare social-media link doesn't count)35
Unclaimed Google Business Profile25
Other missing profile fields (phone, description, hours, photos, categories)25
Review count below the median for similar nearby businesses15

Tiers: Hot ≥ 70, Warm 40–69, Cold < 40.

Data table

FieldTypeDescription
titlestringBusiness name
placeIdstringGoogle Maps place ID
priorityScorenumber0-100 combined lead-priority score
tierstringHot, Warm, or Cold
changeStatusstringNEW, UPDATED, or UNCHANGED vs. the previous run on this Actor
reasonsarrayPlain-English reasons contributing to the score
hasRealWebsitebooleanFalse if no site, or only a social-media link
isUnclaimedbooleanTrue if the Google Business Profile is unclaimed
completenessScorenumber0-100 GBP profile completeness
reviewPercentileInGroupnumberReview-count percentile vs. same city+category peers
checksAppliedarrayWhich checks fed this item's score (fetch mode only)

Pricing / cost estimation

This Actor runs the Google Maps fetch as compass/crawler-google-places on your own Apify account — that fetch is billed to you directly by Google Maps Scraper (about $4 per 1,000 places on the free plan, less on paid tiers). On top of that, this Actor charges its own pay-per-event fee: $0.005 when a run starts (only charged once at least 1 place has been fetched) plus $0.0015 per scored lead actually returned. Filtered-out places (via leadFilter/minTier) are never returned or charged for.

Worked example — 1 search term, maxPlacesPerSearch 1000, free-plan buyer:

ScenarioCompass fetch (buyer's account)This Actor's feeTotal
leadFilter: all (1,000 leads scored)$4.00$1.51≈ $5.51
leadFilter narrowed to the observed ~12% match rate (≈120 leads scored)$4.00$0.19≈ $4.19

Paid Apify plans (Bronze/Silver/Gold) get cheaper compass fetch pricing, so the total drops accordingly — this Actor's own fee stays the same either way.

Advanced: score your own scraper output

Already ran a Google Maps scraper and have its dataset? Skip the built-in fetch by pasting that array of place objects into the Google Maps places (places) field instead of setting searchTerms/location (or chain the two Actors together with an Apify integration). No upstream call is made, so you're only charged this Actor's own fees ($0.005 per run + $0.0015 per scored lead) and no upstream fetch cost. In this mode, output items omit checksApplied.

Tips

  • Score places from a single city/category batch at a time — the review-percentile signal compares each business against others in the same city and category, so mixing very different markets in one run dilutes that signal.
  • Set minTier: Hot and/or a narrow leadFilter if you only want to pay to fetch and score the highest-value leads.
  • Set slackWebhookUrl / discordWebhookUrl / webhookUrl to get notified automatically — by default only new/updated leads are included, so re-running the same area on a schedule only pings you about what actually changed.
  • Prefer Telegram, WhatsApp, or an app connector like Notion? This Actor's built-in webhooks cover Slack/Discord/generic; for anything else, use this Actor's Integrations tab in Apify Console, which works the same way for every Actor on the platform.

FAQ, disclaimers and support

  • The built-in fetch calls Google Maps Scraper on your own Apify account; when you paste places directly instead, this Actor never fetches any website or calls Google itself, and accuracy depends entirely on the freshness of the place data you feed it.
  • A business with a social-media page (Instagram, Facebook, etc.) instead of its own website is treated the same as having no website, since that's the actual pitch local SEO agencies make.
  • Found an edge case or want a different scoring weight scheme? Use the Issues tab on this Actor's page.

This Actor is an independent, unofficial tool. It is not affiliated with, endorsed by, or sponsored by Google. "Google Maps" and "Google Business Profile" are trademarks of Google LLC, used here only to describe compatibility.

The presence of a phone number or address on a public Google Business Profile does not by itself constitute consent to receive marketing calls or messages. Before using this data for outreach you are responsible for complying with the laws that apply to you and your recipients — for example GDPR/UK GDPR, CAN-SPAM and TCPA in the US, and Japan's Act on Regulation of Transmission of Specified Electronic Mail and Act on Specified Commercial Transactions. This Actor does not verify consent or opt-in status.

Changelog

  • 0.2 (2026-09-15) — Added a built-in Google Maps fetch: give searchTerms + location and this Actor calls Google Maps Scraper for you instead of requiring a pasted dataset. Added leadFilter (folds in the former nosite-unclaimed filter modes) and checkOpeningHours. Pasting places directly moved to an Advanced section; still supported unchanged. The upstream fetch is capped per run at max(estimate + $0.05, $0.50) — $0.50 is the platform minimum for max_total_charge_usd.
  • 0.1.7 (2026-09-08) — Prefilled sample input so the Actor runs out of the box / passes automated QA.
  • 0.1.6 (2026-09-04) — Public release on Apify Store. Fixed partial-match false positives for social-network domains (e.g. x.com) in website detection; added Legal & responsible use section, pricing display names, and README examples.
  • 0.1.1 (2026-08-28) — Initial build.