# B2B Company Decision Maker & Email Finder (`knobby_wallpaper/b2b-company-decision-maker-finder`) Actor

Find verified Founders, C-Level executives (CEO, CTO, CMO), and directors with direct work emails and LinkedIn profiles from any company domain or website.

- **URL**: https://apify.com/knobby_wallpaper/b2b-company-decision-maker-finder.md
- **Developed by:** [Apex Data Solutions](https://apify.com/knobby_wallpaper) (community)
- **Security:** Limited permissions
- **Stats:** 1 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-usage

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

## 💼 B2B Company Decision Maker & Email Finder

> Extract verified Founders, C-Level executives (CEO, CTO, CMO, CFO), Vice Presidents, and Directors with direct work emails, LinkedIn profiles, and company firmographics from any website or domain. Powered by a real-time database of **1B+ professional profiles** and **115M companies**.

***

### ⚡ Why Use This Actor Over Traditional LinkedIn Scrapers?

| Traditional LinkedIn Scrapers | **B2B Company Decision Maker & Email Finder** |
| :--- | :--- |
| ❌ Requires your personal LinkedIn cookie (`li_at`) | ✅ **Zero login or cookie required** (100% account safety) |
| ❌ Needs expensive residential proxies ($10–$20/GB) | ✅ **No proxy costs** — direct API-speed enrichment |
| ❌ Slow (15–30s per profile) & fails on CAPTCHAs | ✅ **Sub-second response** (<0.5s per company) |
| ❌ Breaks whenever LinkedIn updates their frontend DOM | ✅ **Resilient database backend** (100% uptime) |
| ❌ Missing verified corporate emails | ✅ **Deep email enrichment** (direct work & personal emails) |

***

### 🚀 Key Features

- **Instant Decision Maker Identification:** Extract key decision-makers filtered strictly by title tier:
  - 👑 **Founders & Co-Founders**
  - 👔 **C-Level Executives** (`CEO`, `CTO`, `CMO`, `CFO`, `COO`, `Chief Legal Officer`)
  - 📈 **Vice Presidents (VP)**
  - 🎯 **Directors & Department Heads**
  - 👥 **Managers** (Optional)
- **Direct Contact Enrichment:** Uncovers verified direct corporate emails (`name@company.com`), personal emails, and social profiles (LinkedIn & Twitter/X).
- **Company Firmographics:** Enriches company details including verified Legal Name, Industry, Headcount/Employee Range, HQ Location, and Company LinkedIn.
- **Super Simple Input:** Paste a list of URLs or domains directly from Excel/Google Sheets into the text box, or pass structured JSON arrays for API workflows.
- **Smart Filter Toggle:** Enable *"Only Save Leads With Direct Email"* to filter out any contact without a verified work email, ensuring your exported CSV is 100% outreach-ready.

***

### 🎯 Ideal Use Cases

1. **B2B Outbound & Sales Development (SDRs / BDRs):** Fill your CRM (HubSpot, Salesforce, Smartlead, Instantly) with direct decision-maker emails from target account lists.
2. **E-Commerce Agencies:** Pair this tool with Shopify/e-com store lists to instantly find the store founders and CMOs.
3. **Executive Recruiting:** Source senior leadership contacts across target tech and enterprise companies.
4. **Investor & Partnership Sourcing:** Find founders, managing partners, and corporate development heads in seconds.

***

### 📥 Input Configuration

#### Option A: Paste Domains Directly (Recommended for Manual Runs)

Simply paste your list of domains or URLs into the text box:

```text
allbirds.com
https://www.gymshark.com
ouraring.com
supercell.com
```

#### Option B: JSON / API Configuration

```json
{
  "domainsText": "allbirds.com\ngymshark.com\nouraring.com",
  "titleRoles": [
    "founder",
    "cxo",
    "vp",
    "director"
  ],
  "maxLeadsPerCompany": 3,
  "enrichEmails": true,
  "onlyWithEmails": false
}
```

#### Input Parameters

| Parameter | Type | Required | Default | Description |
| :--- | :--- | :--- | :--- | :--- |
| `domainsText` | `String (Textarea)` | No | `""` | Paste domains or website URLs (one per line). Ideal for Excel / Sheets copy-pasting. |
| `domains` | `Array<string>` | No | `[]` | List of target company domains or URLs for API calls. |
| `titleRoles` | `Array<string>` | No | `["founder", "cxo", "vp", "director"]` | Seniority levels to include (`founder`, `cxo`, `vp`, `director`, `manager`). |
| `maxLeadsPerCompany` | `Integer` | No | `3` | Maximum decision makers to extract per company (1–20). |
| `enrichEmails` | `Boolean` | No | `true` | When true, retrieves direct work and personal emails. |
| `onlyWithEmails` | `Boolean` | No | `false` | When true, only outputs leads that have verified work emails. |
| `sputnikApiKey` | `String` | No | `null` | Optional custom Sputnik.io API key. Uses partner pipeline by default. |

***

### 📤 Sample Output Record

```json
{
  "companyDomain": "gymshark.com",
  "companyName": "Gymshark",
  "companyIndustry": "Sporting Goods",
  "companyEmployeeCount": 2597,
  "companyLocation": "Solihull, West Midlands",
  "companyLinkedinUrl": "https://www.linkedin.com/company/gymshark",
  "status": "ENRICHED",
  "fullName": "Ben Francis MBE",
  "firstName": "Ben",
  "lastName": "Francis MBE",
  "jobTitle": "Chief Executive Officer",
  "seniority": "cxo",
  "headline": "CEO & Founder of Gymshark",
  "primaryWorkEmail": "ben.francis@gymshark.com",
  "workEmails": [
    "ben.francis@gymshark.com",
    "ben@gymshark.com"
  ],
  "personalEmails": [],
  "linkedinUrl": "https://linkedin.com/in/gymshark",
  "twitterUrl": null,
  "locality": "Solihull, England, United Kingdom",
  "countryCode": "gb",
  "hasWorkEmail": true,
  "hasPersonalEmail": false,
  "enrichedAt": "2026-10-06T10:52:51.246515+00:00"
}
```

***

### 💡 Integration Examples

#### Python (Apify Client)

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_APIFY_TOKEN>")

run_input = {
    "domainsText": "allbirds.com\ngymshark.com\nouraring.com",
    "titleRoles": ["founder", "cxo"],
    "maxLeadsPerCompany": 2,
    "enrichEmails": True,
    "onlyWithEmails": True
}

run = client.actor("knobby_wallpaper/b2b-company-decision-maker-finder").call(run_input=run_input)

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(f"{item['fullName']} ({item['jobTitle']}): {item['primaryWorkEmail']}")
```

#### Exporting to Google Sheets & CRMs

Once the run finishes, click **Export** on the Apify dataset and choose **CSV** or **Excel**. The columns (`companyName`, `fullName`, `jobTitle`, `primaryWorkEmail`, `linkedinUrl`) are standardized for 1-click import into HubSpot, Apollo, Smartlead, Instantly, and Lemlist.

***

### 🔒 Data Privacy & Compliance

All contact information is sourced from publicly indexed business registries and professional profile datasets in strict adherence to applicable B2B legitimate interest communication standards. Misses and not-found profiles carry zero cost.

# Actor input Schema

## `domainsText` (type: `string`):

Paste company domains or website URLs here, one per line (e.g., allbirds.com, gymshark.com, ouraring.com). Perfect for pasting straight from Excel or Google Sheets.

## `domains` (type: `array`):

Alternative structured list of domains or URLs for API calls and integrations.

## `titleRoles` (type: `array`):

Select the decision-maker tiers to retrieve for each company.

## `maxLeadsPerCompany` (type: `integer`):

Maximum number of top decision makers to extract per company domain.

## `enrichEmails` (type: `boolean`):

Deeply enrich each contact to extract verified direct corporate emails, personal emails, Twitter/X, and direct LinkedIn profile.

## `onlyWithEmails` (type: `boolean`):

When enabled, only outputs decision makers who have at least one verified work email address.

## `sputnikApiKey` (type: `string`):

Optional custom API key from Sputnik.io. If left blank, the built-in partner pipeline is used automatically.

## Actor input object example

```json
{
  "domainsText": "allbirds.com\ngymshark.com\nouraring.com",
  "domains": [],
  "titleRoles": [
    "founder",
    "cxo",
    "vp",
    "director"
  ],
  "maxLeadsPerCompany": 3,
  "enrichEmails": true,
  "onlyWithEmails": false
}
```

# Actor output Schema

## `decisionMakers` (type: `string`):

Dataset containing verified decision makers with company details, job titles, and direct contact emails.

# 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 = {
    "domainsText": `allbirds.com
gymshark.com
ouraring.com`,
    "titleRoles": [
        "founder",
        "cxo",
        "vp",
        "director"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("knobby_wallpaper/b2b-company-decision-maker-finder").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 = {
    "domainsText": """allbirds.com
gymshark.com
ouraring.com""",
    "titleRoles": [
        "founder",
        "cxo",
        "vp",
        "director",
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("knobby_wallpaper/b2b-company-decision-maker-finder").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 '{
  "domainsText": "allbirds.com\\ngymshark.com\\nouraring.com",
  "titleRoles": [
    "founder",
    "cxo",
    "vp",
    "director"
  ]
}' |
apify call knobby_wallpaper/b2b-company-decision-maker-finder --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,knobby_wallpaper/b2b-company-decision-maker-finder"
        }
    }
}
```

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/CBxZQvqaLOpTYIf2e/builds/Vv0whtT1YcoYwZw2b/openapi.json
