# Google Maps Business Lead Scraper (`cancap/geo-targeted-smb-intelligence`) Actor

Extract local business leads from Google Maps — name, address, phone, website, and email in one run. Search any business type in any city. Perfect for lead generation, sales outreach, and market research.

- **URL**: https://apify.com/cancap/geo-targeted-smb-intelligence.md
- **Developed by:** [CANCAP](https://apify.com/cancap) (community)
- **Categories:** Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $10.00 / 1,000 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

## 🗺️ Google Maps Local Business Intelligence Scraper

**Zero-cost, high-revenue Apify actor** - Extract business data from Google Maps with no third-party API costs.

### 📊 What This Does

Scrapes local businesses from Google Maps search results:

- **Business name** + Google Maps URL
- **Rating** (stars)
- **Review count**
- **Address**
- **Phone number**
- **Website**
- **Hours of operation**
- **Sample reviews** (optional)

### 🎯 Target Customers (Immediate Revenue)

1. **Real estate agents** ($200-500/mo) - Find competitor listings by neighborhood
2. **Franchise networks** ($500-1,500/mo) - Market saturation analysis before expansion
3. **Local service providers** ($150-300/mo) - Monitor local competition
4. **Investors/PE firms** ($1,000-3,000/mo) - Site selection, market analysis
5. **Marketing agencies** ($300-800/mo) - Competitive intelligence for clients
6. **SMBs** ($50-150/mo) - Free tier, upgrade to Pro

### 🚀 Quick Start

#### 1. **Create GitHub Repo**

```bash
git init
git add .
git commit -m "Initial Google Maps scraper actor"
git remote add origin https://github.com/YOUR_USERNAME/google-maps-scraper.git
git push -u origin main
```

#### 2. **Deploy to Apify**

Option A: **Via Apify Console (Easiest)**

- Log in to https://console.apify.com
- Click "Create Actor"
- Name: `google-maps-local-business-scraper`
- Choose "Drag & drop or paste source code"
- Copy `actor.js` into editor
- Paste `INPUT_SCHEMA.json` into Input schema section
- Click "Save & Build"

Option B: **Via Apify CLI**

```bash
npm install -g apify-cli
apify login
apify create google-maps-local-business-scraper
## Paste files into src/main.js
apify push
```

#### 3. **Test It**

In Apify console, use these test inputs:

**Test 1: Basic Search**

```json
{
  "searchQuery": "coffee shop",
  "location": "Austin, TX",
  "maxResults": 15
}
```

**Test 2: B2B Vertical**

```json
{
  "searchQuery": "dental office",
  "location": "Los Angeles, California",
  "maxResults": 30
}
```

**Test 3: With Reviews**

```json
{
  "searchQuery": "gym",
  "location": "New York, NY",
  "maxResults": 20,
  "includeReviews": true
}
```

### 📤 Output Format

Each business returns:

```json
{
  "name": "Blue Bottle Coffee",
  "url": "https://www.google.com/maps/place/Blue+Bottle+Coffee",
  "rating": 4.5,
  "address": "123 Main St, Austin, TX 78701",
  "phone": "+1 (512) 555-0123",
  "website": "https://bluebottlecoffee.com",
  "hours": "Open 6:00 AM – 6:00 PM",
  "reviewCount": "1,250 reviews",
  "timestamp": "2026-06-28T12:34:56.000Z"
}
```

If `includeReviews: true`, also includes:

```json
{
  "sampleReviews": [
    {
      "text": "Great coffee and friendly staff!",
      "rating": "5 out of 5 stars"
    }
  ]
}
```

### 💰 Monetization Strategy

#### **Phase 1: Free Tier (Acquisition)**

- 50 results/month
- CSV export only
- Limits: 2 searches/day
- Goal: 500+ free users in month 1

#### **Phase 2: Pro Tier ($99/month)**

- Unlimited searches
- 500+ results per search
- JSON + CSV + Excel export
- Email support
- Goal: Convert 5-10% of free users

#### **Phase 3: Agency Plan ($299/month)**

- API access
- Bulk searches (10 concurrent)
- Webhooks to Zapier/Make
- Slack alerts for new competitors
- Goal: 10-20 customers = $3-6K/mo revenue

#### **Phase 4: White-Label ($500+/month)**

- Custom branding
- Embed in your SaaS product
- For other Apify users

### 🔧 API Integration (After Launch)

Connect to other tools via Zapier/Make:

**Example: Auto-populate CRM when competitor opens**

```
Apify Scraper → (find new business) → Zapier → HubSpot (create contact)
```

**Example: Price monitoring**

```
Run monthly → Compare results month-over-month → Slack notification
```

### ⚠️ Important Notes

#### Rate Limiting

- Google Maps doesn't CAPTCHA reasonable traffic
- Recommended: 1 search per 5 seconds = safe
- Don't hammer: space searches 5+ sec apart

#### Compliance

- ✅ Scraping public, non-authenticated data = legal
- ✅ No TOS violation (you're just reading)
- ✅ Better than API: Google Maps API is $7+ per 1000 searches
- ✅ This scraper: $0 cost

#### Updates If Google Changes HTML

- If scraper breaks, update selectors in `actor.js`
- Will alert you if structure changes
- Typical fix: 30 mins of CSS selector updates

### 📈 Growth Roadmap (8 Weeks to $5K/mo)

| Week | Goal | Action |
|------|------|--------|
| 1 | Build & test | Deploy actor, validate scraping works |
| 2 | Landing page | Create simple SaaS landing page on Vercel |
| 3-4 | Beta users | Cold email 50 real estate agents, get 10 signups |
| 5 | Premium tier | Launch Pro ($99/mo), convert 3-5 beta users |
| 6-7 | Scale | Content marketing, SEO for "local business scraper" |
| 8 | Revenue | Target $5K/mo (50 Pro users @ $99 avg) |

### 🤝 Next Steps

1. **Commit to GitHub** (share link with team)
2. **Deploy to Apify** (test input from Phase 1)
3. **Build landing page** (Vercel + React, 2-3 hours)
4. **Cold email first 20 prospects** (get 2-3 customers)
5. **Move to Idea #2** (I'll build next)

***

### Questions?

- **Scraper breaking?** Update CSS selectors in `actor.js`
- **Want different fields?** Add XPath/selector + push to GitHub
- **Ready for next idea?** Let me know! I'll build Idea #2.

**Status:** ✅ Ready to deploy | 🚀 First revenue in 2 weeks

# Actor input Schema

## `searchQuery` (type: `string`):

E.g., 'dentist', 'pizza restaurant', 'accounting firm', 'plumber'

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

E.g., 'Austin, TX' or 'Los Angeles, California' or 'Downtown Seattle'

## `maxResults` (type: `integer`):

Number of businesses to extract (1-120). Keep at 5 for fastest results.

## `scrapeEmails` (type: `boolean`):

Visit each business website to find contact email. Set false for faster runs.

## Actor input object example

```json
{
  "searchQuery": "restaurant",
  "location": "Austin, TX",
  "maxResults": 5,
  "scrapeEmails": false
}
```

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("cancap/geo-targeted-smb-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 = {}

# Run the Actor and wait for it to finish
run = client.actor("cancap/geo-targeted-smb-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 '{}' |
apify call cancap/geo-targeted-smb-intelligence --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=cancap/geo-targeted-smb-intelligence",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/irPVZfUvyTwPnV3Du/builds/7PRglsAaAIRtUUZt1/openapi.json
