# CB Insights Email Scraper (`neuro-scraper/cb-insights-email-scraper`) Actor

CB Insights Email Scraper SD - CB Insights Email Scraper is a lead generation tool that extracts leads with public contact emails, account names and profile URLs from CB Insights results by keyword, location and email domain - CB Insights email extractor.

- **URL**: https://apify.com/neuro-scraper/cb-insights-email-scraper.md
- **Developed by:** [Neuro Scraper](https://apify.com/neuro-scraper) (community)
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.49 / 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/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

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

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### What the CB Insights Email Scraper does

The CB Insights Email Scraper collects public contact emails from publicly indexed CB Insights pages and returns them as structured, ready-to-use lead rows.
CB Insights is a market intelligence platform: it publishes company profiles, research briefs and category reports covering venture-backed companies across every major technology sector.
A useful amount of that surface is publicly indexed, which is why the CB Insights Email Scraper performs strongly compared with genuinely gated databases.

In a measured ten-block sample, the CB Insights Email Scraper matched 10 result blocks, resolved account identity on 10, produced 10 profile URLs and returned 7 unique emails.
Identity resolution was perfect and email yield was solid - a combination that makes it useful for both research and outreach.
Yields still vary with keywords, domains and country, and no volume is guaranteed.

The Actor never logs into CB Insights, never opens the site and never uses any CB Insights API.
It builds Google `site:cbinsights.com` queries from your keywords, fetches result pages through the Apify GOOGLE_SERP proxy, and extracts emails from the titles and snippets Google already publishes.
There is no browser, no JavaScript rendering, no authentication and no cookies.

#### Why company profiles make good rows

Because CB Insights pages are company profiles rather than personal profiles, `accountName` and `fullName` usually name a company and `profileUrl` points at its canonical `cbinsights.com/company/...` page.
That makes CB Insights Email Scraper output easy to join against an existing CRM or company list.
Where an address appears, it is typically a general, press or partnerships inbox published so that analysts and partners can get in touch.

#### Who the CB Insights Email Scraper is for

Venture and growth investors use the CB Insights Email Scraper to build a target list inside a category and reach companies directly.
M\&A analysts and corporate development teams use it to map a sector and open first conversations with named companies.
Corporate innovation and partnership teams use it to find startups worth piloting with.

Startup-service vendors - legal, banking, cloud, recruiting - use it to reach venture-backed companies with real budgets.
Market researchers and consultants use it to assemble an interview list for a category study.
Companies profiled on CB Insights publish contact addresses because visibility with investors, analysts and partners is the point.

### Key features of the CB Insights Email Scraper

Every feature in the CB Insights Email Scraper serves one of two goals: getting past Google's per-query result ceiling, and making sure the addresses that survive are real.
All of it runs on every execution.

| Feature | What it means in practice |
|---|---|
| Google-indexed extraction | Reads `site:cbinsights.com` result blocks through the Apify GOOGLE_SERP proxy - no login, no browser, no cookies |
| Strong identity resolution | In the measured sample 10 of 10 blocks produced a company name and a canonical profile URL |
| Domain-filtered emails | Only addresses on your `customDomains` list are kept |
| Query expansion | Base, quoted and `intitle:` phrasings plus one variant per query modifier, because Google caps a single query at roughly 300 results |
| Global deduplication | Every email is unique across all queries and all pages in a run |
| Email normalisation | Handles `name [at] domain [dot] com`, `name (at) domain`, `name @ domain.com`, `domain .com`, zero-width characters and the full-width `＠` |
| Junk filtering | Rejects placeholders such as `email@`, `yourname@`, `test@`, `xxx@` and single-character locals |
| Boundary-correct matching | `@gmail.com` will not match inside `@gmail.company` or `@gmail.com.br` |
| Soft-wrap repair | Drops a hit that is only the tail of another email in the same result block |
| Structural block parsing | Finds the `<h3>` title and the smallest surrounding block instead of relying on Google's CSS class names |
| Whole-page fallback | If Google's markup changes, a run degrades to emails without account details rather than to nothing |
| Block detection | CAPTCHA, "unusual traffic" and consent pages are detected and retried, not counted as empty |
| Retries and re-queue | Up to 3 attempts per page with exponential backoff and a fresh proxy session; failed queries are re-queued once at the end |
| Resumable state | Progress is stored in the key-value store keyed by an input hash and saved on `PERSIST_STATE`, `MIGRATING` and `ABORTING` |
| Async concurrency | An `asyncio` worker pool with a shared stop signal on `maxEmails` |

### How the CB Insights Email Scraper works

The CB Insights Email Scraper runs six steps on every execution, and none of them touch the CB Insights website itself.
The pipeline is async Python over `aiohttp` against Google, which keeps runs fast and inexpensive.

1. It reads your input: keywords, location, email domains and limits.
2. It builds Google queries with the `site:` operator against `cbinsights.com`, for example `site:cbinsights.com venture "@gmail.com" "Boston"`.
3. It fetches Google result pages through the Apify GOOGLE_SERP proxy.
4. It parses each result block structurally by locating the `<h3>` title and the smallest surrounding block.
5. It extracts emails from the block text with a domain-filtered regex.
6. It deduplicates globally and pushes each lead straight to the Apify dataset.

Base queries run first, so the most relevant results land before the expanded variants.
The run summary logs pages fetched, blocked pages, retries and emails per page, which tells you immediately whether a thin run was a keyword problem or a rate problem.

### Input fields for the CB Insights Email Scraper

| Field | Type | Default | Meaning |
|---|---|---|---|
| `keywords` | array (required) | `["startup", "venture"]` | Search terms describing the accounts you want (niche, job title, industry) |
| `location` | string | `""` | Optional location phrase added to every query |
| `customDomains` | array | `["@gmail.com","@yahoo.com"]` | Only emails on these domains are kept; the `@` is optional |
| `maxEmails` | integer 1-10000 | `20` | Stop after this many unique emails |
| `countryCode` | string | `""` | Two-letter country for the search proxy (US, GB, DE...) |
| `expandQueries` | boolean | `true` | Search each keyword x domain pair in several phrasings |
| `queryModifiers` | array | `["email","contact","press","partnerships","sales"]` | Extra words combined with each keyword when expansion is on |
| `maxPagesPerQuery` | integer 1-50 | `30` | Page cap per query |
| `maxConcurrency` | integer 1-20 | `5` | Parallel queries |

A realistic sector-focused input for the CB Insights Email Scraper:

```json
{
  "keywords": ["cybersecurity", "venture", "series b"],
  "location": "Boston",
  "customDomains": ["@gmail.com", "@outlook.com"],
  "maxEmails": 250,
  "countryCode": "US",
  "expandQueries": true,
  "queryModifiers": ["email", "contact", "press", "partnerships", "sales"],
  "maxPagesPerQuery": 30,
  "maxConcurrency": 5
}
```

### Output fields the CB Insights Email Scraper returns

Every dataset item the CB Insights Email Scraper writes carries all fourteen fields below - no optional extras, no hidden columns.

| Field | Meaning |
|---|---|
| `network` | Platform name |
| `keyword` | The keyword that produced the lead |
| `query` | The exact Google query used |
| `title` | Raw result title |
| `accountName` | Account label Google prints |
| `fullName` | Display name parsed from a profile-style title; empty for post captions |
| `username` | URL-safe handle when the platform exposes one; otherwise `null` |
| `profileUrl` | Canonical account URL when a handle is known; otherwise empty |
| `url` | Direct platform link when exposed, else the profile URL |
| `description` | Bio snippet, cleaned of labels and engagement counters |
| `email` | Lower-cased email address |
| `emailDomain` | The matched domain |
| `possiblyTruncated` | `true` when Google's snippet ellipsis touched the email |
| `foundAt` | ISO 8601 UTC timestamp |

A typical row from the CB Insights Email Scraper:

```json
{
  "network": "CB Insights",
  "keyword": "cybersecurity",
  "query": "site:cbinsights.com cybersecurity \"@gmail.com\"",
  "title": "Ridgeline Secure - Products, Competitors, Financials | CB Insights",
  "accountName": "Ridgeline Secure",
  "fullName": "Ridgeline Secure",
  "username": "ridgeline-secure",
  "profileUrl": "https://www.cbinsights.com/company/ridgeline-secure",
  "url": "https://www.cbinsights.com/company/ridgeline-secure",
  "description": "Ridgeline Secure builds identity threat detection for mid-market enterprises. Partnerships: ridgeline.partners@gmail.com",
  "email": "ridgeline.partners@gmail.com",
  "emailDomain": "@gmail.com",
  "possiblyTruncated": false,
  "foundAt": "2026-02-11T18:05:09Z"
}
```

### Use cases for the CB Insights Email Scraper

| Audience | How they use the CB Insights Email Scraper |
|---|---|
| Venture and growth investors | Build a target list inside a category and reach companies directly |
| M\&A and corporate development | Map a sector, then open a first conversation |
| Corporate innovation teams | Find venture-backed startups worth piloting with |
| Cloud, banking and legal vendors | Reach funded companies with real procurement budgets |
| Recruiters | Identify scaling companies inside a technology category |
| Consultants and analysts | Assemble an interview list for a market study |
| Partnership teams | Contact published partnerships inboxes |
| B2B SaaS founders | Build a cold outreach list of venture-backed buyers |

### Example runs with the CB Insights Email Scraper

Three input shapes cover most of what people ask the CB Insights Email Scraper to do.
Start broad, then narrow once you can see which keywords produce rows.

A category discovery run, the usual first run of the CB Insights Email Scraper:

```json
{
  "keywords": ["fintech", "cybersecurity", "digital health"],
  "customDomains": ["@gmail.com", "@yahoo.com"],
  "maxEmails": 500,
  "expandQueries": true
}
```

A geographic run using both location levers the CB Insights Email Scraper supports:

```json
{
  "keywords": ["venture", "startup"],
  "location": "San Francisco",
  "countryCode": "US",
  "customDomains": ["@gmail.com"],
  "maxEmails": 200
}
```

A precision run with expansion off, when you want the CB Insights Email Scraper to match one literal phrase:

```json
{
  "keywords": ["supply chain analytics"],
  "customDomains": ["@gmail.com"],
  "expandQueries": false,
  "maxEmails": 60,
  "maxConcurrency": 3
}
```

### Tips to get more from the CB Insights Email Scraper

Use category vocabulary. CB Insights organises the world by technology market, so `cybersecurity`, `digital health`, `insurtech` and `supply chain analytics` match far better than generic words like `company`.
Funding-stage words such as `series b` also work well, because they appear throughout the research pages.

Keep `expandQueries` on for discovery, since Google caps a single query at roughly 300 results and expansion is the only route past that ceiling.
The `partnerships` and `press` modifiers pull hardest here, because those are the inboxes company profiles tend to publish.

Widen `customDomains` when a run comes back thin, and add the company domains you already track - the `@` prefix is optional.
Raise `maxConcurrency` carefully, because pushing Google harder mainly produces more blocked pages, which the run summary of the CB Insights Email Scraper will show you.

### Limitations of the CB Insights Email Scraper

The CB Insights Email Scraper only finds accounts whose email is publicly visible in Google's index - if a company never published an address, no Google-based tool can find it.
Google caps a single query at roughly 300 results, which is exactly why query expansion exists and defaults to on.

`possiblyTruncated: true` means Google's snippet ellipsis touched the address, so verify those rows before sending anything.
`username` and `profileUrl` are only populated when Google's result exposes a handle; where Google prints only a display name those fields stay empty while `accountName` and `fullName` are filled in - a Google limitation, not a bug, though CB Insights company URLs resolved reliably in the measured sample.

Rows generally identify a company rather than a named individual, so plan your outreach for a company inbox rather than a personal one.
The Actor requires the Apify GOOGLE_SERP proxy and cannot run without Apify proxy credentials.
Free Apify plans are capped at 100 emails per run; paid plans are uncapped, and results vary with keywords, domains and location, with no volume guaranteed.

### Responsible use and GDPR

CB Insights covers companies worldwide, the EU included, so treat every address the CB Insights Email Scraper returns as personal data unless you are certain it is a purely corporate inbox.
Have a lawful basis for your outreach, identify yourself clearly, explain why you are writing, honour opt-outs immediately and keep your list current.
This is general responsible-use guidance, not legal advice - check your own obligations before running a campaign.

### FAQ about the CB Insights Email Scraper

#### How many results should I expect from the CB Insights Email Scraper?

In a measured ten-block sample it resolved identity on 10 blocks, produced 10 profile URLs and returned 7 unique emails, which is a strong result in this family.
Your own numbers depend on keywords, domains, country and `maxEmails`, and no volume is guaranteed.

#### Does the CB Insights Email Scraper log into CB Insights?

No. It never logs in, never opens the CB Insights website and never uses a CB Insights API. It reads publicly indexed Google results only.

#### Where do the emails the CB Insights Email Scraper returns come from?

From the titles, snippets and site labels Google already publishes for `cbinsights.com` pages. Nothing private is accessed.

#### Does the CB Insights Email Scraper return companies or people?

Companies, mostly. CB Insights publishes company profiles, so expect general, press and partnerships inboxes rather than named personal addresses.

#### Which keywords work best?

Technology category names and funding-stage words. Let the CB Insights Email Scraper expand each of them rather than relying on one broad term.

#### Can the CB Insights Email Scraper filter to company domains instead of `@gmail.com`?

Yes. Put any domains you want in `customDomains`, with or without the leading `@`.
Boundary-correct matching means `@gmail.com` will not accidentally match `@gmail.company`.

#### Why are some `username` and `profileUrl` fields empty?

Google sometimes prints only a display name, and with no handle exposed there is no canonical profile URL. The rest of the row is still complete.

#### What does `possiblyTruncated` mean?

It flags a row where Google's snippet ellipsis touched the email, so the address may be cut short. Verify those rows before sending.

#### Does the CB Insights Email Scraper return duplicates?

No. Deduplication is global across every query and page in a run, so each address appears once.

#### Does it need a proxy?

Yes. The CB Insights Email Scraper requires the Apify GOOGLE_SERP proxy and will not run without Apify proxy credentials.

#### Is there a free-plan limit on the CB Insights Email Scraper?

Free Apify plans are capped at 100 emails per run. Paid plans are uncapped.

#### Can I resume an interrupted run of the CB Insights Email Scraper?

Yes. State is kept in the key-value store keyed by a hash of your input and saved on Apify's `PERSIST_STATE`, `MIGRATING` and `ABORTING` events.

#### What should I combine it with?

Pair the CB Insights Email Scraper with the [F6S Email Scraper](https://apify.com/leads-scraper/f6s-email-scraper) for founder-level contacts and the [EU-Startups Email Scraper](https://apify.com/neuro-scraper/eu-startups-email-scraper) for European coverage, then deduplicate across datasets.

### Related Actors

The CB Insights Email Scraper is one of twenty Actors in the Software, SaaS and Startup family, all running the same engine against a different platform.
For founder-level contacts start with the [F6S Email Scraper](https://apify.com/leads-scraper/f6s-email-scraper); for European companies use the [EU-Startups Email Scraper](https://apify.com/neuro-scraper/eu-startups-email-scraper); for pre-launch teams the [BetaList Email Scraper](https://apify.com/leads-scraper/betalist-email-scraper); and note that the [Tracxn Email Scraper](https://apify.com/leads-scraper/tracxn-email-scraper) covers similar ground but is login-gated and yields far less.

| Actor | What it collects |
|---|---|
| [CB Insights Email and Phone Number Scraper](https://apify.com/neuro-scraper/cb-insights-email-and-phone-number-scraper) | Emails and phone numbers from CB Insights |
| [CB Insights Phone Number Scraper](https://apify.com/neuro-scraper/cb-insights-phone-number-scraper) | Public phone numbers from CB Insights |
| [AlternativeTo Email Scraper](https://apify.com/leads-scraper/alternativeto-email-scraper) | Public contact emails from AlternativeTo |
| [BetaList Email Scraper](https://apify.com/leads-scraper/betalist-email-scraper) | Public contact emails from BetaList |
| [BuiltWith Email Scraper](https://apify.com/leads-scraper/builtwith-email-scraper) | Public contact emails from BuiltWith |
| [Dealroom Email Scraper](https://apify.com/leads-scraper/dealroom-email-scraper) | Public contact emails from Dealroom |
| [EU-Startups Email Scraper](https://apify.com/neuro-scraper/eu-startups-email-scraper) | Public contact emails from EU-Startups |
| [F6S Email Scraper](https://apify.com/leads-scraper/f6s-email-scraper) | Public contact emails from F6S |
| [Failory Email Scraper](https://apify.com/neuro-scraper/failory-email-scraper) | Public contact emails from Failory |
| [Product Hunt Email Scraper](https://apify.com/leads-scraper/product-hunt-email-scraper) | Public contact emails from Product Hunt |
| [SaaSHub Email Scraper](https://apify.com/neuro-scraper/saashub-email-scraper) | Public contact emails from SaaSHub |
| [SaaSworthy Email Scraper](https://apify.com/neuro-scraper/saasworthy-email-scraper) | Public contact emails from SaaSworthy |
| [Software Advice Email Scraper](https://apify.com/leads-scraper/software-advice-email-scraper) | Public contact emails from Software Advice |
| [SourceForge Companies Email Scraper](https://apify.com/leads-scraper/sourceforge-companies-email-scraper) | Public contact emails from SourceForge |
| [Tracxn Email Scraper](https://apify.com/leads-scraper/tracxn-email-scraper) | Public contact emails from Tracxn |
| [Wappalyzer Email Scraper](https://apify.com/leads-scraper/wappalyzer-email-scraper) | Public contact emails from Wappalyzer |
| [Wellfound Startup Email Scraper](https://apify.com/leads-scraper/wellfound-startup-email-scraper) | Public contact emails from Wellfound |
| [AlternativeTo Email and Phone Number Scraper](https://apify.com/neuro-scraper/alternativeto-email-and-phone-number-scraper) | Emails and phone numbers from AlternativeTo |
| [BetaList Email and Phone Number Scraper](https://apify.com/neuro-scraper/betalist-email-and-phone-number-scraper) | Emails and phone numbers from BetaList |
| [Dealroom Email and Phone Number Scraper](https://apify.com/leads-scraper/dealroom-email-and-phone-number-scraper) | Emails and phone numbers from Dealroom |
| [EU-Startups Email and Phone Number Scraper](https://apify.com/neuro-scraper/eu-startups-email-and-phone-number-scraper) | Emails and phone numbers from EU-Startups |
| [F6S Email and Phone Number Scraper](https://apify.com/neuro-scraper/f6s-email-and-phone-number-scraper) | Emails and phone numbers from F6S |
| [Failory Email and Phone Number Scraper](https://apify.com/neuro-scraper/failory-email-and-phone-number-scraper) | Emails and phone numbers from Failory |
| [Product Hunt Email and Phone Number Scraper](https://apify.com/leads-scraper/product-hunt-email-and-phone-number-scraper) | Emails and phone numbers from Product Hunt |
| [SaaSHub Email and Phone Number Scraper](https://apify.com/neuro-scraper/saashub-email-and-phone-number-scraper) | Emails and phone numbers from SaaSHub |
| [SaaSworthy Email and Phone Number Scraper](https://apify.com/neuro-scraper/saasworthy-email-and-phone-number-scraper) | Emails and phone numbers from SaaSworthy |
| [Software Advice Email and Phone Number Scraper](https://apify.com/neuro-scraper/software-advice-email-and-phone-number-scraper) | Emails and phone numbers from Software Advice |
| [SourceForge Email and Phone Number Scraper](https://apify.com/neuro-scraper/sourceforge-companies-email-and-phone-number-scraper) | Emails and phone numbers from SourceForge |
| [Wappalyzer Email and Phone Number Scraper](https://apify.com/leads-scraper/wappalyzer-email-and-phone-number-scraper) | Emails and phone numbers from Wappalyzer |
| [Wellfound Email and Phone Number Scraper](https://apify.com/leads-scraper/wellfound-startup-email-and-phone-number-scraper) | Emails and phone numbers from Wellfound |
| [AlternativeTo Phone Number Scraper](https://apify.com/neuro-scraper/alternativeto-phone-number-scraper) | Public phone numbers from AlternativeTo |
| [BetaList Phone Number Scraper](https://apify.com/neuro-scraper/betalist-phone-number-scraper) | Public phone numbers from BetaList |
| [Dealroom Phone Number Scraper](https://apify.com/leads-scraper/dealroom-phone-number-scraper) | Public phone numbers from Dealroom |
| [EU-Startups Phone Number Scraper](https://apify.com/neuro-scraper/eu-startups-phone-number-scraper) | Public phone numbers from EU-Startups |
| [F6S Phone Number Scraper](https://apify.com/neuro-scraper/f6s-phone-number-scraper) | Public phone numbers from F6S |
| [Failory Phone Number Scraper](https://apify.com/neuro-scraper/failory-phone-number-scraper) | Public phone numbers from Failory |
| [Product Hunt Phone Number Scraper](https://apify.com/leads-scraper/product-hunt-phone-number-scraper) | Public phone numbers from Product Hunt |
| [SaaSHub Phone Number Scraper](https://apify.com/neuro-scraper/saashub-phone-number-scraper) | Public phone numbers from SaaSHub |
| [SaaSworthy Phone Number Scraper](https://apify.com/neuro-scraper/saasworthy-phone-number-scraper) | Public phone numbers from SaaSworthy |
| [Software Advice Phone Number Scraper](https://apify.com/neuro-scraper/software-advice-phone-number-scraper) | Public phone numbers from Software Advice |
| [SourceForge Phone Number Scraper](https://apify.com/neuro-scraper/sourceforge-companies-phone-number-scraper) | Public phone numbers from SourceForge |
| [Wappalyzer Phone Number Scraper](https://apify.com/leads-scraper/wappalyzer-phone-number-scraper) | Public phone numbers from Wappalyzer |

### Leave a review

If the CB Insights Email Scraper saved you time, please leave a star rating and a short review
on the Actor page.

Reviews are how other buyers judge whether a tool works, and they tell us which features to
build next.

If something did not work, email <neurodata.apify@gmail.com>
instead - bugs get fixed faster than they get complained about.

### Support

Questions about the CB Insights Email Scraper, a thin run you want reviewed, or a custom build? Email neurodata.apify@gmail.com with the keywords, location and domains you used.

# Actor input Schema

## `keywords` (type: `array`):

Search terms describing the CB Insights accounts you want (niche, job title, industry).

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

Optional location phrase added to every query (e.g. "New York").

## `customDomains` (type: `array`):

Only emails ending with one of these domains are collected. With or without the leading @. Each domain is searched separately, so more domains means more results but a longer run - remove some for a faster, narrower search, or add your own (e.g. @company.com).

## `maxEmails` (type: `integer`):

Stop once this many unique emails have been collected.

## `countryCode` (type: `string`):

Two-letter country code for the search proxy (e.g. US, GB, DE). Empty for any.

## `expandQueries` (type: `boolean`):

Search each keyword x domain pair with several phrasings. Recommended - Google caps a single query at ~300 results.

## `queryModifiers` (type: `array`):

Extra words combined with each keyword when Expand queries is on. Tuned for CB Insights.

## `maxPagesPerQuery` (type: `integer`):

Google rarely returns more than ~30 pages for one query.

## `maxConcurrency` (type: `integer`):

How many queries run in parallel.

## Actor input object example

```json
{
  "keywords": [
    "startup",
    "venture"
  ],
  "location": "",
  "customDomains": [
    "@gmail.com",
    "@yahoo.com"
  ],
  "maxEmails": 20,
  "countryCode": "",
  "expandQueries": true,
  "queryModifiers": [
    "email",
    "contact",
    "press",
    "partnerships",
    "sales"
  ],
  "maxPagesPerQuery": 30,
  "maxConcurrency": 5
}
```

# Actor output Schema

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

Records produced by CB Insights Email Scraper, stored in the run's default dataset.

# 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 = {
    "keywords": [
        "startup",
        "venture"
    ],
    "location": "",
    "customDomains": [
        "@gmail.com",
        "@yahoo.com"
    ],
    "countryCode": "",
    "queryModifiers": [
        "email",
        "contact",
        "press",
        "partnerships",
        "sales"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("neuro-scraper/cb-insights-email-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 = {
    "keywords": [
        "startup",
        "venture",
    ],
    "location": "",
    "customDomains": [
        "@gmail.com",
        "@yahoo.com",
    ],
    "countryCode": "",
    "queryModifiers": [
        "email",
        "contact",
        "press",
        "partnerships",
        "sales",
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("neuro-scraper/cb-insights-email-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 '{
  "keywords": [
    "startup",
    "venture"
  ],
  "location": "",
  "customDomains": [
    "@gmail.com",
    "@yahoo.com"
  ],
  "countryCode": "",
  "queryModifiers": [
    "email",
    "contact",
    "press",
    "partnerships",
    "sales"
  ]
}' |
apify call neuro-scraper/cb-insights-email-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,neuro-scraper/cb-insights-email-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/NGSE8n2uAIFqERAZB/builds/VdInrF198hc5Ezzeq/openapi.json
