# Finance Google Maps Lead Intelligence Scraper (`techforce.global/finance-google-maps-lead-scraper`) Actor

Scrape CA firms, tax consultants & financial advisors from Google Maps with verified emails, lead scores, and instant delivery to Notion, Slack or Airtable.

- **URL**: https://apify.com/techforce.global/finance-google-maps-lead-scraper.md
- **Developed by:** [Techforce Global](https://apify.com/techforce.global) (community)
- **Categories:** Lead generation, Agents, Automation
- **Stats:** 2 total users, 1 monthly users, 92.3% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $10.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.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

### Finance Google Maps Lead Scraper & MCP Connector

Find **finance-related businesses on Google Maps** — CA firms, tax consultants, financial advisors, insurance brokers, stock brokers, loan agencies, and more — and pull business name, address, phone, website, email, rating, reviews, working hours, and Maps URL, for any city, area, state, or country, in one run.

Built for agencies, B2B sales teams, and lead-gen builders who want a ready-to-pitch list of finance businesses — not just a name-and-phone scrape, but company emails plus optional lead intelligence (growth opportunity, sales angle, website health, and technical stack) for every business found.

> **Pick your finance subcategories and location → get every matching business with a verified email and lead score → deliver it straight into Notion, Slack, Jira, or your CRM.**

***

### ⭐ Why This Actor?

- ✅ **Finance-specific categories** — CA Firm, Tax Consultant, GST Consultant, Accounting Firm, Auditor, Financial Advisor, Wealth Management Firm, Investment Service, Insurance Broker, Stock Broker, Loan Agency, Mortgage Broker, and more.
- ✅ **Company email finder** — visits each business's website and finds the best contact email, not just what's listed on the Maps profile.
- ✅ **Optional lead intelligence** — growth opportunity, recommended sales approach, website performance grade, suggested service improvements, and technical stack details, generated per business.
- ✅ **Splits results evenly** — `maxResults` is distributed across every subcategory you select, so you get a balanced mix instead of one category dominating.
- ✅ **Tunable concurrency** — control how many businesses are processed in parallel with `batchSize` to balance speed against memory/compute cost.
- ✅ **Deliver anywhere via MCP connectors** — push scraped leads straight into Notion, Slack, Jira, Airtable, or any other MCP-compatible tool.
- ✅ **Export-ready** — JSON, CSV, Excel, or straight into your own pipeline via the Apify API.

***

### 📝 Use Cases & ROI

| Use Case | Time Saved | What You Get |
| --- | --- | --- |
| **B2B sales prospecting** | Hours/day of manual searching | A ready-made list of finance businesses with verified contact emails |
| **Agency lead generation** | 3–6 hrs/list | Pre-qualified leads with growth opportunity and pitch angle already written |
| **Market mapping** | 4–8 hrs/report | Every CA firm, advisor, or broker in a city/state, with ratings and reviews |
| **Website audit outreach** | 2–4 hrs/list | Website health scores and technical issues to open the conversation with |
| **CRM enrichment** | Ongoing manual entry | A structured feed that drops straight into your CRM or automation tool |

***

### 🚀 How to Use

1. Open the Actor on Apify.
2. Select one or more **Business Types** (finance subcategories) — leave the default (`CA Firm`) or pick several.
3. Enter a **Location** — city, area, state, country, or a Google Maps URL.
4. Set **Maximum businesses** (`maxResults`) — split evenly across your selected subcategories.
5. Set **Parallel browser pages** (`batchSize`) — lower it if pages load slowly or to keep memory usage down.
6. Toggle which **lead intelligence sections** to generate: Business Growth Opportunities, Recommended Sales Approach, Website Performance Report, Suggested Business Improvements, Website Technology Details.
7. *(Optional)* Pick an **MCP connector** to deliver results into Notion, Slack, Jira, etc.
8. Click **Run** — businesses are pushed to the dataset as each one is processed.
9. Download as CSV, Excel, or JSON — or let the connector push them into your tools automatically.

> 💡 First time with a connector? Run once with a connector selected — the run log prints the connector's available tool names and, right before the first delivery call, the exact input schema that tool expects — so you know what to put in **Connector tool name** and **Connector tool arguments**.

***

### 🧩 Input Configuration

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `subcategories` | Array | Optional | Finance business types to search for (e.g. `CA Firm`, `Tax Consultant`, `Financial Advisor`, `Insurance Broker`, `Stock Broker`, `Loan Agency`). Default: `["CA Firm"]`. |
| `location` | String | Optional | City, area, state, country, or a Google Maps URL. Default: `Ahmedabad`. |
| `maxResults` | Integer | Optional | Maximum total businesses for the whole run (1–500), split evenly across selected subcategories. Default: `20`. |
| `batchSize` | Integer | Optional | Number of businesses processed at once (1–20). Lower it if pages load slowly or to reduce memory use. Default: `2`. |
| `includeLeadOverview` | Boolean | Optional | Business growth opportunity, sales angle, and estimated service potential. Default: `true`. |
| `includePitchStrategy` | Boolean | Optional | Recommended opening hook, services to pitch, pain points, and closing strategy. Default: `true`. |
| `includeWebsiteHealthScorecard` | Boolean | Optional | Website performance report with final grade and classification. Default: `true`. |
| `includeServiceRecommendations` | Boolean | Optional | Prioritized service recommendations with expected outcome. Default: `true`. |
| `includeTechnicalIntel` | Boolean | Optional | Website tech stack, SSL/security status, robots.txt, sitemap, and key issues. Default: `true`. |
| `maxAuditPagesPerSite` | Integer | Optional | Maximum website pages audited per business when any analysis section is enabled (1–25). Default: `4`. |
| `mcpConnector` | Connector | Optional | Deliver scraped leads into a connector you've authorized (Notion, Slack, Jira, GitHub, Airtable, …). |
| `deliveryMode` | Enum | Optional | `summary` (one call listing all leads), `chunked` (split a long list across a few calls), `perLead` (one call per lead), or `none`. Default: `summary`. |
| `mcpTool` | String | Optional | Tool to call on the connector (e.g. `create-pages` for Notion, `send_message` for Slack). |
| `mcpArguments` | Object | Optional | Arguments for the tool; string values support `{placeholders}`. |
| `mcpMessageTemplate` | String | Optional | Template rendered and exposed as the `{message}` placeholder. |

> Note: the free plan caps runs at 10 leads. Upgrade to a paid plan for full result counts and priority support.

#### Example — CA firms and tax consultants in Ahmedabad

```json
{
    "subcategories": ["CA Firm", "Tax Consultant"],
    "location": "Ahmedabad",
    "maxResults": 30,
    "batchSize": 2
}
```

#### Example — Financial advisors and wealth managers, no lead intelligence

```json
{
    "subcategories": ["Financial Advisor", "Wealth Management Firm"],
    "location": "Mumbai",
    "maxResults": 50,
    "includeLeadOverview": false,
    "includePitchStrategy": false,
    "includeWebsiteHealthScorecard": false,
    "includeServiceRecommendations": false,
    "includeTechnicalIntel": false
}
```

#### Example — Scrape and post a summary to Slack

```json
{
    "subcategories": ["Insurance Broker"],
    "location": "Bengaluru",
    "mcpConnector": "<your-slack-connector>",
    "deliveryMode": "summary",
    "mcpTool": "send_message",
    "mcpArguments": { "channel": "#leads", "text": "{message}" },
    "mcpMessageTemplate": "Found {leadCount} leads in {location}:\n\n{leads}"
}
```

#### Example — Scrape and create Notion pages (chunked, for large result sets)

```json
{
    "subcategories": ["Loan Agency", "Mortgage Broker"],
    "location": "Delhi",
    "maxResults": 100,
    "mcpConnector": "<your-notion-connector>",
    "deliveryMode": "chunked",
    "mcpTool": "create-pages",
    "mcpArguments": {
        "parent": { "page_id": "<your-page-id>" },
        "pages": [
            {
                "properties": { "title": "Finance leads — {location} ({subcategories}) — part {part}/{partCount}" },
                "content": "{leads}"
            }
        ]
    }
}
```

#### Example — One Notion page per lead

```json
{
    "subcategories": ["Stock Broker"],
    "location": "Pune",
    "mcpConnector": "<your-notion-connector>",
    "deliveryMode": "perLead",
    "mcpTool": "create-pages",
    "mcpArguments": {
        "parent": { "page_id": "<your-page-id>" },
        "pages": [
            {
                "properties": { "title": "{businessName} — {category}" },
                "content": "**Address:** {address}\n**Phone:** {phone}\n**Email:** {companyEmail}\n**Website:** {website}\n\n[View on Google Maps]({googleMapsUrl})"
            }
        ]
    }
}
```

#### Placeholders available in arguments / template

**Summary & chunked modes:** `{leadCount}` · `{subcategories}` · `{location}` · `{leads}` (all leads as text lines) · `{message}`
**Chunked mode adds:** `{part}` · `{partCount}`
**Per-lead mode:** `{businessName}` · `{category}` · `{address}` · `{phone}` · `{website}` · `{companyEmail}` · `{emailStatus}` · `{googleRating}` · `{totalReviews}` · `{googleMapsUrl}` · `{searchQuery}` · `{message}`

***

### 📦 Output Fields

Every business record includes the following top-level fields, plus any enabled lead intelligence sections:

| Field | Description |
| --- | --- |
| `businessName` | Business name |
| `category` | Finance subcategory searched (e.g. `CA Firm`) |
| `address` | Street address |
| `phone` | Phone number |
| `website` | Business website |
| `companyEmail` | Best contact email found on the website |
| `emailStatus` | Whether an email was found |
| `workingHours` | Weekly working hours |
| `googleRating` | Google Maps rating |
| `totalReviews` | Number of Google Maps reviews |
| `googleMapsUrl` | Direct link to the Google Maps profile |
| `searchQuery` | The search query that found this business |
| `LEAD_OVERVIEW` | Lead priority, revenue opportunity, sales angle, recommended pitch |
| `PITCH_STRATEGY` | Opening hook, services to pitch, pain points, outcomes, closing strategy |
| `WEBSITE_HEALTH_SCORECARD` | Final website grade, classification, grade breakdown |
| `SERVICE_RECOMMENDATIONS` | Prioritized recommendations with what to fix, why, and expected outcome |
| `TECHNICAL_INTEL` | Tech stack, SSL/security status, robots.txt, sitemap, audited pages, key issues |

#### Example Output

```json
[
    {
        "businessName": "Sharma & Associates, Chartered Accountants",
        "category": "CA Firm",
        "address": "Navrangpura, Ahmedabad, Gujarat",
        "phone": "+91 98765 43210",
        "website": "https://sharmaca.example.com",
        "companyEmail": "contact@sharmaca.example.com",
        "emailStatus": "Found",
        "workingHours": "Mon-Sat 10:00-19:00",
        "googleRating": 4.6,
        "totalReviews": 128,
        "googleMapsUrl": "https://www.google.com/maps/place/...",
        "searchQuery": "CA Firm in Ahmedabad"
    }
]
```

> You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

***

### 🔌 Integrations & Delivery

Deliver scraped leads into any MCP connector you've authorized in Apify — no glue code, no webhooks:

- **Notion** — create a page per lead, or one page listing all leads (use `chunked` mode for large result sets so Notion never times out)
- **Slack / Discord** — post a summary or per-lead alerts to a channel
- **Jira / GitHub / Linear** — open follow-up tasks from qualified leads
- **Airtable / Google Sheets** — append a structured row per lead
- …or any other MCP-compatible connector

Credentials stay private — delivery runs through the **Apify MCP Proxy**, so the Actor never sees your connector tokens. The dataset is always saved regardless of these settings; you can also consume it directly via the **Apify API**, or wire it into **n8n, Zapier, and Make**.

> ⚙️ **Delivery modes:** `summary` sends one call with every scraped lead, `chunked` splits a large lead list across several calls, and `perLead` sends one call per lead. MCP delivery runs after the dataset is saved and never affects what's stored there.

#### 💡 Growth Hack: Automated Lead Alerts via n8n

Connect this Actor to n8n to build a "New Leads" bot:

1. Set the Actor to run on a weekly schedule for your target cities.
2. Filter for `emailStatus: "Found"` and a strong `WEBSITE_HEALTH_SCORECARD` grade.
3. Send a Slack or Telegram notification whenever a fresh, well-qualified lead shows up.

***

### 🛠️ How It Works

`my_actor/main.py` reads the input, then:

1. Builds Google Maps searches from the selected finance subcategories and location, distributing `maxResults` evenly across subcategories.
2. Visits each Google Maps business profile with Playwright and extracts name, category, address, phone, website, rating, reviews, working hours, and Maps URL.
3. Visits the company website to find the best contact email.
4. Runs any enabled lead intelligence sections (growth opportunity, sales approach, website performance, service recommendations, technical details), auditing up to `maxAuditPagesPerSite` pages per site.
5. Pushes each business to the dataset as soon as it's processed.
6. Once scraping finishes, if a connector is configured, delivers the collected leads via MCP in the selected mode (`summary`, `chunked`, or `perLead`).

**Built with:** [Apify SDK for Python](https://docs.apify.com/sdk/python/) · [Playwright](https://playwright.dev/python/) · [MCP](https://modelcontextprotocol.io/)

***

### 🆘 Support

For issues, custom scraping requests, or feature suggestions:

**Email**: bhavin.shah@techforceglobal.com

***

#### Need a Custom Pipeline?

Want multi-city batch runs, scheduled refreshes, deeper enrichment, or a full data-warehouse integration?

#### [📅 Book a Free 15-min Consultation](https://calendly.com/techforce-global/intro-meeting)

***

Made with ❤️ by **[Techforce](https://www.techforceglobal.com)**
Specialists in High-Performance Web Scrapers and AI Automation.

***

### Disclaimer

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Google or Google Maps. All trademarks are property of their respective owners. The Actor collects only publicly available business listing data displayed on Google Maps and company websites, and does not log into, or scrape behind the authentication of, any platform. Use the data responsibly and in compliance with applicable laws (including GDPR/CCPA) and Google's terms of service.

# Actor input Schema

## `subcategory` (type: `string`):

Compatibility field for older saved inputs.

## `subcategories` (type: `array`):

Select one or more finance subcategories to search for. Category is fixed to Finance.

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

Enter one city/area/state/country.

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

Maximum total number of Google Maps businesses to analyze across the whole run.

## `batchSize` (type: `integer`):

Number of businesses processed at once. Lower this if Google Maps or websites load slowly, or to keep memory usage down.

## `includeLeadOverview` (type: `boolean`):

Generate lead priority, revenue opportunity level, sales angle, recommended pitch, and estimated service potential.

## `includePitchStrategy` (type: `boolean`):

Generate opening hook, services to pitch, pain points, outcomes, and closing strategy.

## `includeWebsiteHealthScorecard` (type: `boolean`):

Analyze website quality and generate final grade, final classification, and grade breakdown.

## `includeServiceRecommendations` (type: `boolean`):

Generate prioritized service recommendations with what to fix, why it matters, expected outcome, and selling point.

## `includeTechnicalIntel` (type: `boolean`):

Analyze tech stack, SSL/security status, robots.txt, sitemap, audited pages, audited URLs, navigation notes, and key technical issues.

## `maxAuditPagesPerSite` (type: `integer`):

Maximum website pages to audit when any analysis section is enabled.

## `mcpConnector` (type: `string`):

Optionally deliver scraped leads into a connector you have authorized — Notion, Slack, Airtable, Jira, GitHub, or any MCP-compatible connector. Leave empty to only save results to the dataset.

## `deliveryMode` (type: `string`):

How to deliver to the connector: 'summary' (one call listing all scraped leads), 'chunked' (split a long lead list across a few calls so services like Notion never time out), 'perLead' (one call per lead), or 'none' (save to dataset only).

## `mcpTool` (type: `string`):

Name of the tool to call on the connector (e.g. 'create\_page' for Notion, 'send\_message' for Slack, 'create\_issue' for Jira/GitHub). If unsure, run once with a connector selected — the log lists the connector's available tools.

## `mcpArguments` (type: `object`):

Arguments passed to the connector tool. String values support {placeholders}. In 'summary' mode: {leadCount}, {subcategories}, {location}, {leads} (all leads as text lines) and {message} (the rendered template below). In 'chunked' mode: same as summary but {leads} holds one part of the list, and {part}/{partCount} give the 1-based part number and total (e.g. use in a page title: 'Leads (part {part}/{partCount})'). In 'perLead' mode: {businessName}, {category}, {address}, {phone}, {website}, {companyEmail}, {emailStatus}, {googleRating}, {totalReviews}, {googleMapsUrl}, {searchQuery} and {message}. Example for Slack: {"channel": "#leads", "text": "{message}"}.

## `mcpMessageTemplate` (type: `string`):

Optional template rendered and exposed as the {message} placeholder in the tool arguments. Summary example: 'Found {leadCount} leads in {location}:\n\n{leads}'. Per-lead example: '{businessName} - {category}, {address} ({phone}) {website}'.

## Actor input object example

```json
{
  "subcategory": "",
  "subcategories": [
    "CA Firm"
  ],
  "location": "Ahmedabad",
  "maxResults": 20,
  "batchSize": 2,
  "includeLeadOverview": true,
  "includePitchStrategy": true,
  "includeWebsiteHealthScorecard": true,
  "includeServiceRecommendations": true,
  "includeTechnicalIntel": true,
  "maxAuditPagesPerSite": 4,
  "deliveryMode": "summary",
  "mcpTool": "",
  "mcpArguments": {},
  "mcpMessageTemplate": ""
}
```

# Actor output Schema

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

Default dataset items produced by this actor.

# 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("techforce.global/finance-google-maps-lead-scraper").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("techforce.global/finance-google-maps-lead-scraper").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 '{}' |
apify call techforce.global/finance-google-maps-lead-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,techforce.global/finance-google-maps-lead-scraper"
        }
    }
}

```

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/DdYBvAl41bGV19Kps/builds/iASbg6e9zl8na6OXv/openapi.json
