# Local Business Lead Auditor (`meilimiao/local-business-lead-auditor`) Actor

Find Google Maps local businesses, enrich contact and website data, audit SEO issues, and score high-intent sales leads for agencies and outbound teams.

- **URL**: https://apify.com/meilimiao/local-business-lead-auditor.md
- **Developed by:** [Glamour Meow](https://apify.com/meilimiao) (community)
- **Categories:** Lead generation, SEO tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $50.00 / 1,000 enriched business leads

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 web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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 Business Lead Auditor

Apify Actor for turning local business searches into sales-ready agency leads.

It can use Google Maps data via the Apify Google Maps Scraper Actor, OpenStreetMap as a free fallback, or manually supplied leads. Each business is enriched with website/contact/SEO checks, Google rating/review signals, an opportunity score, a recommended offer, and a short cold email opener.

### Best use case

Marketing agencies, SEO consultants, web design agencies, reputation management teams, and outbound sales teams that need prioritized local prospects such as:

- dentists with weak websites or low review counts
- lawyers with poor local SEO signals
- plumbers/roofers missing public contact information
- salons/spas with unclaimed or under-optimized Google Business Profiles

### Input

```json
{
  "queries": [
    { "businessType": "dentist", "location": "Austin, Texas" }
  ],
  "dataSource": "googleMaps",
  "googleMapsActorId": "compass/crawler-google-places",
  "googleMapsLanguage": "en",
  "googleMapsCountryCode": "us",
  "skipClosedPlaces": true,
  "maxBusinessesPerQuery": 50,
  "auditWebsites": true,
  "minLeadScore": 0,
  "includeColdEmailOpening": true
}
```

Supported `dataSource` values:

- `googleMaps` - use the upstream Google Maps Actor only
- `googleMapsThenOsm` - use Google Maps, then fill missing capacity with OpenStreetMap results
- `openStreetMap` - use only free public OpenStreetMap data
- `manualOnly` - skip search and only audit/scoring supplied businesses

You can also pass `manualBusinesses` if you already have Google Maps/CSV leads:

```json
{
  "dataSource": "manualOnly",
  "manualBusinesses": [
    {
      "businessName": "Example Dental Clinic",
      "websiteUrl": "https://example.com",
      "phone": "+1 555 0100",
      "address": "Austin, Texas",
      "category": "dentist",
      "googleRating": 4.1,
      "reviewCount": 12
    }
  ],
  "auditWebsites": true
}
```

### Output fields

Each dataset item includes:

- `businessName`, `category`, `phone`, `email`, `websiteUrl`, `address`
- `googleRating`, `reviewCount`, `googlePlaceId`, `googleMapsUrl`
- `leadScore` from 0 to 100, where higher means a stronger sales opportunity
- `leadPriority`: `high`, `medium`, or `low`
- `opportunitySignals`
- `recommendedOffer`
- `salesAngle`
- `coldEmailOpening`
- `websiteAudit`: reachable status, load time, title/meta/H1 checks, emails, social profiles, detected technologies, and issues
- `source` and `sourceUrl`

A `SUMMARY` object is saved in the default key-value store with total leads, source counts, priority distribution, average score, and top opportunities.

### Local development

```bash
npm install
npm run test:sample
```

The sample uses `openStreetMap` so it can run locally without calling the paid upstream Google Maps Actor.

To test Google Maps locally, set `APIFY_TOKEN` and use an input with `dataSource: "googleMaps"`:

```bash
npx apify-cli run --input-file input.google-maps-test.json
```

### Apify deployment

```bash
npm install -g apify-cli
apify login
apify push
```

For automated deployment, set `APIFY_TOKEN` and run:

```bash
npx apify-cli push --token "$APIFY_TOKEN"
```

### Suggested monetization

Use Pay Per Event pricing:

- Event name: `enriched-business-lead`
- Starting price: `$0.05` per enriched lead
- Later test: `$0.10` per lead for higher-value niches such as dentist, lawyer, roofer, HVAC, med spa
- Minimum run: `$1` to `$3`

Positioning: do not sell it as a generic scraper. Sell it as a local sales opportunity finder that converts Google Maps or business lists into prioritized outreach targets.

# Actor input Schema

## `queries` (type: `array`):

Business categories and locations to search. Example: dentists in Austin.

## `dataSource` (type: `string`):

Choose where business listings come from. Google Maps uses the Apify Google Maps Scraper Actor, then this Actor enriches and scores the leads.

## `googleMapsActorId` (type: `string`):

Apify Actor ID used as the upstream Google Maps source. Default is compass/crawler-google-places.

## `googleMapsLanguage` (type: `string`):

Language code used by the upstream Google Maps Actor.

## `googleMapsCountryCode` (type: `string`):

Optional country code for Google Maps results, such as us, gb, ca, au.

## `skipClosedPlaces` (type: `boolean`):

Exclude permanently or temporarily closed Google Maps places when supported by the upstream Actor.

## `manualBusinesses` (type: `array`):

Optional list of businesses to audit directly, useful if you already have Google Maps/CSV leads.

## `maxBusinessesPerQuery` (type: `integer`):

Maximum businesses to return per query.

## `auditWebsites` (type: `boolean`):

Fetch each business website and extract SEO/contact/sales signals.

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

Only output leads with this score or higher. Higher score means stronger sales opportunity.

## `includeColdEmailOpening` (type: `boolean`):

Generate a short personalized outreach opener for each lead.

## Actor input object example

```json
{
  "queries": [
    {
      "businessType": "dentist",
      "location": "Austin, Texas"
    }
  ],
  "dataSource": "googleMaps",
  "googleMapsActorId": "compass/crawler-google-places",
  "googleMapsLanguage": "en",
  "googleMapsCountryCode": "us",
  "skipClosedPlaces": true,
  "maxBusinessesPerQuery": 50,
  "auditWebsites": true,
  "minLeadScore": 0,
  "includeColdEmailOpening": true
}
```

# Actor output Schema

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

Dataset items containing enriched local business leads, website audits, lead scores, and sales recommendations.

# 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 = {
    "queries": [
        {
            "businessType": "dentist",
            "location": "Austin, Texas"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("meilimiao/local-business-lead-auditor").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 = { "queries": [{
            "businessType": "dentist",
            "location": "Austin, Texas",
        }] }

# Run the Actor and wait for it to finish
run = client.actor("meilimiao/local-business-lead-auditor").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 '{
  "queries": [
    {
      "businessType": "dentist",
      "location": "Austin, Texas"
    }
  ]
}' |
apify call meilimiao/local-business-lead-auditor --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

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