# Vp Marketing Contact Scraper (`scrapido/vp-marketing-contact-scraper`) Actor

📈 VP Marketing Contact Scraper gathers marketing leadership and agency records from Google Maps—address, ZIP, phone and place ID. 📧 Emails and socials from each site. 💼 Perfect for martech sales, ABM campaigns & B2B prospecting.

- **URL**: https://apify.com/scrapido/vp-marketing-contact-scraper.md
- **Developed by:** [Scrapido](https://apify.com/scrapido) (community)
- **Categories:** Lead generation, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.50 / 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/actors/running/actors-in-store.md#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

### Vp Marketing Contact Scraper

**Vp Marketing Contact Scraper** helps you automate web scraping for marketing contacts by searching for businesses matching your niche and locations, then extracting publicly available email, phone, and social links from their websites. It’s built for lead generation scraper workflows—so you can scale marketing contact extraction without spreadsheets and manual copy-paste.

***

### What Does Vp Marketing Contact Scraper Do? 🤖

Vp Marketing Contact Scraper scrapes publicly available data to find businesses based on your input `googleMapsSearchTerm` and `googleMapsLocation`. During a run, it collects each business’s contact details (like business name, website, phone, address, and rating fields) and then scrapes the business website to extract emails, phone numbers, and social media profiles. Finally, it exports structured results to your Apify dataset so you can filter and enrich leads for targeted outreach automation. It’s essentially a marketing contact extraction tool that makes automate Vp Marketing email collection much faster than doing everything by hand—especially at scale.

***

### What Can Vp Marketing Contact Scraper Extract? 📊

This actor captures business contact data and website-derived contact signals, including lists of extracted emails, phone numbers, and social media links, plus business identity and location metadata. Below are the dataset fields you’ll receive, ready for downstream analytics or CRM contact scraper imports.

| Data Type | Field Name | Description |
|---|---|---|
| Identity | `name` | Business name pulled from the listing data. |
| Contact | `website` | The business website URL used for email and contact extraction. |
| Contact | `phone` | Main phone number associated with the business listing. |
| Location | `full_address` | Combined address string assembled from street address, city, state, zip, and country code. |
| Location | `city` | City for the business. |
| Location | `state` | State/region for the business. |
| Location | `zip` | Postal/ZIP code for the business. |
| Location | `country_code` | Country code associated with the business. |
| Emails | `scraped_emails` | Array of emails found on the business website. |
| Phones | `scraped_phones` | Array of phone numbers extracted from the business website. |
| Social | `scraped_social_media` | Array of social media profile links extracted from the business website. |
| Metrics | `emails_found` | Count of emails found on the business website. |
| Process | `pages_scraped` | Number of pages/URLs scraped while extracting contact info from the website. |
| Metrics | `avg_rating` | Average rating value for the business listing (if available). |
| Metrics | `total_reviews` | Total review count for the business listing (if available). |
| Geodata | `lat` | Latitude coordinate associated with the business listing. |
| Geodata | `long` | Longitude coordinate associated with the business listing. |
| Platform | `place_id` | Place identifier from the listing data. |
| Status | `scrape_status` | Text status indicating how far the business scrape progressed (or whether it failed). |

#### Key Features of Vp Marketing Contact Scraper ⚡

- ✅ **Keyword-Driven Business Discovery**: Uses your `googleMapsSearchTerm` to target the business niche for lead generation scraper results.
- 🌍 **Location Targeting**: Uses `googleMapsLocation` to focus results on specific regions so you can build a targeted outreach list.
- 📧 **Website-Based Contact Extraction**: Extracts emails from business websites (plus phone numbers and social links) to support marketing contact extraction.
- 🔄 **Proxy-Ready & Reliable**: Supports proxy configuration to help keep scraping stable for larger contact database building runs.
- 📊 **Structured Dataset Output**: Produces a clean dataset with labeled fields like `scraped_emails`, `scraped_phones`, and `scraped_social_media` for easy analysis.
- 💾 **Email-Focused Saving Behavior**: Designed for email and phone scraper workflows, with options that help you control whether to prioritize businesses that actually produce email results.
- ⚙️ **Configurable Limits**: Set `maxBusinesses` and control per-location behavior to manage run size for prospect data mining.

***

### How to Use Vp Marketing Contact Scraper 🚀

1. **Find the Actor** — Search **Vp Marketing Contact Scraper** on [Apify Store](https://apify.com/store).
2. **Open Input Tab** — Go to the Input section in the Apify Console.
3. **Set Your Search Term** — Enter `googleMapsSearchTerm` (example: a niche like “coffee shops”).
4. **Choose Locations** — Add one or more values in `googleMapsLocation` (e.g., “New York”).
5. **Control Volume** — Set `maxBusinesses` to determine how many businesses with emails you want.
6. **Optional: Per-Location Limits** — Toggle `scrapeMaxBusinessesPerLocation` to control how results are distributed across locations.
7. **Optional: Proxy Configuration** — Provide `proxyConfiguration` when running at scale.
8. **Click Start** — Run and monitor the job.
9. **Download Results** — Export from the Dataset tab.

*No coding required.*

***

### Vp Marketing Contact Scraper Output Format 📦

The actor saves results to your Apify dataset as structured JSON records. Each dataset item includes business identity fields plus extracted contact arrays from the business website.

#### ⬇️ Input Example

```json
{
  "googleMapsSearchTerm": "Vp Marketing",
  "googleMapsLocation": ["New York"],
  "maxBusinesses": 5,
  "scrapeMaxBusinessesPerLocation": false,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

#### ⬆️ Output Example

```json
{
  "name": "Nova Marketing Group",
  "website": "https://www.novamarketinggroup.com",
  "phone": "+1 212 555 0198",
  "full_address": "1101 6th Ave New York NY 10036 US",
  "city": "New York",
  "state": "NY",
  "zip": "10036",
  "country_code": "US",
  "scraped_emails": [
    "hello@novamarketinggroup.com",
    "partnerships@novamarketinggroup.com"
  ],
  "scraped_phones": [
    "+1 212 555 0198",
    "+1 212 555 0144"
  ],
  "scraped_social_media": [
    "https://www.linkedin.com/company/novamarketinggroup/",
    "https://www.facebook.com/novamarketinggroup"
  ],
  "emails_found": 2,
  "pages_scraped": 6,
  "avg_rating": 4.6,
  "total_reviews": 218,
  "lat": "40.7624",
  "long": "-73.9819",
  "place_id": "ChIJm5d3cXyQwokRAyY9o6bq7xU",
  "scrape_status": "success"
}
```

| Field | Label | Format | Description |
|---|---|---|---|
| `name` | Business Name | text | Business name from the listing data. |
| `website` | Website | link | Website URL used as the base for contact scraping. |
| `phone` | Phone | text | Primary phone number associated with the business listing. |
| `full_address` | Address | text | Full address assembled from multiple address parts. |
| `city` | City | text | City name. |
| `state` | State | text | State/region name. |
| `zip` | zip | text | ZIP/postal code. |
| `country_code` | country\_code | text | Country code. |
| `scraped_emails` | Emails Found | array | Emails extracted from the business website. |
| `scraped_phones` | Phone Numbers | array | Phone numbers extracted from the business website. |
| `scraped_social_media` | Social Media | array | Social profile links extracted from the business website. |
| `emails_found` | # Emails | number | Count of scraped emails. |
| `pages_scraped` | Pages Scraped | number | Number of pages processed during extraction. |
| `avg_rating` | Rating | number | Average rating value from the listing (if available). |
| `total_reviews` | Reviews | number | Total number of reviews from the listing (if available). |
| `lat` | lat | text | Latitude value for the business. |
| `long` | long | text | Longitude value for the business. |
| `place_id` | place\_id | text | Listing place identifier. |
| `scrape_status` | Status | text | Status string indicating the scraping outcome. |

***

### 🎯 Use Cases of Vp Marketing Contact Scraper

**Vp Marketing Contact Scraper** is a strong fit when you need a sales outreach list or B2B contact list built from real business websites, not just names. Use it for CRM enrichment by pulling consistent structured fields like `scraped_emails`, `scraped_phones`, and `scraped_social_media`. Marketers can use the dataset to support targeted outreach automation, while analysts can use the location, rating, and review fields for segmentation—helpful in web scraping for marketing and data enrichment projects.

***

### How Much Will Vp Marketing Contact Scraper Cost You? 💰

Apify actors typically use pay-per-result/event style pricing, and this actor is designed to prioritize businesses with emails via `maxBusinesses`. To manage cost precisely, set `maxBusinesses` and (if relevant) turn on `scrapeMaxBusinessesPerLocation` so your expected dataset size stays predictable. Use the Apify Console during the run to monitor output volume and execution progress.

***

### Is It Legal to Scrape Vp Marketing? ⚖️

Vp Marketing Contact Scraper is intended to scrape **publicly available data** from the web and business websites (no credentials required as part of the workflow). Even when the source content is public, you should still review and follow the relevant websites’ terms of service and apply privacy and anti-spam compliance practices where applicable (for example GDPR/CCPA and local regulations). If you have concerns or need help with data handling, contact <scrapidocontact@gmail.com>.

***

### Vp Marketing Contact Scraper Input Parameters 📋

Below are the input parameters supported by the actor. Provide them as JSON when starting the run.

```json
{
  "googleMapsSearchTerm": "Vp Marketing",
  "googleMapsLocation": ["New York"],
  "maxBusinesses": 5,
  "scrapeMaxBusinessesPerLocation": false,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| `googleMapsSearchTerm` | string | No | `Vp Marketing` | Business type or niche to target for contact discovery (example: “coffee shops”, “dentists”). |
| `googleMapsLocation` | array | ✅ Yes | `["New York"]` | Target geographic location(s) for finding businesses (example: “Miami, Florida”). |
| `maxBusinesses` | integer | No | `5` | Target number of businesses to find with emails (1–1000). The scraper stops when this target is reached. |
| `scrapeMaxBusinessesPerLocation` | boolean | No | `false` | If enabled, collect up to `maxBusinesses` results per location. If disabled, combine all locations up to a single total limit. |
| `proxyConfiguration` | object | No | — | Proxy settings for scraping (recommended for large-scale runs). Currently supports `proxy support`. |

***

### During the Actor Run ⏱️

You’ll see live progress in the Apify Console as the actor discovers businesses by your search term and locations, then scrapes each business website for emails, phone numbers, and social media profiles. Check the Dataset tab while running—results are structured and ready for export once the run finishes. If a location/niche produces fewer businesses, your final dataset may contain fewer rows than `maxBusinesses`.

***

### Final Note ✉️

Build a VP marketing leads dataset faster with **Vp Marketing Contact Scraper**. You control scale using `maxBusinesses` and can run reliably with proxy support for consistent web scraping for marketing. Questions or feedback? Email <scrapidocontact@gmail.com>.

***

### FAQ — Vp Marketing Contact Scraper ❓

#### How does the Vp Marketing Contact Scraper find businesses and emails?

The actor uses your `googleMapsSearchTerm` and `googleMapsLocation` to discover businesses, then visits each business’s `website` to extract publicly available contact information. The result includes arrays such as `scraped_emails`, `scraped_phones`, and `scraped_social_media`, plus counts like `emails_found` for quick filtering.

#### What types of businesses can I scrape?

You can target any business niche supported by your chosen `googleMapsSearchTerm`, and you can scope results by one or more entries in `googleMapsLocation`. This makes it useful as a marketing contact extraction tool for prospect data mining and contact database building across regions.

#### What data quality can I expect from the extracted contacts?

The dataset includes both listing-level fields (like `avg_rating`, `total_reviews`, and `place_id`) and website-derived fields (`scraped_emails`, `scraped_phones`, `scraped_social_media`). The extraction is designed to capture emails and other contact signals found on business websites, then report summary counters such as `emails_found` and `pages_scraped`.

#### Why use a VP marketing lead scraper instead of manual research?

Manual web scraping for marketing contacts is slow and inconsistent—especially when you need many businesses across multiple locations. This actor automates the workflow to export structured records suitable for sales outreach list building, CRM contact scraper pipelines, and other targeted outreach automation tasks.

#### How much does it cost to use the Vp Marketing Contact Scraper?

Costs depend on your run output volume (especially controlled by `maxBusinesses`). If you want tighter control, keep `maxBusinesses` lower and use `scrapeMaxBusinessesPerLocation` carefully so you don’t unintentionally multiply the result set across locations. Check Apify Console during the run to understand output generation.

#### How does the Vp Marketing Contact Scraper help my business?

It helps you generate and enrich marketing leads by collecting business websites and extracting emails and related contact info for outreach. The structured dataset supports data enrichment workflows like segmentation by location and analysis of business ratings/reviews to improve targeting.

#### What are the challenges of scraping marketing contacts?

Not every business website will publish contact emails, and results can vary by niche and region. If you’re doing prospect data mining and your dataset has fewer emails than expected, you may need to adjust `googleMapsSearchTerm`, update `googleMapsLocation`, or increase `maxBusinesses` to reach your target.

#### How do I choose the right input settings?

Start with a focused `googleMapsSearchTerm` aligned to your ideal customer profile, then choose relevant `googleMapsLocation` values. Use `maxBusinesses` to cap scale and `scrapeMaxBusinessesPerLocation` to determine whether you want per-location quotas or a combined global limit. For large batches, enable proxy configuration for compliance friendly data scraping workflows.

***

### 🆘 Support & Feedback

Need help running Vp Marketing Contact Scraper or want a feature improvement?

For questions, feedback, or data-removal requests, contact <scrapidocontact@gmail.com>.

### Multiple Email Type

**Email Types** keeps only the kinds of mailbox you want. Every row records what
it was classified as in `emailType`.

| Type | What it matches |
| --- | --- |
| Personal | Free webmail (Gmail, Outlook, Yahoo, iCloud, ...) |
| Business | Company domains — free webmail and institutions excluded |
| Education | `.edu`, `.ac.uk`, `.edu.au` and other academic suffixes |
| Government | `.gov`, `.mil`, `.gov.uk`, `.gc.ca`, ... |
| Non-profit | `.org`, `.ngo`, `.org.uk`, ... |

A business found with no email at all is unaffected — whether those rows are
wanted is already governed by the existing email-only setting.

### Multiple Phone Type

**Phone Types** does the same for numbers, checked against the line's *real*
type rather than a guess. Numbers on ranges where mobile and landline cannot be
told apart are kept rather than dropped, since discarding them would lose good
leads.

### Outreach links

| Field | Meaning |
| --- | --- |
| `telLink` | A clickable `tel:` link for the primary number |
| `whatsappLink` | A `wa.me` chat link, or empty for a landline or an invalid number |
| `whatsappCapable` | Whether the line could support WhatsApp |
| `phoneContacts` | Every kept number with its own type, links and validity |

`whatsappCapable` never claims the person uses WhatsApp — only that the number
is of a kind that could. Turn the links off with **Include WhatsApp links**; the
capability flag is still reported.

# Actor input Schema

## `googleMapsSearchTerm` (type: `string`):

Enter the business type or niche for email scraper (e.g., 'coffee shops', 'dentists').

## `googleMapsLocation` (type: `array`):

Target geographic location for the email scraper (e.g., 'Miami, Florida').

## `maxBusinesses` (type: `integer`):

Target number of businesses to find (1-1000). The scraper will stop when this target is reached.

## `scrapeMaxBusinessesPerLocation` (type: `boolean`):

If enabled, the scraper will collect up to `maxBusinesses` results per location. If disabled, it combines all locations up to a single total limit.

## `validateEmails` (type: `boolean`):

Run DNS/MX validation and confidence scoring on every email found, and include the results (confidence score, validation status, role-based/catch-all flags) in the output.

## `minRating` (type: `integer`):

Skip businesses rated below this (1-5 stars). Leave at 0 for no filter.

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

Skip businesses with fewer than this many Google reviews. Leave at 0 for no filter.

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

Skip businesses with no website listed on Google Maps (they can't be crawled for contact info anyway).

## `leadMode` (type: `string`):

Business Contacts (default) returns the business's generic contact info (info@, main phone, socials). Decision-Maker Finder instead looks for a named person with a job title (e.g. "Jane Smith, Owner") on the business's team/about pages — a best-effort heuristic, not guaranteed on every site.

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

Proxy settings for scraping. Recommended for large-scale scraping.

## `emailTypes` (type: `array`):

Which kinds of mailbox to keep. Pick as many as you like; leave empty for every type. A business with no email at all is unaffected by this - whether those rows are wanted is governed by the existing email-only setting.

## `phoneTypes` (type: `array`):

Which kinds of line to keep. Leave empty for every type. Numbers on ranges where mobile and landline cannot be told apart are always kept rather than silently dropped.

## `includeWhatsappLinks` (type: `boolean`):

Add a ready-made wa.me chat link for numbers on a line WhatsApp can run on. The link means the number is in a form WhatsApp accepts - not proof that an account exists.

## Actor input object example

```json
{
  "googleMapsSearchTerm": "Vp Marketing",
  "googleMapsLocation": [
    "New York"
  ],
  "maxBusinesses": 5,
  "scrapeMaxBusinessesPerLocation": false,
  "validateEmails": false,
  "minRating": 0,
  "minReviews": 0,
  "requireWebsite": false,
  "leadMode": "Business Contacts",
  "proxyConfiguration": {
    "useApifyProxy": true
  },
  "emailTypes": [
    "Business"
  ],
  "phoneTypes": [
    "Mobile",
    "Landline"
  ],
  "includeWhatsappLinks": true
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

# 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 = {
    "googleMapsSearchTerm": "Vp Marketing",
    "googleMapsLocation": [
        "New York"
    ],
    "maxBusinesses": 5,
    "proxyConfiguration": {
        "useApifyProxy": true
    },
    "emailTypes": [
        "Business"
    ],
    "phoneTypes": [
        "Mobile",
        "Landline"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapido/vp-marketing-contact-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 = {
    "googleMapsSearchTerm": "Vp Marketing",
    "googleMapsLocation": ["New York"],
    "maxBusinesses": 5,
    "proxyConfiguration": { "useApifyProxy": True },
    "emailTypes": ["Business"],
    "phoneTypes": [
        "Mobile",
        "Landline",
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("scrapido/vp-marketing-contact-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 '{
  "googleMapsSearchTerm": "Vp Marketing",
  "googleMapsLocation": [
    "New York"
  ],
  "maxBusinesses": 5,
  "proxyConfiguration": {
    "useApifyProxy": true
  },
  "emailTypes": [
    "Business"
  ],
  "phoneTypes": [
    "Mobile",
    "Landline"
  ]
}' |
apify call scrapido/vp-marketing-contact-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scrapido/vp-marketing-contact-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/jgJLxiziFhBWDPMXX/builds/a5ex1ZLYTVCOih1tf/openapi.json
