AS
Apify Store
/am_production/google-maps-lead-finder
Google Maps Lead Finder (Filters & Executive Emails)
Scrape Google Maps by location + keyword, filter with static rules (rating, reviews, category, contact requirements), then enrich with business emails and decision-maker contacts (name, title, MX-validated email, LinkedIn).
liveasyncunknown~30s typical
LEAD_GENERATIONAUTOMATIONSOCIAL_MEDIA
$0.0020
per result + $0.01 call
plus $0.001 platform fee per run
Usage-based actor: event charges passed through at cost plus 25%
Bring your own Apify Store key: provider portion drops to $0.
$Set up https://cracked-ai-pearl.vercel.app/SKILL.md, then use Cracked to run apify /am_production/google-maps-lead-finder for me.
Input
| Field | Type | Description |
|---|---|---|
| location* | string | Free-text place to search inside. The scraper geocodes this via OpenStreetMap and walks every cell of the resulting polygon. |
| query* | string | What kind of business to look for (the same string you'd type into Google Maps). |
| max_results | integer | Stop after this many results pass the pre-filter. Leave empty for unlimited. default 10 |
| min_rating | integer | Drop places below this star rating (1-5). 0 = no filter. default 0 |
| min_reviews | integer | Drop places with fewer reviews than this. default 0 |
| max_reviews | integer | Drop places with more reviews than this. Useful for excluding national chains and filtering for small/medium businesses. |
| website_filter | string (any | with | without) | any: keep all. with: only places that have a website. without: only places that don't (good for cold-call lists). default "any" |
| require_phone | boolean | Drop places that have no phone number. default false |
| require_email | boolean | Drop places where enrichment found no email. Only meaningful when `enrich_emails` or `enrich_executives` is on. default false |
| include_categories | array | Keep only places whose category contains one of these strings. Case-insensitive substring match. default [] |
| reject_categories | array | Drop places whose category exactly matches one of these (case-insensitive). default [] |
| reject_keywords | array | Drop places whose name or category contains any of these strings (case-insensitive). E.g. 'franchise', 'corporate'. default [] |
| country_code | string | Drop places whose address doesn't contain this country/state token. Naive substring check (e.g. 'TX', 'CA', 'UK'). |
| enrich_emails | boolean | Visit each result's website and extract contact emails (homepage, /contact, /about). Charged per successful enrichment (place with ≥1 email found). default false |
| enrich_executives | boolean | Find decision-makers (CEO, Founder, Partner, Director, etc.) on team/about pages. Returns name, title, MX-validated email, LinkedIn, and direct phone. Charged per executive found and per MX-valid email. default false |
| proxy_configuration | object | Use Apify Proxy. Recommended — Google Maps will captcha a single IP under sustained load. default {"useApifyProxy":true} |
| proxy_url | string | Override with your own HTTP(S) proxy URL. Ignored when Apify Proxy is set above. |
| cell_km | integer | Advanced. Side length of the search grid in km. Smaller = more thorough in dense urban areas but more API calls. 5 km is fine for almost all uses. default 5 |
| workers | integer | Advanced. Cells fetched in parallel. Default 5 is fine with the Apify Proxy enabled (recommended). Auto-clamps to 3 if you turn the proxy off, to avoid hitting Google's per-IP rate limit. Raise to 10 for very dense urban areas. default 5 |
Call it
curl
curl https://cracked-ai-pearl.vercel.app/v1/run \
-H "Authorization: Bearer ck_live_..." -H "content-type: application/json" \
-d '{"provider":"apify","endpoint":"/am_production/google-maps-lead-finder","input":{"location":"...","query":"...","max_results":10,"min_rating":0,"min_reviews":0,"website_filter":"any","require_phone":false,"require_email":false,"include_categories":[],"reject_categories":[],"reject_keywords":[],"enrich_emails":false,"enrich_executives":false,"proxy_configuration":{"useApifyProxy":true},"cell_km":5,"workers":5},"wait":false}'poll
curl "https://cracked-ai-pearl.vercel.app/v1/runs/<runId>?wait=30" -H "Authorization: Bearer ck_live_..."cli
npx cracked-ai run -p apify -e /am_production/google-maps-lead-finder -i '{"location":"...","query":"...","max_results":10,"min_rating":0,"min_reviews":0,"website_filter":"any","require_phone":false,"require_email":false,"include_categories":[],"reject_categories":[],"reject_keywords":[],"enrich_emails":false,"enrich_executives":false,"proxy_configuration":{"useApifyProxy":true},"cell_km":5,"workers":5}' -w 120mcp
run_tool({ provider: "apify", endpoint: "/am_production/google-maps-lead-finder", input: {"location":"...","query":"...","max_results":10,"min_rating":0,"min_reviews":0,"website_filter":"any","require_phone":false,"require_email":false,"include_categories":[],"reject_categories":[],"reject_keywords":[],"enrich_emails":false,"enrich_executives":false,"proxy_configuration":{"useApifyProxy":true},"cell_km":5,"workers":5}, wait: false })Try it
Runs against your signed-in workspace balance. Sign in if you have not.