Local Business Lead Finder avatar

Local Business Lead Finder

Pricing

from $0.50 / 1,000 results

Go to Apify Store
Local Business Lead Finder

Local Business Lead Finder

Discover, extract, and enrich local business leads from Google Maps. Find businesses by keyword and location, collect contact details, emails, and social profiles, and export clean, deduplicated data. Built for automation, CRMs, and recurring lead generation workflows.

Pricing

from $0.50 / 1,000 results

Rating

0.0

(0)

Developer

Hayder Al-Khalissi

Hayder Al-Khalissi

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

13 hours ago

Last modified

Share

Find and enrich local business leads from Google Maps. This Actor searches by keyword and location, extracts business details (name, address, phone, website), optionally visits each website to extract emails and social links, deduplicates across runs, and exports to a dataset or your webhook.

Ideal for lead generation, outreach lists, local SEO research, and CRM enrichment.

See it in action

Local Business Lead Finder
by u/Hayder_Germany in apify

What it does

  • Discovers businesses on Google Maps by search query (e.g. "dentist", "pizza") and location (city/country or lat/lng + radius).
  • Extracts from each place: name, address, phone, website, category, rating, coordinates, Google Maps URL.
  • Enriches (optional): visits business websites, follows contact/about-style pages, and extracts emails and social profiles (Facebook, Instagram, LinkedIn, Twitter/X, TikTok, YouTube).
  • Deduplicates across runs using a chosen key (place ID, website, or phone) so recurring runs only add new leads.
  • Exports to the run’s default dataset (shown in the Apify Console Output tab) and/or to a webhook URL in configurable batches with retries and idempotency.

Use cases

  • Sales & agencies — Build prospect lists of local businesses (e.g. plumbers, restaurants) with verified contact data.
  • Local SEO — Research competitors and business density in specific areas.
  • Market research — Track businesses by geography; optionally include closed businesses.
  • CRM pipelines — Feed leads into HubSpot, Salesforce, Pipedrive, or any system that accepts webhooks.
  • Scheduled lead refresh — Run on a schedule and only process new or updated businesses.

Input

Provide queries (required) and either locations (text), geo (object), or geoRaw (raw string).

ParameterTypeDefaultDescription
queriesarrayrequiredSearch terms, e.g. ["dentist", "pizza"].
locationsarrayText locations, e.g. ["Berlin, Germany"]. Use with or instead of geo / geoRaw.
geoobjectlat, lng, radiusKm. Use with or instead of locations.
geoRawstringRaw format: "lat, lng" or "lat, lng, radiusKm" (e.g. 52.52, 13.405, 5). Overrides geo if both set.
maxResultsPerQueryinteger50Max businesses per query/location combination.
languagestring"en"Language for Google Maps (e.g. en, de).
includeClosedbooleanfalseInclude permanently closed businesses.
enrichWebsitebooleantrueVisit websites to extract emails and socials.
emailScanDepthinteger2How many internal pages (e.g. /contact) to scan per site.
dedupeBystring"placeId"Deduplication key: placeId, website, or phone.
webhookUrlstringURL to POST results (batched). Stored encrypted.
batchSizeinteger50Items per webhook request.
debugbooleanfalseVerbose logging (URLs and details).

Example input

{
"queries": ["dentist", "dental clinic"],
"locations": ["Berlin, Germany"],
"maxResultsPerQuery": 25,
"enrichWebsite": true,
"dedupeBy": "placeId"
}

Or with coordinates (object or raw string):

{
"queries": ["cafe"],
"geo": { "lat": 52.52, "lng": 13.405, "radiusKm": 5 },
"maxResultsPerQuery": 50
}

Raw lat/lng format:

{
"queries": ["cafe"],
"geoRaw": "52.52, 13.405, 5",
"maxResultsPerQuery": 50
}

Output

Results are stored in the run’s default dataset and shown in the Actor run Output tab (full items and an Overview table). Each item includes:

FieldDescription
nameBusiness name.
googleUrlGoogle Maps URL.
websiteBusiness website (if found).
phonePhone number.
addressFull address.
categoryPrimary category.
lat, lngCoordinates.
placeIdStable place identifier.
emailsExtracted emails (when enrichment is on).
socialsfacebook, instagram, linkedin, twitter, youtube, tiktok, other[].
enrichmentwebsiteVisited, scannedUrl (when enrichment ran).
discoverySource"detail".
fetchedAtISO timestamp.

Example output item

{
"name": "Example Dental Studio",
"googleUrl": "https://www.google.com/maps/place/...",
"website": "https://example-dental.com",
"phone": "+49 30 12345678",
"address": "Example St 1, 10115 Berlin",
"category": "Dentist",
"emails": ["contact@example-dental.com"],
"socials": {
"facebook": "https://facebook.com/example-dental",
"instagram": "https://instagram.com/example_dental",
"other": []
},
"enrichment": { "websiteVisited": true, "scannedUrl": "https://example-dental.com" },
"discoverySource": "detail",
"fetchedAt": "2025-02-13T12:00:00.000Z"
}

Running the Actor

  • Apify Console — Open the Actor, set input, click Start. Use Schedule for recurring runs.
  • API — Call Apify API to run the Actor; the run’s output.results and output.overview URLs point to the default dataset.
  • Integrations — Use webhookUrl to push results to n8n, Make, Zapier, or your own endpoint (batched, with retries).

Notes

  • Google Maps — The Actor opens Maps in a browser; consent or layout changes can affect results in some environments. For production, running on Apify with recommended resources is advised.
  • Enrichment — Only same-domain (and subdomain) links are followed; contact-style paths (e.g. /contact, /about) are prioritized.
  • Webhook — Failed batches after retries are kept for inspection via the Actor run; you can implement manual retry if needed.
  • Compliance — Use for legitimate lead generation and research. Obtain consent or have a lawful basis before contacting businesses.