# Decision Maker Email Finder — Skip the info@ Inbox (`vonsensey/decision-maker-email-finder`) Actor

Reach a named person instead of a shared mailbox. From any list of company websites this keeps the published founder, owner and executive addresses and drops generic info@ and support@ inboxes, one row per company, deliverability checked.

- **URL**: https://apify.com/vonsensey/decision-maker-email-finder.md
- **Developed by:** [Blackcube Agency AB](https://apify.com/vonsensey) (community)
- **Categories:** Lead generation, Marketing, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $8.00 / 1,000 contact records

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
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?

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

## Decision Maker Email Finder — Skip the info@ Inbox

<table style="border-collapse:collapse;width:100%;margin:0 0 4px">
<tr><td colspan="3" style="padding:9px 12px;background:#0B6E75;border:1px solid #0B6E75"><span style="color:#FFFFFF;font-weight:700;font-size:13px;letter-spacing:.3px">Website Contact &amp; Email Suite</span><span style="color:#CFF0F2;font-size:12px"> &nbsp;&bull;&nbsp; 9 Actors, one codebase, one contact record billed once</span></td></tr>
<tr><td style="padding:9px 12px;border:1px solid #E5E7EB;background:#FFFFFF;vertical-align:top;width:33%"><a href="https://apify.com/vonsensey/website-contact-email-extractor" style="color:#111827;font-weight:700;font-size:13px;text-decoration:none">Website Contact &amp; Email Extractor</a><br><span style="color:#6B7280;font-size:11px">Verified Emails + Socials</span></td><td style="padding:9px 12px;border:1px solid #E5E7EB;background:#FFFFFF;vertical-align:top;width:33%"><a href="https://apify.com/vonsensey/b2b-leads-finder" style="color:#111827;font-weight:700;font-size:13px;text-decoration:none">B2B Leads Finder</a><br><span style="color:#6B7280;font-size:11px">Verified Emails, Phones &amp; Socials</span></td><td style="padding:9px 12px;border:1px solid #E5E7EB;background:#FFFFFF;vertical-align:top;width:33%"><a href="https://apify.com/vonsensey/company-contact-scraper" style="color:#111827;font-weight:700;font-size:13px;text-decoration:none">Company Contact Scraper</a><br><span style="color:#6B7280;font-size:11px">Emails, Phones &amp; Socials</span></td></tr>
<tr><td style="padding:9px 12px;border:1px solid #E5E7EB;background:#FFFFFF;vertical-align:top;width:33%"><a href="https://apify.com/vonsensey/website-phone-number-scraper" style="color:#111827;font-weight:700;font-size:13px;text-decoration:none">Phone Number Scraper</a><br><span style="color:#6B7280;font-size:11px">Business Numbers From Any Website</span></td><td style="padding:9px 12px;border:1px solid #E5E7EB;background:#FFFFFF;vertical-align:top;width:33%"><a href="https://apify.com/vonsensey/mx-verified-email-finder" style="color:#111827;font-weight:700;font-size:13px;text-decoration:none">MX Verified Email Finder</a><br><span style="color:#6B7280;font-size:11px">Deliverable Business Emails</span></td><td style="padding:9px 12px;border:1px solid #E5E7EB;background:#FFFFFF;vertical-align:top;width:33%"><a href="https://apify.com/vonsensey/website-email-scraper" style="color:#111827;font-weight:700;font-size:13px;text-decoration:none">Website Email Scraper</a><br><span style="color:#6B7280;font-size:11px">Verified Emails From Any Site</span></td></tr>
<tr><td style="padding:9px 12px;border:1px solid #E5E7EB;background:#ECFDF5;vertical-align:top;width:33%"><span style="color:#0B6E75;font-weight:700;font-size:13px">Decision Maker Email Finder</span><br><span style="color:#0B6E75;font-size:11px;font-weight:600">&#10148; You are here</span></td><td style="padding:9px 12px;border:1px solid #E5E7EB;background:#FFFFFF;vertical-align:top;width:33%"><a href="https://apify.com/vonsensey/contact-page-scraper" style="color:#111827;font-weight:700;font-size:13px;text-decoration:none">Contact Page Scraper</a><br><span style="color:#6B7280;font-size:11px">Emails, Phones &amp; Socials by Site</span></td><td style="padding:9px 12px;border:1px solid #E5E7EB;background:#FFFFFF;vertical-align:top;width:33%"><a href="https://apify.com/vonsensey/bulk-domain-email-finder" style="color:#111827;font-weight:700;font-size:13px;text-decoration:none">Email Finder</a><br><span style="color:#6B7280;font-size:11px">Business Emails From a List of Domains</span></td></tr>
</table>

**More from this account:** [YouTube Transcript Suite](https://apify.com/vonsensey/youtube-transcript-scraper) · [Career Site & ATS Jobs Suite](https://apify.com/vonsensey/career-page-job-postings-scraper-api) · [Google News Suite](https://apify.com/vonsensey/google-news-scraper-api) · [Keyword Research Suite](https://apify.com/vonsensey/google-keyword-ideas-scraper) · [Shopify Store Intelligence Suite](https://apify.com/vonsensey/shopify-store-leads-scraper) · [eBay Data Suite](https://apify.com/vonsensey/ebay-scraper-api) · [Amazon Reviews Suite](https://apify.com/vonsensey/amazon-reviews-scraper-api) · [Reddit](https://apify.com/vonsensey/reddit-scraper-posts-comments-api) · [Meta Ad Library](https://apify.com/vonsensey/facebook-ads-library-scraper-meta-ad-api) · [Vinted](https://apify.com/vonsensey/vinted-scraper-api) · [Trustpilot Review Intelligence Suite](https://apify.com/vonsensey/trustpilot-reviews-scraper) · [App Store & Google Play Reviews Suite](https://apify.com/vonsensey/app-store-google-play-reviews-scraper) · [Amazon Product Data Suite](https://apify.com/vonsensey/amazon-product-scraper-api)

Reach a named person instead of a shared mailbox. From any list of company websites this keeps the published founder, owner and executive addresses and drops generic info@ and support@ inboxes, one row per company, deliverability checked.

**You pay per company we find a real contact for.** Websites with no contacts, failed sites,
and records carrying only social links are delivered free.

### What it does

Cold outreach dies in shared inboxes. Every address a company publishes is sorted by who actually reads it — founder and owner, named individual, sales, support, HR, billing — and this listing keeps only the top two, so info@, hello@ and noreply@ never reach your sequence. Widen it to sales or press contacts whenever you want; companies with nothing decision-maker-shaped come back as a free row rather than a charge.

This listing returns every contact role it finds. Set `roleFilter` to keep only executives, sales, HR and so on.

### Billed per company, not per page

Most contact scrapers bill **per page crawled**, so a headline like "$2 per 1,000" becomes a
much larger invoice the moment one site with deep navigation gets crawled for hundreds of
pages. That mismatch is the single most common complaint in this category, and it is why a
well-known rival sits at 1.89 stars.

Here, one company is one row and one charge, however many pages it took to find the contact.

### What you get per company

| Field | What it is |
|---|---|
| `emails[]` | `{ address, role, foundOn, verification }` — every address says what it is, where it came from, and how it verified |
| `primaryEmail` | the single best address, already picked for you |
| `phones[]` | normalised to E.164 |
| `socials` | LinkedIn, X, Facebook, Instagram, YouTube and more, keyed by network |
| `companyName`, `address`, `description` | company identity, taken from the site's own markup |
| `domain`, `emailCount`, `phoneCount`, `pagesCrawled` | the registrable domain, already deduplicated, plus what the row cost to find |

Paste `acme.io`, `https://www.acme.io/` and `https://acme.io/pricing?utm_source=news` and
you get **one** record, charged **once**. Deduplication happens by registrable domain across
the whole run, on both input and output — no second merge-and-dedupe actor required.

### Honest about verification

Verification is a real MX check, not a guess, and every address says which it is. Addresses
that cannot be verified are still delivered and still labelled, rather than being quietly
dropped or silently presented as confirmed.

Generic addresses (`info@`, `hello@`) are tagged rather than binned, so you decide: keep
them, or set `excludeGenericEmails` and never see them.

### Pricing

Per company with at least one email or phone number, by your Apify plan:

| Plan tier | Per 1,000 companies |
|---|---:|
| Free | $20.00 |
| Bronze | $12.00 |
| Silver | $10.00 |
| **Gold** | **$8.00** |
| Platinum | $8.00 |
| Diamond | $8.00 |

Free: companies with no reachable contact, failed and unreachable sites, and records holding
only social links. Set `skipDomainsWithoutContacts` to leave those rows out of the export
entirely — they cost nothing either way.

### Use it from anywhere

```bash
curl -X POST "https://api.apify.com/v2/acts/vonsensey~decision-maker-email-finder/run-sync-get-dataset-items?token=YOUR_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{"domains":["stripe.com","apify.com"]}'
```

```python
from apify_client import ApifyClient
client = ApifyClient("YOUR_TOKEN")
run = client.actor("vonsensey/decision-maker-email-finder").call(run_input={
    "domains": ["stripe.com", "apify.com"],
})
for row in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(row.get("domain"), row.get("primaryEmail"), row.get("phones"))
```

Also available through the Apify integrations for **n8n, Make and Zapier**, and via **MCP** for
AI agents. Feed the output straight into a CRM — one row per company is already the shape a
CRM import expects.

### Legal and responsible use

Reads **public business contact pages only** — the addresses a company publishes so it can be
contacted. No login, no paywall circumvention, no private or personal data, and nothing behind
authentication.

You are responsible for how you use the output. In the EU/UK that means a lawful basis under
GDPR/PECR for any outreach, an honest sender identity, and honouring opt-outs. This is a tool
for reaching businesses that published a contact address, not for bulk unsolicited mail.

### The rest of the family

- [Website Contact & Email Extractor — Verified Emails + Socials](https://apify.com/vonsensey/website-contact-email-extractor)
- [B2B Leads Finder — Verified Emails, Phones & Socials](https://apify.com/vonsensey/b2b-leads-finder)
- [Company Contact Scraper — Emails, Phones & Socials](https://apify.com/vonsensey/company-contact-scraper)
- [Phone Number Scraper — Business Numbers From Any Website](https://apify.com/vonsensey/website-phone-number-scraper)
- [MX Verified Email Finder — Deliverable Business Emails](https://apify.com/vonsensey/mx-verified-email-finder)
- [Website Email Scraper — Verified Emails From Any Site](https://apify.com/vonsensey/website-email-scraper)
- [Contact Page Scraper — Emails, Phones & Socials by Site](https://apify.com/vonsensey/contact-page-scraper)
- [Email Finder — Business Emails From a List of Domains](https://apify.com/vonsensey/bulk-domain-email-finder)

Issues and requests go in the **Issues** tab — first response within 24 hours.

> **Run it without configuring anything** — [Find named decision-maker emails](https://apify.com/vonsensey/decision-maker-email-finder/examples/named-decision-maker-emails), a ready-made example you can start as-is or copy.

### Use cases

- **Turn a domain list into CRM rows.** Company URLs in, one de-duplicated row out per company with email, phone and social profiles.
- **Enrich a list you already have.** You have the companies but not the contacts — this fills the gap without a data-vendor subscription.
- **Reach a person, not an inbox.** Prefer a named contact over the generic info@ address where the site publishes one.
- **Re-run weekly.** Sites add and change contacts constantly; a schedule keeps the list current instead of ageing out.

### Run it on a schedule

A one-off pull answers a question; a schedule answers it every day without you. Open **Schedules** in the Apify Console, point a cron at this Actor, and the dataset keeps filling on its own — no server, no cron box, no babysitting. Everything here is built to be re-run: you are billed per contact record delivered, so a scheduled run that finds nothing new costs nothing.

### FAQ

#### Are the email addresses verified?

Yes. Every address is checked against the domain's real mail servers (MX) and tagged role vs personal, so an undeliverable address does not reach your CRM.

#### Do I pay for websites that return nothing?

No. Sites that are unreachable, blocked or simply have no published contact details come back as free rows with a reason.

#### Can I pass bare domains instead of full URLs?

Yes. `example.com` and `https://example.com/contact` are both accepted, and both resolve to the same company row.

#### How is this different from a lead database?

Nothing here is a stale purchased list. Every row is read from the live website at the moment you run it.

***

Something wrong, or a field you need that is missing? Open an issue on the **Issues** tab — it is read and it gets fixed. If this saved you time, a rating on the Store page helps the next person find it.

# Actor input Schema

## `startUrls` (type: `array`):

The company websites to extract contacts from. Paste full URLs or bare domains — both work. Several URLs for the same company collapse into ONE result row, and you are charged once for it.

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

Optional alternative to the field above for pasting a plain list of domains (e.g. acme.io, berg.se). Merged with Websites and de-duplicated by company domain.

## `maxPagesPerDomain` (type: `integer`):

Hard cap on pages crawled per company. The crawler spends this budget on the highest-value pages first (imprint, contact, about, team) rather than crawling blindly, so a low number still finds the good addresses. Total pages for the run can never exceed websites × this number — runaway crawls are impossible.

## `verifyEmails` (type: `boolean`):

Check every email's domain for a working mail exchanger (MX/DNS) and flag disposable, free-provider, and shared role inboxes. Included in the per-result price — there is no extra charge. Note: this is a domain-level deliverability check, not a per-mailbox SMTP probe.

## `roleFilter` (type: `array`):

Keep only emails classified as these roles. Leave empty to return every address. A company whose contacts are all filtered out becomes a free, unbilled row.

## `excludeGenericEmails` (type: `boolean`):

Shortcut that keeps only executive and named-person addresses, dropping every generic inbox (info@, support@, noreply@). Overrides the role list above.

## `skipDomainsWithoutContacts` (type: `boolean`):

By default a website with no contacts still returns a free row explaining why (dead domain, blocked, nothing published), which makes gaps in your list auditable. Turn this on to omit those rows entirely. Either way, they are never charged.

## `respectRobotsTxt` (type: `boolean`):

Skip pages disallowed by each site's robots.txt. Off by default because many sites disallow crawlers wholesale, which would return no contacts for pages that are publicly visible in any browser.

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

How many pages to fetch in parallel across all websites. Lower it if you are crawling a small number of sites and want to be gentler on them.

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

Apify Proxy on automatic selection is the default: it picks a datacenter IP, which is enough for ordinary company websites and is what keeps the price low. It also works on every Apify plan — pinning a specific proxy group would fail for accounts that do not have it. Switch to residential only if you see 'blocked' rows from sites behind aggressive bot protection.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://basecamp.com"
    },
    {
      "url": "https://37signals.com"
    },
    {
      "url": "https://www.hetzner.com"
    }
  ],
  "maxPagesPerDomain": 15,
  "verifyEmails": true,
  "roleFilter": [],
  "excludeGenericEmails": true,
  "skipDomainsWithoutContacts": false,
  "respectRobotsTxt": false,
  "maxConcurrency": 20,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `contacts` (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 = {
    "startUrls": [
        {
            "url": "https://basecamp.com"
        },
        {
            "url": "https://37signals.com"
        },
        {
            "url": "https://www.hetzner.com"
        }
    ],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("vonsensey/decision-maker-email-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 = {
    "startUrls": [
        { "url": "https://basecamp.com" },
        { "url": "https://37signals.com" },
        { "url": "https://www.hetzner.com" },
    ],
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("vonsensey/decision-maker-email-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 '{
  "startUrls": [
    {
      "url": "https://basecamp.com"
    },
    {
      "url": "https://37signals.com"
    },
    {
      "url": "https://www.hetzner.com"
    }
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call vonsensey/decision-maker-email-finder --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,vonsensey/decision-maker-email-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/dVxbyH37WmNupiwrF/builds/hivB2BmLiPPYJTIGg/openapi.json
