Google Maps Website Leads - Find & Rank Sales Opportunities
Pricing
from $2.00 / 1,000 qualified website-gap leads
Google Maps Website Leads - Find & Rank Sales Opportunities
Find and qualify Google Maps sales leads across multiple cities and business categories. Detect missing or weak websites, remove duplicate prospects, rank opportunities, and get tailored service offers, sales angles, and personalized outreach recommendations. No dataset required.
Pricing
from $2.00 / 1,000 qualified website-gap leads
Rating
0.0
(0)
Developer
Northpeak Data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Security
Limited permissionsShare
Google Maps Website Leads - Evidence-screened sales opportunities
Find local businesses, audit website gaps and keep only material opportunities that match your service and have a usable direct contact channel. A missing meta description is an audit finding, not enough evidence to sell a redesign. A healthy or inconclusive website is never a qualified opportunity.
Two outputs with different purposes
| Output | Contents | Qualified-lead event |
|---|---|---|
| Qualified real opportunities (default dataset) | Real records passing every qualification gate | Charged per returned qualified row |
All audited businesses (audits dataset) | Every reviewed business, including rejected and fictional preview rows, with reasons | No qualified-lead charge for audit-only rows |
| SAMPLE_RESULTS | Fictional preview only | No qualified-lead charge |
The datasets are physically separate. Setting the legacy onlyOpportunities: false no longer mixes healthy/weak rows into the default dataset. The synchronous dataset API and run Export button return qualified rows only. Use the auditedBusinesses output URL, or the run's Storage dataset dropdown, to retrieve all audits. SUMMARY includes the audit dataset ID, counts and rejection reasons. Each dataset follows the run's retention policy.
Compatibility change: qualification version 2.0 can legitimately return an empty default dataset even when many businesses were reviewed. Healthy businesses, metadata-only findings, records without a usable phone/email and service mismatches remain available in audits. Fictional preview rows are also kept out of the qualified default dataset.
Your first result
- Preview with
{"runSample":true}. Inspect Fictional preview only or All audited businesses. Rows havesampleMode:true,qualificationStatus:SAMPLE_PREVIEWandisQualifiedLead:false. The default dataset stays empty. No websites or upstream Actors are called; platform/Actor-start charges may apply. - Provide existing business JSON or an Apify
datasetId. Common Google Maps fields such astitle,categoryName,city,phone,website,placeIdandurlare mapped automatically. Explicitbusinesses: []produces no demo substitution. A run with limited permissions may not be allowed to read a dataset from another run, even in the same account. In that case, export that source as JSON, paste the array intobusinessesand removedatasetId. The Actor never expands account permissions or silently starts paid discovery. A denied source producesINPUT_ERRORwith codeSOURCE_DATASET_ACCESS_DENIED; an unavailable/not-found source producesSOURCE_DATASET_UNAVAILABLE. Neither produces lead output or fallback discovery. - Choose the service you actually sell and review the qualified output plus reasons. The tool never verifies purchase intent, sales readiness or willingness to buy.
Copyable fictional customer-data example (normal mode, may incur qualified-lead charges):
{"businesses": [{"name":"FICTIONAL Plumbing Example","category":"Plumber","city":"Austin","phone":"+1 512 555 0199","website":""}],"serviceType":"website_build","minOpportunityStrength":"strong","minOpportunityScore":65,"requiredContactChannel":"phone"}
Qualification is a set of gates, not just a score
All gates must pass: a material observed gap, sufficient strength, selected-service match, syntactically usable required phone/email, score floor and any selected category/location targeting. Reputation and contact data affect ranking but cannot make a healthy or metadata-only website qualify.
serviceType | Relevant evidence |
|---|---|
website_build | Parked domain or observed website error |
website_repair | Parked/error website, HTTPS or viewport problems; strength rules still apply |
conversion_optimization | Missing CTA/contact path or viewport issues; strength rules still apply |
seo | Combined HTTPS and viewport issues; metadata/copyright alone never qualifies. Search rankings are not audited. |
strong (default) requires a parked/error website or at least two material technical/conversion signals. A single material signal is moderate and requires explicit opt-in. Metadata and copyright alone remain weak and are always excluded. The score floor defaults to 65, after the hard gates. Lowering it never overrides those gates.
requiredContactChannel accepts any (phone or email), phone or email. A website URL or Google Maps link alone is insufficient. Contact checks assess format, not ownership, working numbers, consent or email deliverability. Select serviceType explicitly to control eligibility. Recommendations use the observed evidence and the selected service. The legacy serviceOffer field is accepted for input compatibility.
These are conservative, provisional screening rules, not thresholds calibrated against closed sales. See validation/QUALIFICATION_REVIEW.md for the test design, public sample, limitations and results. Do not interpret an opportunity score as a probability of purchase.
What every audit explains
isQualifiedLead,qualificationStatusandqualificationVersionopportunityStrength,serviceMatchesandselectedServicequalificationReasonsorrejectionReasons, plus effective thresholdsavailableContactChannelsandcontactVerificationwebsiteStatus,auditSignals,auditConfidenceand evidence reasons- Separate gap, fit, contact and overall scores
purchaseIntentVerified:falseon every row
Audit-only rows have outreachPlaybook.nextStep:DO_NOT_CONTACT and no fabricated personalized pitch. Qualified opportunities still require human verification before outreach. Missing website fields and social-only listing URLs remain audit-only with WEBSITE_ABSENCE_UNVERIFIED. Only an HTTP 404/410 at the listed URL is classified as an observed missing page; verify the current homepage before proposing repair. Other HTTP errors, empty responses, non-HTML responses and request failures are inconclusive, never proven broken websites. auditEvidence records the requested/final URL, response status, content type and HTTP-audit scope when a response was received. JavaScript-rendered content can be missed by an HTTP audit.
Direct search and pricing
{"searchCategory":"plumbers","searchCity":"Austin, Texas, USA","maxBusinesses":5,"maxSearchCombinations":1,"serviceType":"website_build"}
Direct search calls compass/crawler-google-places using your account. The upstream provider bills separately, in addition to this Actor's qualified-lead event charges and any platform/start charges. Review the source pricing. No fixed combined total is promised. The parent's run cost limit does not cap separately billed upstream runs. maxUpstreamCostUsd forwards a separate limit to each pay-per-event upstream run (default $1 per search combination). Set it explicitly and check the provider minimum. In the verified 2026-11-04 acceptance attempt, Compass required a cap of at least $0.50 and rejected $0.15 before starting a child run. The Actor checks active provider metadata first and returns INPUT_ERROR code UPSTREAM_BUDGET_BELOW_MINIMUM when its minimum exceeds your cap. It never raises the limit or retries without your changed input. A cap is potential spending authority, not the expected bill. This is per search, not an aggregate across combinations; other pricing models may not enforce it. UPSTREAM_RUNS and SUMMARY.upstreamRuns record returned child run IDs and account-reported usage/event counts without estimating missing values.
Multi-city/category search supports searchCategories, searchQueries and searchCities. Each combination starts an upstream search; maxSearchCombinations caps combinations (default 12, maximum 25). Duplicates are removed by Place ID, with conservative name-and-address/phone fallback, before audit. Different branches remain separate. Duplicate tracking does not persist across runs.
The current qualified-lead event price is $2 per 1,000 events ($0.002 each). The account API also exposes a default-dataset item event of $0.00001 per returned row, making the two per-row events $2.01 per 1,000 qualified rows before Actor Start ($0.00005 per GB, minimum one event), platform/timed storage and separate upstream charges. Check the Store Pricing tab and run API for current pricing. Owner runs may have different accounted charges; do not interpret QA event counts as customer revenue. Exactly the same isQualifiedLead decision controls default output and the qualified-lead event. No event is charged for healthy, inconclusive, weak, rejected, or fictional rows. Upstream collection can still cost money even when zero leads qualify.
API and automation
curl -X POST 'https://api.apify.com/v2/acts/northpeak_data~google-maps-website-gap-leads/run-sync-get-dataset-items' \-H "Authorization: Bearer $APIFY_TOKEN" \-H 'Content-Type: application/json' \--data-binary @input.json
This synchronous endpoint returns qualified rows only. For all audits, start an asynchronous /runs request, wait for completion and read the run's output.auditedBusinesses link. Store tokens as secrets. Use API/Schedules/Webhooks/Make/n8n/CRM integrations on qualified output; use placeId and your own state to avoid repeated outreach. No contacts are sent messages by this Actor.
Example files in examples/ are fictional. The automated tests assert separate dataset routing and matching billing, including the observed AAA AUGER metadata-only and Radiant healthy regression cases. A successful test is not evidence of a paying customer or improved sales conversion.