# Local Lead Finder (`intelscrape/local-lead-finder`) Actor

Local Lead Finder Finds highly rated local businesses with missing or broken websites. Outperform YellowPages scrapers by using Google Maps data, complete with a 0-100 Lead Score and a custom AI outreach pitch for your agency.

- **URL**: https://apify.com/intelscrape/local-lead-finder.md
- **Developed by:** [IntelScrape](https://apify.com/intelscrape) (community)
- **Categories:** Lead generation, E-commerce, Jobs
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

## 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

## Local Lead Finder PRO — Businesses Without Websites

![Local Lead Finder PRO - Businesses Without Websites](https://api.apify.com/v2/key-value-stores/ZAgz8gDPxu0N1ULLe/records/local-lead-finder-banner.png)

Find local businesses with **missing or dead websites** directly from Google Maps. 

Unlike other scrapers that use YellowPages (which often yields outdated or thin data), this tool pulls live data straight from **Google Maps**. It then actively checks every business to verify if their website is missing, if the domain is dead/broken, or if they are just using a Facebook page.

---

### 🎯 Why This Tool Exists

Web design and SEO agencies need "on-fire" leads. The absolute best lead for a web design agency is a local business that has **hundreds of 5-star Google Reviews**, but **no website** to capture that traffic. 

This Actor automates the entire prospecting process:
1. **Scrapes Google Maps:** Pulls every business matching your query (e.g., "Plumbers in Dallas").
2. **Audits the Website:** Actively checks if the website link is missing, broken (404/DNS error), or just a generic social media page.
3. **Generates a Lead Score (0-100):** Calculates a heat score based on the number of reviews and their rating. High reviews + no website = 100 Score.
4. **Writes the Outreach Pitch:** Automatically generates a personalized AI cold email pitch you can send to the owner.

---

### 💰 How to Make Money With This

This tool is a complete **Business in a Box** for anyone selling Web Design, SEO, or Marketing services.

#### 1. Sell Web Design to "Hot" Leads
Search for `Roofers in Texas`. The bot will return only the roofers who do not have a website. You can immediately call the phone number provided and say: *"Hey, I saw you have 150 5-star reviews on Google Maps, but your website link is completely broken. You're losing dozens of jobs a week. Let me fix it."*

#### 2. The Ultimate Web Design Funnel (Enriching the Data)
Stop manually searching for leads. Use our automated 3-step funnel:
1. **Find Targets:** Run our [Google Maps Lead Generator](https://apify.com/intelscrape/google-maps-lead-generator) to export a massive CSV of thousands of businesses in any city.
2. **Filter & Audit:** Upload that exact CSV into this [**No Website Lead Finder**](https://apify.com/intelscrape/no-website-lead-finder) using the new `Bulk CSV Upload` feature. We will instantly filter out everyone who already has a website.
3. **Bypass the Gatekeeper:** Take the resulting list of "No Website" leads and upload it to our [Skip Trace PRO](https://apify.com/intelscrape/skip-trace-pro) bot. It will reverse search the business name and address to find the **owner's personal cell phone number and direct email**. 

*You now have a list of verified web design leads, complete with the founder's direct contact info. Pitch your $3,000+ custom website redesign directly to the decision maker!*

#### 3. Sell the Data
Lead generation agencies charge a premium for verified "No Website" leads. You can run this scraper for hundreds of cities and niches, compile a massive CSV of businesses without websites, and sell that list on Fiverr, Upwork, or directly to marketing agencies.

---

### 🚀 Connect Your Own AI Marketing Agent (MCP)

Did you know you can hook this bot up to your own AI (like Claude Desktop or Cursor)? 

IntelScrape provides a master **Model Context Protocol (MCP)** server that gives your AI direct control over all of our scrapers. You can literally just talk to your AI and say: *"Find me 50 plumbers in Miami without a website, and draft a cold email to each of them."*

#### ⚡ The All-In-One Setup & Agency Prompt (Copy & Paste)
Copy and paste this exact prompt into your AI (Cursor, Windsurf, or Cline) to automatically install our master MCP server:

> **"Install the `intelscrape/b2b-lead-generation-mcp` MCP server into my Claude Desktop config using Apify CLI. Ask me for my API Token to put in the env."**

**Mega-Prompt (Setup + Run as Marketing Agency):**
> **"I want you to install the Skip Trace PRO MCP Server so you can extract business data for me. First, guide me step-by-step on where to find my Apify API Token inside the Apify Console. Once I provide you with my token, automatically locate my local MCP configuration file (like `claude_desktop_config.json`) and configure the new server named `intelscrape-b2b`. The command is `npx` and the args are `[\"-y\", \"apify-cli\", \"run\", \"intelscrape/b2b-lead-generation-mcp\"]`. Inject my token into the `env` object under `APIFY_TOKEN`. Once the installation is complete and I have restarted you, you will act as my elite autonomous marketing agency. You must ask me what specific industry and city I want to target (e.g., 'Roofers in Dallas'). Once I reply, autonomously use the `run_google_maps_scraper` tool to find 10 businesses, then use the `run_contact_info_scraper` tool to extract their emails, and finally draft highly personalized cold outreach emails offering my web design services."**

---

### 🖼️ What The Data Looks Like

For every business without a website, you get a clean, sales-ready record:

- **Business Name:** "Smith Family Plumbing"
- **Phone:** (555) 123-4567
- **Website Status:** `MISSING` or `DEAD_LINK (404)` or `SOCIAL_PAGE_ONLY`
- **Lead Score:** `95` (Based on 300 reviews)
- **AI Outreach Pitch:** *"Hi there, I saw you have 300 reviews and a solid 4.8 star rating on Google Maps, which is great! However, I noticed you don't have a website listed..."*
- **Address, City, State, ZIP**
- **Google Maps URL**

---

### ⚡ Better Than the Competition
You may have seen other "Local Lead Finder" bots that scrape YellowPages. **Google Maps is infinitely better.** YellowPages is outdated and lacks the massive volume of new businesses found on Google Maps. We guarantee you will find more leads, better leads, and higher intent businesses by using this Google Maps-powered engine.

---

### 🌟 Featured IntelScrape Bots

Looking for other ways to generate leads? Check out our top-performing scrapers on the Apify Store:

- 🤖 **[Skip Trace PRO MCP Server](https://apify.com/intelscrape/b2b-lead-generation-mcp)**: Connect your AI directly to our scrapers to build an autonomous agency.
- 🕵️ **[Skip Trace PRO](https://apify.com/intelscrape/skip-trace-pro)**: The ultimate people search, email discovery, and reverse phone lookup tool.
- 🗺️ **[Google Maps Lead Generator](https://apify.com/intelscrape/google-maps-lead-generator)**: Extract local business leads, websites, and phone numbers directly from Google Maps.
- 🏦 **[UCC Financing Scraper](https://apify.com/intelscrape/ucc-financing-scraper)**: Pull commercial real estate, MCA, and equipment finance leads directly from state registries.
- 🏗️ **[Building Permit Scraper](https://apify.com/intelscrape/building-permit-scraper)**: Extract newly issued construction permits for high-intent contractor leads.
- 📧 **[Contact Info Scraper](https://apify.com/intelscrape/contact-info-scraper)**: Deep-scan company websites to extract employee emails and phone numbers.
- 🏢 **[Business License Scraper](https://apify.com/intelscrape/business-license-scraper)**: Pull newly registered business licenses for fresh B2B outreach.

---

### 🔒 Security & Pricing

- **Pay Per Result:** You are ONLY charged for successful leads (businesses found that actually DO NOT have a website). If a business has a good website, we throw it out and you are not charged.
- **Premium Data Rate:** $5.00 per 1,000 verified "No Website" leads. (A single web design client is worth $3k+. These leads are gold).

Built for performance by **IntelScrape**.

# Actor input Schema

## `csvUrl` (type: `string`):

Already have a list of businesses (e.g. from the Google Maps Extractor)? Paste a link to a Google Sheet or CSV here to instantly audit all of them for missing websites. Make sure there is a column for Website or URL.
## `csvFile` (type: `string`):

Upload a .CSV file directly from your computer.
## `searchQueries` (type: `array`):

What businesses are you looking for? Examples: 'dentists in Miami', 'restaurants Brooklyn NY', 'plumbers Dallas TX'
## `maxResults` (type: `integer`):

How many Google Maps listings to scan. NOTE: We aggressively filter out businesses with good websites. Scanning 100 listings usually produces 20-30 premium leads. To scan EVERY business in a city, set this closer to 5000. (If you upload a CSV, we will scan the ENTIRE file and ignore this limit).
## `generatePitches` (type: `boolean`):

Automatically draft a custom cold outreach pitch for each lead based on their business name and reviews.
## `language` (type: `string`):

Google Maps language for results.
## `countryCode` (type: `string`):

Limit results to a specific country.

## Actor input object example

```json
{
  "searchQueries": [
    "plumbers in Miami FL"
  ],
  "maxResults": 10,
  "generatePitches": true,
  "language": "en",
  "countryCode": "us"
}
````

# Actor output Schema

## `businessName` (type: `string`):

Name

## `leadScore` (type: `string`):

Lead Score

## `outreachPitch` (type: `string`):

Custom Pitch

## `websiteStatus` (type: `string`):

Status of Website

## `phone` (type: `string`):

Phone

## `category` (type: `string`):

Category

## `rating` (type: `string`):

Rating

## `reviewsCount` (type: `string`):

Reviews

## `address` (type: `string`):

Address

## `city` (type: `string`):

City

## `state` (type: `string`):

State

## `zipCode` (type: `string`):

ZIP

## `googleMapsUrl` (type: `string`):

Maps URL

## `scrapedAt` (type: `string`):

Scraped At

# 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": [
        "plumbers in Miami FL"
    ],
    "maxResults": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("intelscrape/local-lead-finder").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": ["plumbers in Miami FL"],
    "maxResults": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("intelscrape/local-lead-finder").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": [
    "plumbers in Miami FL"
  ],
  "maxResults": 10
}' |
apify call intelscrape/local-lead-finder --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Local Lead Finder",
        "description": "Local Lead Finder Finds highly rated local businesses with missing or broken websites. Outperform YellowPages scrapers by using Google Maps data, complete with a 0-100 Lead Score and a custom AI outreach pitch for your agency.",
        "version": "1.0",
        "x-build-id": "1gQKPa5ZXGDQxzxU4"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/intelscrape~local-lead-finder/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-intelscrape-local-lead-finder",
                "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/intelscrape~local-lead-finder/runs": {
            "post": {
                "operationId": "runs-sync-intelscrape-local-lead-finder",
                "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/intelscrape~local-lead-finder/run-sync": {
            "post": {
                "operationId": "run-sync-intelscrape-local-lead-finder",
                "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",
                "properties": {
                    "csvUrl": {
                        "title": "🚀 Bulk CSV (Paste Google Sheets URL or Hosted CSV)",
                        "type": "string",
                        "description": "Already have a list of businesses (e.g. from the Google Maps Extractor)? Paste a link to a Google Sheet or CSV here to instantly audit all of them for missing websites. Make sure there is a column for Website or URL."
                    },
                    "csvFile": {
                        "title": "📁 Bulk CSV (Upload File directly)",
                        "type": "string",
                        "description": "Upload a .CSV file directly from your computer."
                    },
                    "searchQueries": {
                        "title": "🔍 Search Queries (If NOT uploading a CSV)",
                        "type": "array",
                        "description": "What businesses are you looking for? Examples: 'dentists in Miami', 'restaurants Brooklyn NY', 'plumbers Dallas TX'",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxResults": {
                        "title": "Max Google Maps Listings to Scan (Ignored for CSV Uploads)",
                        "minimum": 1,
                        "maximum": 5000,
                        "type": "integer",
                        "description": "How many Google Maps listings to scan. NOTE: We aggressively filter out businesses with good websites. Scanning 100 listings usually produces 20-30 premium leads. To scan EVERY business in a city, set this closer to 5000. (If you upload a CSV, we will scan the ENTIRE file and ignore this limit).",
                        "default": 500
                    },
                    "generatePitches": {
                        "title": "🤖 Generate AI Outreach Pitches",
                        "type": "boolean",
                        "description": "Automatically draft a custom cold outreach pitch for each lead based on their business name and reviews.",
                        "default": true
                    },
                    "language": {
                        "title": "Language",
                        "enum": [
                            "en",
                            "es",
                            "fr",
                            "de",
                            "pt",
                            "it",
                            "ja",
                            "ko",
                            "zh",
                            "ar",
                            "hi",
                            "ru"
                        ],
                        "type": "string",
                        "description": "Google Maps language for results.",
                        "default": "en"
                    },
                    "countryCode": {
                        "title": "Country",
                        "enum": [
                            "",
                            "us",
                            "uk",
                            "ca",
                            "au",
                            "de",
                            "fr",
                            "es",
                            "it",
                            "br",
                            "mx",
                            "in",
                            "jp"
                        ],
                        "type": "string",
                        "description": "Limit results to a specific country.",
                        "default": "us"
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
