# Google Maps & Website B2B Lead Enricher (Emails & Socials) (`furkanozbek/b2b-maps-lead-enricher`) Actor

Extract Google Maps businesses and automatically enrich them with verified corporate emails, phone numbers, and LinkedIn/social profiles in one click.

- **URL**: https://apify.com/furkanozbek/b2b-maps-lead-enricher.md
- **Developed by:** [Furkan Ozbek](https://apify.com/furkanozbek) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## 🗺️ Google Maps & Website B2B Lead Enricher (LeadHunter 360)

[![Apify Actor](https://img.shields.io/badge/Apify-Actor-orange?logo=apify)](https://apify.com)
[![Pay-Per-Event](https://img.shields.io/badge/Pricing-Pay--Per--Event%20\($5%2F1k\)-brightgreen)](https://apify.com)
[![Crawlee](https://img.shields.io/badge/Built%20with-Crawlee%20%2B%20Playwright-blue)](https://crawlee.dev)
[![TypeScript](https://img.shields.io/badge/Language-TypeScript%20ESM-blue?logo=typescript)](https://www.typescriptlang.org/)
[![License: ISC](https://img.shields.io/badge/License-ISC-green.svg)](https://opensource.org/licenses/ISC)

> **The ultimate B2B lead generation engine:** Extract local businesses from Google Maps and automatically enrich them with **verified corporate emails**, **direct phone numbers**, and **LinkedIn / social media profiles** in a single run.

***

### 💡 Why This Actor Over Standard Maps Scrapers?

Most Google Maps scrapers only give you raw, superficial contact details (business name, generic phone, and address). But if you run cold email or outbound sales campaigns, **you need direct decision-maker emails, verified website contacts, and social media handles**.

| Feature | Standard Maps Scraper | Apollo.io / Hunter.io | 🚀 This Actor (LeadHunter 360) |
| :--- | :---: | :---: | :---: |
| **Business Name, Address, Category** | ✅ Yes | ✅ Yes | ✅ **Complete & Accurate** |
| **Direct Phone Number** | ✅ Yes | ⚠️ Partial | ✅ **Extracted & Formatted** |
| **Deep Website Corporate Emails** | ❌ **No** | 💰 Expensive Credits | ✅ **Included (Homepage, /contact, /about)** |
| **Filtered Clean Emails (No .png/spam traps)** | ❌ **No** | ⚠️ Partial | ✅ **Built-in Regex Noise Guard** |
| **Social Media (LinkedIn, Instagram, X, FB)** | ❌ **No** | ⚠️ Partial | ✅ **5 Platforms Extracted** |
| **Pricing Model** | Confusing Compute Units | $49 – $149/mo Subscriptions | 💎 **Pay-Per-Event: $5.00 per 1,000 Leads** |
| **Cold Outreach CSV Ready (Instantly / Lemlist)** | ❌ Manual Work | ✅ Yes | ✅ **1-Click Import Ready** |

***

### ⚡ How It Works (2-Stage Hybrid Architecture)

```
[Search Query: "Dental Clinic" + "London, UK"]
                     │
                     ▼
┌────────────────────────────────────────────────────────┐
│  STAGE 1: Google Maps Harvester (Playwright)           │
│  • Network API Interception (Intercepts internal RPC) │
│  • Collects Place ID, Business Name, Rating & Phone   │
│  • Discovers official website URL                     │
└──────────────────────────┬─────────────────────────────┘
                           │
                           ▼
┌────────────────────────────────────────────────────────┐
│  STAGE 2: Deep Website Enrichment (Cheerio HTTP)       │
│  • Ultra-fast 0.2s HTTP requests (Zero browser waste) │
│  • Crawls Homepage, /contact, /about, /team           │
│  • Regex extraction: Validated emails & Social handles │
└──────────────────────────┬─────────────────────────────┘
                           │
                           ▼
┌────────────────────────────────────────────────────────┐
│  STAGE 3: Clean Unified B2B Dataset (Export)           │
│  • Instantly / Lemlist / Apollo compatible CSV & JSON │
└────────────────────────────────────────────────────────┘
```

1. **Stage 1 (Maps Harvester):** Uses a stealth, lightweight Playwright crawler to query Google Maps. By intercepting internal Google protobuf/JSON responses directly, it achieves **4x faster scrolling** and saves 65% network bandwidth.
2. **Stage 2 (Website Enrichment):** For every business with a website, a concurrent Cheerio engine visits the domain, crawling the homepage and contact subpages to extract corporate emails and social media accounts.

***

### 📋 Input Configuration

Configure your search query in seconds using the intuitive input UI or JSON:

| Field | Type | Default | Description |
| :--- | :--- | :--- | :--- |
| `searchTerms` | `array` | `["Digital Agency"]` | List of industries or keywords to target (e.g. `Dental Clinic`, `Plumber`, `Real Estate Agency`). |
| `location` | `string` | `"London, UK"` | Target city, region, or country. |
| `maxLeads` | `integer` | `100` | Maximum number of enriched businesses to collect. |
| `enrichWebsites` | `boolean` | `true` | Visit company websites to extract emails and social media. |
| `extractSocialMedia` | `boolean` | `true` | Extract LinkedIn, Instagram, Facebook, X (Twitter), and YouTube profiles. |
| `maxCrawlDepth` | `integer` | `3` | Maximum internal subpages to scan per company website (`/contact`, `/about`, `/team`). |
| `proxyConfiguration` | `object` | `{ "useApifyProxy": true }` | Apify Proxy settings for zero IP bans and smooth pagination. |

#### Example Input JSON

```json
{
  "searchTerms": ["Software Agency", "AI Development"],
  "location": "London, UK",
  "maxLeads": 500,
  "enrichWebsites": true,
  "extractSocialMedia": true,
  "maxCrawlDepth": 3,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

***

### 📦 Sample Enriched Output

Every record in your dataset is delivered clean, formatted, and ready for outbound outreach:

```json
{
  "placeId": "0x48761bbf64b5e3c5:0xe3ecbfaa125af6d8",
  "name": "TechGropse - AI Mobile App Development Company London",
  "category": "Software company",
  "rating": 4.9,
  "reviewsCount": 112,
  "address": "123 High Holborn, London WC1V 6EA, United Kingdom",
  "phone": "+44 20 8089 9533",
  "website": "https://www.techgropse.co.uk/",
  "domain": "techgropse.co.uk",
  "isEnriched": true,
  "emails": [
    "info@techgropse.com",
    "contact@techgropse.co.uk"
  ],
  "socialMedia": {
    "linkedin": "https://www.linkedin.com/company/techgropse",
    "instagram": "https://www.instagram.com/techgropse",
    "facebook": "https://www.facebook.com/techgropse",
    "twitter": "https://x.com/techgropse",
    "youtube": "https://www.youtube.com/@techgropse"
  },
  "siteMetadata": {
    "title": "Mobile App Development Company UK | TechGropse",
    "description": "Award-winning mobile app development company in UK building custom solutions."
  },
  "googleMapsUrl": "https://www.google.com/maps/place/...",
  "scrapedAt": "2026-10-13T12:00:00.000Z"
}
```

***

### 🎯 Target Use Cases & Integrations

- **Cold Email Outreach:** Export to CSV and immediately import into **Instantly.ai**, **Smartlead**, or **Lemlist**.
- **CRM Enrichment:** Feed fresh, verified local business leads directly into **HubSpot**, **Close**, or **Pipedrive**.
- **Data-as-a-Service (DaaS) Reselling:** Sell hyper-targeted local business directories on freelance platforms (Upwork, Fiverr) or directly to local marketing agencies.
- **Competitor & Market Research:** Analyze local business saturation, ratings, and contact availability across any geographic market.

***

### 🛡️ Anti-Bot & SDET-Grade Reliability

- **Network Interception:** Bypasses fragile DOM changes on Google Maps by listening directly to backend RPC endpoints.
- **Noise & Spam-Trap Filtering:** Discards dummy addresses, analytics tags (`sentry.io`, `wixpress.com`), and file artifacts (`.png`, `.svg`, `.woff`).
- **Strict 8-Second Circuit Breaker:** Unresponsive or dead company websites never stall the crawling queue.
- **Apify Smart Proxy Support:** Rotates residential and datacenter IPs automatically for uninterrupted extraction.

***

### 💰 Transparent Pay-Per-Event (PPE) Pricing

- **Only $5.00 per 1,000 Enriched Leads.**
- No monthly recurring software fee.
- No wasted money on compute units when a site has no results.
- Negative profit protection guaranteed by the Apify platform.

***

### 🤝 Support & Custom Requests

Need a custom scraper, dedicated API endpoint, or specialized CRM integration?\
Contact the developer directly via the Apify Actor **Issues** tab or email.

# Actor input Schema

## `searchTerms` (type: `array`):

Hedef sektörler ve anahtar kelimeler (örn: 'Dentist', 'Digital Agency', 'HVAC Contractors')

## `location` (type: `string`):

Şehir, eyalet veya ülke (örn: 'London, UK', 'New York, USA', 'Berlin')

## `maxLeads` (type: `integer`):

Toplam çekilecek zenginleştirilmiş işletme sayısı

## `enrichWebsites` (type: `boolean`):

Aktif olduğunda web sitesini ziyaret edip iletişim verilerini toplar

## `extractSocialMedia` (type: `boolean`):

LinkedIn, Instagram, Twitter, Facebook, YouTube profillerini tespit eder

## `maxCrawlDepth` (type: `integer`):

Web sitesinde taranacak maksimum alt sayfa sayısı (1-5)

## `proxyConfiguration` (type: `object`):

Google Maps engellemelerini önlemek için yerleşik Apify proxy ayarları

## Actor input object example

```json
{
  "searchTerms": [
    "Digital Marketing Agency",
    "Software Company"
  ],
  "location": "London, UK",
  "maxLeads": 100,
  "enrichWebsites": true,
  "extractSocialMedia": true,
  "maxCrawlDepth": 3,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "searchTerms": [
        "Digital Marketing Agency",
        "Software Company"
    ],
    "location": "London, UK"
};

// Run the Actor and wait for it to finish
const run = await client.actor("furkanozbek/b2b-maps-lead-enricher").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "searchTerms": [
        "Digital Marketing Agency",
        "Software Company",
    ],
    "location": "London, UK",
}

# Run the Actor and wait for it to finish
run = client.actor("furkanozbek/b2b-maps-lead-enricher").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "searchTerms": [
    "Digital Marketing Agency",
    "Software Company"
  ],
  "location": "London, UK"
}' |
apify call furkanozbek/b2b-maps-lead-enricher --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,furkanozbek/b2b-maps-lead-enricher"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/t39SK2BVnWwviRDbl/builds/mmhScmxFiIPOPf0Hv/openapi.json
