# Google Maps Lead Intelligence (`unanimous_venus/google-maps-lead-intelligence`) Actor

- **URL**: https://apify.com/unanimous\_venus/google-maps-lead-intelligence.md
- **Developed by:** [John Alex](https://apify.com/unanimous_venus) (community)
- **Categories:** Lead generation, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Google Maps Lead Intelligence Engine

Go beyond basic Google Maps scraping. This Actor discovers local businesses via Google Maps, then deeply analyzes each one — extracting emails, detecting tech stack, finding social profiles, estimating business size, scoring leads 0-100, and identifying service opportunities.

**Built for agencies, SaaS sales teams, and freelancers who need qualified leads, not raw listings.**

### What makes this different?

There are 10+ Google Maps scrapers out there. They all return the same thing: name, address, phone, rating. That is NOT what sales teams need.

This Actor does what a human researcher would do — but in minutes, not hours:

| Feature | Basic Google Maps Scraper | This Actor |
|---------|--------------------------|------------|
| Business name, address, phone | ✅ | ✅ |
| Google rating & reviews | ✅ | ✅ |
| Contact email extraction | ❌ | ✅ (multi-page deep scan) |
| Tech stack detection | ❌ | ✅ (50+ technologies) |
| Social media profiles | ❌ | ✅ (8 platforms) |
| Business size estimation | ❌ | ✅ |
| Lead scoring (0-100) | ❌ | ✅ |
| Service opportunity detection | ❌ | ✅ |
| CMS/platform detection | ❌ | ✅ |
| SSL & mobile optimization check | ❌ | ✅ |

### Who is this for?

- **Digital marketing agencies** — Find businesses that need websites, SEO, or ad management
- **SaaS sales teams** — Identify businesses that could use your software
- **Freelancers** — Find clients who need web design, email marketing, or social media help
- **Local service providers** — Insurance, real estate, and financial service prospecting

### How it works

1. **Discovery** — Searches Google Maps for your keywords (e.g., "dentists in Chicago")
2. **Website Analysis** — Visits each business website to extract emails, tech stack, and social profiles
3. **Intelligence** — Scores each lead 0-100 and detects service gaps you can pitch
4. **Output** — Clean, structured data ready for your CRM or outreach tool

### Input

| Parameter | Description | Default |
|-----------|-------------|---------|
| `searchQueries` | Google Maps search queries (e.g., "restaurants in Miami FL") | Required |
| `maxResultsPerQuery` | Max businesses per search query | 20 |
| `enrichWebsite` | Visit websites for deep analysis | true |
| `minRating` | Minimum Google rating (0-5) | 0 |
| `minReviews` | Minimum review count | 5 |
| `minLeadScore` | Minimum lead score (0-100) | 0 |
| `requireEmail` | Only return leads with email | false |
| `requireWebsite` | Only return leads with website | false |
| `detectOpportunities` | Detect missing services | true |

### Output

Each lead in the dataset includes:

```json
{
    "businessName": "Blue Bottle Coffee",
    "category": "Coffee shop",
    "address": "315 Linden St, San Francisco, CA 94102",
    "city": "San Francisco",
    "state": "CA",
    "phone": "(415) 555-0123",
    "website": "https://bluebottlecoffee.com",
    "googleMapsUrl": "https://www.google.com/maps/place/...",
    "rating": 4.5,
    "reviewCount": 847,
    "email": "hello@bluebottlecoffee.com",
    "leadScore": 82,
    "businessSize": "Medium (20-50 employees)",
    "techStack": {
        "cms": ["Shopify"],
        "analytics": ["Google Analytics", "Google Tag Manager"],
        "emailMarketing": ["Klaviyo"],
        "liveChat": ["Zendesk"],
        "booking": [],
        "reviews": [],
        "payments": ["Stripe"]
    },
    "socialMedia": {
        "instagram": "https://instagram.com/bluebottlecoffee",
        "facebook": "https://facebook.com/bluebottlecoffee",
        "twitter": "https://twitter.com/bluebottlecoffee"
    },
    "opportunities": [
        {
            "type": "no_review_management",
            "service": "Review Management Platform",
            "pitch": "No review management tool — not leveraging social proof on website",
            "value": "Medium"
        }
    ],
    "opportunityScore": 12,
    "scrapedAt": "2026-03-26T10:00:00.000Z"
}
````

### Dataset Views

The output comes with pre-built views:

- **All Leads** — Complete list sorted by lead score
- **Hot Leads (Score 70+)** — Only high-quality leads ready to contact
- **Leads With Email** — All leads where we found a contact email
- **Service Opportunities** — Businesses with the most service gaps

### Lead Scoring

Every lead gets a 0-100 score based on:

| Signal | Points |
|--------|--------|
| Has website | +10 |
| Has contact email | +15 |
| Has phone number | +5 |
| Google rating 4.5+ | +15 |
| Google rating 4.0+ | +10 |
| 200+ reviews | +15 |
| 50+ reviews | +10 |
| Each social media platform | +3 |
| Each tech tool detected | +2 |
| SSL enabled | +3 |
| Mobile optimized | +5 |

### Tips for best results

1. **Be specific with queries** — "dentist in Chicago IL" works better than "dentist"
2. **Use location names** — Include city and state for US searches
3. **Start small** — Test with 10-20 results first, then scale up
4. **Use filters** — Set `minLeadScore: 50` to skip low-quality leads
5. **Use proxies** — For 100+ businesses, enable proxy configuration

### Pricing

Pay-per-result pricing. You only pay for qualified leads returned.

### Example use cases

- **Agency pitch list** — Search "restaurants in {city}" → filter for businesses without email marketing → pitch your services
- **SaaS prospecting** — Search "dentist in {city}" → filter for businesses using WordPress → pitch your booking software
- **Freelance lead gen** — Search "salon in {city}" → find businesses without social media → offer social media management

# Actor input Schema

## `searchQueries` (type: `array`):

Google Maps search queries. Examples: 'restaurants in Miami FL', 'dentist near Chicago', 'plumber London'. Each query finds businesses just like searching Google Maps.

## `maxResultsPerQuery` (type: `integer`):

Maximum businesses to find per search query. Google Maps typically returns up to 120 results per query.

## `enrichWebsite` (type: `boolean`):

Visit each business website to extract emails, tech stack, social media, and generate lead scores. Disable for fast-only Google Maps data.

## `minRating` (type: `number`):

Only return businesses with at least this rating (1.0-5.0). Set to 0 for all.

## `minReviews` (type: `integer`):

Only return businesses with at least this many reviews. Higher = more established business.

## `minLeadScore` (type: `integer`):

Only return leads scoring at or above this threshold (0-100). Recommended: 40+ for general use, 70+ for hot leads only.

## `requireEmail` (type: `boolean`):

Only return businesses where we found a contact email.

## `requireWebsite` (type: `boolean`):

Only return businesses that have a website listed on Google Maps.

## `detectOpportunities` (type: `boolean`):

Analyze what services each business is missing (no website, no SEO, no email marketing, etc). Perfect for agencies pitching services.

## `maxConcurrency` (type: `integer`):

Number of websites to analyze in parallel. Higher = faster but uses more resources.

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

Use proxies for large-scale runs to avoid blocks. Recommended for 100+ businesses.

## Actor input object example

```json
{
  "searchQueries": [
    "coffee shops in San Francisco CA"
  ],
  "maxResultsPerQuery": 20,
  "enrichWebsite": true,
  "minRating": 0,
  "minReviews": 5,
  "minLeadScore": 0,
  "requireEmail": false,
  "requireWebsite": false,
  "detectOpportunities": true,
  "maxConcurrency": 5
}
```

# Actor output Schema

## `leads` (type: `string`):

All discovered and enriched business leads with scores, contacts, tech stack, and opportunities.

## `summary` (type: `string`):

Summary statistics: total discovered, qualified count, average score, top leads, and platform breakdown.

# 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 = {
    "searchQueries": [
        "coffee shops in San Francisco CA"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("unanimous_venus/google-maps-lead-intelligence").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 = { "searchQueries": ["coffee shops in San Francisco CA"] }

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

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

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

```

## CLI example

```bash
echo '{
  "searchQueries": [
    "coffee shops in San Francisco CA"
  ]
}' |
apify call unanimous_venus/google-maps-lead-intelligence --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=unanimous_venus/google-maps-lead-intelligence",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Google Maps Lead Intelligence",
        "description": null,
        "version": "0.0",
        "x-build-id": "XrFjL7g8H6xoGV8Cd"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/unanimous_venus~google-maps-lead-intelligence/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-unanimous_venus-google-maps-lead-intelligence",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/unanimous_venus~google-maps-lead-intelligence/runs": {
            "post": {
                "operationId": "runs-sync-unanimous_venus-google-maps-lead-intelligence",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/unanimous_venus~google-maps-lead-intelligence/run-sync": {
            "post": {
                "operationId": "run-sync-unanimous_venus-google-maps-lead-intelligence",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "searchQueries"
                ],
                "properties": {
                    "searchQueries": {
                        "title": "Search Queries",
                        "type": "array",
                        "description": "Google Maps search queries. Examples: 'restaurants in Miami FL', 'dentist near Chicago', 'plumber London'. Each query finds businesses just like searching Google Maps.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxResultsPerQuery": {
                        "title": "Max Results Per Query",
                        "minimum": 1,
                        "maximum": 200,
                        "type": "integer",
                        "description": "Maximum businesses to find per search query. Google Maps typically returns up to 120 results per query.",
                        "default": 20
                    },
                    "enrichWebsite": {
                        "title": "Deep Website Analysis",
                        "type": "boolean",
                        "description": "Visit each business website to extract emails, tech stack, social media, and generate lead scores. Disable for fast-only Google Maps data.",
                        "default": true
                    },
                    "minRating": {
                        "title": "Minimum Google Rating",
                        "minimum": 0,
                        "maximum": 5,
                        "type": "number",
                        "description": "Only return businesses with at least this rating (1.0-5.0). Set to 0 for all.",
                        "default": 0
                    },
                    "minReviews": {
                        "title": "Minimum Review Count",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Only return businesses with at least this many reviews. Higher = more established business.",
                        "default": 5
                    },
                    "minLeadScore": {
                        "title": "Minimum Lead Score",
                        "minimum": 0,
                        "maximum": 100,
                        "type": "integer",
                        "description": "Only return leads scoring at or above this threshold (0-100). Recommended: 40+ for general use, 70+ for hot leads only.",
                        "default": 0
                    },
                    "requireEmail": {
                        "title": "Require Email Address",
                        "type": "boolean",
                        "description": "Only return businesses where we found a contact email.",
                        "default": false
                    },
                    "requireWebsite": {
                        "title": "Require Website",
                        "type": "boolean",
                        "description": "Only return businesses that have a website listed on Google Maps.",
                        "default": false
                    },
                    "detectOpportunities": {
                        "title": "Detect Service Opportunities",
                        "type": "boolean",
                        "description": "Analyze what services each business is missing (no website, no SEO, no email marketing, etc). Perfect for agencies pitching services.",
                        "default": true
                    },
                    "maxConcurrency": {
                        "title": "Concurrency",
                        "minimum": 1,
                        "maximum": 20,
                        "type": "integer",
                        "description": "Number of websites to analyze in parallel. Higher = faster but uses more resources.",
                        "default": 5
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Use proxies for large-scale runs to avoid blocks. Recommended for 100+ businesses."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
