# Decision Maker Finder | Find CEOs, Founders, Emails (`aurelix/decision-maker-finder`) Actor

Extract company decision makers at $0.90 per 1,000 people from many domains per run, returning only contacts the company published itself, never pattern-guessed emails. Find decision makers' emails, CEOs, founders, VPs and department heads: name, title, seniority, function, LinkedIn.

- **URL**: https://apify.com/aurelix/decision-maker-finder.md
- **Developed by:** [Aurelix](https://apify.com/aurelix) (community)
- **Categories:** Lead generation, Business
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.70 / 1,000 decision maker results

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?

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 is Decision Maker Finder?

**Turn company domains into the founders, CEOs, VPs and department heads they publish, with titles, seniority and work emails where shown, for $0.90 per 1,000 people, no login.**

For B2B sales and recruiting teams. Names come from each company's own team and leadership pages, with the page URL; emails are never pattern-guessed. Your first run with the example input costs about $0.018 (18 decision-makers in our test run).

[![Decision Maker Finder: example output from a real run](https://api.apify.com/v2/key-value-stores/twkCCtTWzsi8fVbx5/records/decision-maker-finder-card-v2.png)](https://console.apify.com/actors/KxUyCSNyysD86a4Za?addFromActorId=KxUyCSNyysD86a4Za)

[![Decision Maker Finder: 75-second demo video](https://api.apify.com/v2/key-value-stores/twkCCtTWzsi8fVbx5/records/decision-maker-finder-demo-thumb-v1.png)](https://api.apify.com/v2/key-value-stores/twkCCtTWzsi8fVbx5/records/decision-maker-finder-demo-v1.mp4)

**[▶ Watch the 75-second demo](https://api.apify.com/v2/key-value-stores/twkCCtTWzsi8fVbx5/records/decision-maker-finder-demo-v1.mp4)**

| | |
|---|---|
| **Input** | Company domains or website URLs |
| **Filters** | Seniority (founder to staff) and function (sales, marketing, engineering, product, HR, finance, legal, operations and more) |
| **Output** | 12 fields per decision-maker; JSON, CSV, Excel, API |
| **Automate** | Schedules, webhooks, Zapier, Make, n8n, Google Sheets, MCP for AI agents |
| **Price** | $0.90 per 1,000 decision-makers ($0.70 per 1,000 decision-makers on paid Apify plans) |
| **Login needed** | No |

### Why Decision Maker Finder users pick this one

- **Only what companies publish.** Names and titles from their own team pages, with the URL.
- **Ready to filter.** Every person classified by seniority and function.
- **English and French titles.** Directeur général and Vice-présidente ventes are read correctly.
- **No noise.** Board members, advisors, investors and testimonials are left out.
- **Nothing found, nothing charged.** Companies with no matching people cost only the start fee.

### Get started in 3 steps

1. Paste company domains or website URLs, one per line, e.g. sparkbox.com or https://rlb.ca.
2. Optionally pick seniority levels (default: founders, C-suite, partners, VPs, heads, directors) and functions such as sales or marketing.
3. Click Start, then download JSON, CSV or Excel, or send the rows to your CRM, Google Sheets, Zapier, Make or n8n through the API.

**[▶ Try it with the example input](https://console.apify.com/actors/KxUyCSNyysD86a4Za?addFromActorId=KxUyCSNyysD86a4Za)**

The form opens with an example input already filled in: that run costs about $0.018 on the free plan.

### How much does it cost to find company decision-makers?

Pay per event: you pay only for what the run returns, plus a small start fee. Bronze, Silver, Gold and higher Apify plans pay less per result.

| Decision-makers | Free plan | Paid plans (Bronze, Silver, Gold) |
|---|---|---|
| 100 | $0.092 | $0.072 |
| 1,000 | $0.90 | $0.70 |
| 10,000 | $9.00 | $7.00 |

Totals include the $0.002 start fee per run, rounded to the cent (amounts under $0.10 to four decimals). Apify's free plan includes $5 of credit a month, enough for about 5,500 decision-makers.

Companies without matching people, unreachable or robots-blocked sites, suppressed domains, names or emails, and pages read are not charged.

#### Billing events

| Event | Free plan | Paid plans (Bronze, Silver, Gold) |
|---|---|---|
| `decision-maker-result` | $0.90 per 1,000 decision-makers | $0.70 per 1,000 decision-makers |
| `apify-actor-start` | $0.002 per run | $0.002 per run |

### Benchmarks: how we compare

| Test | Input | Result |
|---|---|---|
| Prefilled first run | The example input | 18 decision-makers, $0.018 charged in total |
| Measured run | 6 companies | 43 decision-makers in 86 s |
| Measured run | 3 companies | 23 decision-makers in 9.5 s |
| No-result run | 4 domains: 2 unreachable, 2 with no decision-makers published | Finished in 4.6 s, nothing charged beyond the start fee |
| Accuracy check | 8 company sites not used in development | 55 decision-makers from 5 sites; every name and title found paired on its source page. One was a customer quote on a use-case page (since fixed). 3 sites returned nothing: a JavaScript-only team page, titles only on bio pages, no team page |
| Board and investor exclusion | 7 sites with board, advisor or investor sections | 35 such people on the pages, 0 returned |
| Run-timeout test | Run timeout set to 45 s | Run succeeded in about 40 s, results so far saved, status says it stopped early |
| Charging test | Empty, invalid, dead, rate-limited (HTTP 429), robots-blocked and fully suppressed inputs | No decision-maker charged; on normal runs charges equal the rows returned |

Run times and counts are from single runs on Apify at 256 MB memory, plain HTTP, no proxy. The accuracy check compared every returned name and title with the live source page. The charging test used local runs with Apify's pay-per-event emulation. Small samples: treat them as indicative, not as averages.

### What data you get

**Decision Maker Finder** turns a list of company domains into one row per decision-maker found on the company's own team, leadership and about pages: name, title, seniority, function, company, and the work email, phone, LinkedIn and X profile only where the page publishes them with that person. Filter by seniority (founder/owner, C-suite, partner, VP, head, director) and function (sales, marketing, engineering, HR, finance and more). Nothing is guessed: no email patterns, no verification pings.

- name, title, seniority, function
- work_email, work_phone, linkedin_url, twitter_url (only when published with the person)
- company_name, domain, website, company_linkedin_url
- source_url (the page the person is published on), scraped_at (ISO 8601 UTC)

| name | title | seniority | function | company_name | work_email |
|---|---|---|---|---|---|
| Brian Williams | Co-Founder & CEO | founder_owner | executive | Viget |  |
| Becky Dunbar | Chief Financial Officer | c_suite | finance | thoughtbot |  |
| Lindsey Christensen | VP of Marketing | vp | marketing | thoughtbot |  |
| Kyle Stahlbaum | Director of IT | director | engineering | RLB |  |
| Jim McConnery | Managing Partner Ottawa | partner | executive | Welch LLP | jmcconnery@welchllp.com |
| Dawn Delatte | Head of Product & Design | head | product | thoughtbot |  |

One full decision-maker record, exactly as a real run returned it (long text and lists shortened here). From a real run:

```json
{
  "name": "Leanne Radcliffe",
  "title": "Chief Talent Officer",
  "seniority": "c_suite",
  "function": "hr",
  "work_email": null,
  "work_phone": null,
  "linkedin_url": null,
  "twitter_url": null,
  "company_name": "RLB",
  "domain": "rlb.ca",
  "website": "https://www.rlb.ca/",
  "company_linkedin_url": "https://www.linkedin.com/company/rlb-llp",
  "source_url": "https://www.rlb.ca/team-members/",
  "scraped_at": "2026-11-04T11:26:18Z"
}
```

### Use cases

- SDRs mapping the founders, C-suite and VPs at target accounts
- Agencies and consultants finding the marketing or sales lead at each prospect
- Recruiters identifying the head of a department before reaching out
- Account-based marketing teams checking who leads each function at a company

### Use-case recipes

#### Owners and CEOs of small firms

For agencies and B2B vendors selling to small businesses. Set `seniorities` to founder_owner and c_suite and keep `maxPeoplePerCompany` low, so each company gives its top one to three people. Import `name`, `title` and `company_name` into your CRM, and open `source_url` to check each person before you write.

```json
{
  "domains": [
    "sparkbox.com",
    "welchllp.com",
    "rlb.ca"
  ],
  "seniorities": [
    "founder_owner",
    "c_suite"
  ],
  "maxPagesPerDomain": 6,
  "maxPeoplePerCompany": 3
}
```

#### Marketing leaders at target accounts

For account-based marketing and agencies. Set `functions` to marketing and leave `seniorities` empty to get CMOs, VPs, heads and directors. Join the rows back to your account list on `domain`. Where `work_email` is empty, run Company Contact Finder on the same domains for the company's published inbox.

```json
{
  "domains": [
    "sparkbox.com",
    "thoughtbot.com",
    "rlb.ca"
  ],
  "functions": [
    "marketing"
  ],
  "maxPagesPerDomain": 6,
  "maxPeoplePerCompany": 5
}
```

#### The head of HR before a recruiting or HR-tech pitch

For recruiters and HR software vendors. Set `functions` to hr and `seniorities` to c_suite, vp, head and director. The `title` column tells you whether you reach a Chief People Officer or an HR director, and `company_linkedin_url` links the company page for research.

```json
{
  "domains": [
    "rlb.ca",
    "thoughtbot.com",
    "welchllp.com"
  ],
  "functions": [
    "hr"
  ],
  "seniorities": [
    "c_suite",
    "vp",
    "head",
    "director"
  ],
  "maxPagesPerDomain": 6,
  "maxPeoplePerCompany": 5
}
```

#### From a local business list to who runs each business

Run Google Maps Businesses for a category and city first. Its `website` column goes straight into `domains` here. Sort the result by `seniority` to see owners and partners first; companies without a team page return nothing and are not charged.

```json
{
  "domains": [
    "welchllp.com",
    "rlb.ca"
  ],
  "seniorities": [
    "founder_owner",
    "c_suite",
    "partner"
  ],
  "maxPagesPerDomain": 6,
  "maxPeoplePerCompany": 5
}
```

### Input

| Field | Type | What it does | Default |
|---|---|---|---|
| `domains` (Company domains or URLs) | array | One company per entry, e.g. \['sparkbox.com', 'https://www.welchllp.com']. | \["sparkbox.com", "welchllp.com", "rlb.ca"] |
| `maxPagesPerDomain` (Max pages per company) | integer | Pages read per company, homepage included, e.g. 10. | 10 |
| `maxPeoplePerCompany` (Max decision-makers per company) | integer | Cap on people returned (and charged) per company, most senior first, e.g. 25. | 25 |
| `seniorities` (Seniority levels) | array | Levels to return, e.g. \['founder_owner', 'c_suite']. |  |
| `functions` (Functions) | array | Only these functions, e.g. \['sales', 'marketing']. |  |

All 5 fields, with examples: see the **Input** tab.

### Use with AI agents (Apify MCP server, Claude, ChatGPT, n8n AI agent)

Decision Maker Finder is a ready-made tool for AI agents. Through the Apify MCP server an agent reads this Actor's input schema, fills in the input from your request, starts the run and reads the decision-makers back. You pay the same per-result price as a run started by hand, from your own Apify account.

#### Example prompts

- "Find the founders and CEOs listed on the team pages of sparkbox.com, thoughtbot.com and rlb.ca and give me a table with name, title and the page each one is listed on"
- "For these 20 agency websites, list the VP-level and above marketing and sales leaders as a CSV with company name, name and title"
- "Who leads HR or people at each of these companies? Show name, title, and the work email only where the company publishes it"

#### Claude (claude.ai and Claude Desktop)

Open **Settings > Connectors**, choose **Add custom connector**, paste `https://mcp.apify.com/?tools=aurelix/decision-maker-finder` and sign in to Apify when asked. Then ask Claude one of the prompts above.

#### Claude Code, Cursor, VS Code and other MCP clients

```bash
claude mcp add --transport http apify "https://mcp.apify.com/?tools=aurelix/decision-maker-finder"
```

Clients configured with JSON take the same URL:

```json
{
  "mcpServers": {
    "apify": {
      "url": "https://mcp.apify.com/?tools=aurelix/decision-maker-finder"
    }
  }
}
```

A client without Apify sign-in sends the header `Authorization: Bearer <YOUR_APIFY_TOKEN>`; to run the server locally instead, use `npx -y @apify/actors-mcp-server --actors aurelix/decision-maker-finder` with `APIFY_TOKEN` set.

#### ChatGPT

Where your ChatGPT plan offers custom connectors (developer mode), add `https://mcp.apify.com/?tools=aurelix/decision-maker-finder` as a connector, sign in to Apify, and ask for the data in plain words.

#### n8n AI agent

Give an **AI Agent** node an **MCP Client Tool** with the endpoint `https://mcp.apify.com/?tools=aurelix/decision-maker-finder` and a Bearer credential holding your Apify token. The agent can then call Decision Maker Finder whenever a workflow step needs decision-makers; for a fixed, non-agent workflow use Apify's n8n node with **Run Actor** instead.

### Use it from AI agents (MCP), the API or no-code

#### Copy this to your AI assistant

```text
Use the Apify Actor aurelix/decision-maker-finder (Decision Maker Finder) through Apify's MCP server or API. Main input: domains (Company domains or URLs). Example input: {"domains": ["sparkbox.com", "welchllp.com", "rlb.ca"], "seniorities": ["founder_owner", "c_suite", "vp", "director"], "functions": [], "maxPeoplePerCompany": 25}. Each result is one decision-maker with fields such as name, title, seniority, function, work_email, work_phone, linkedin_url, twitter_url. It costs $0.90 per 1,000 decision-makers on Apify's free plan plus a $0.002 start fee per run, and needs no login.
```

MCP server URL for this Actor: `https://mcp.apify.com/?tools=aurelix/decision-maker-finder` (setup for each client in the section above).

#### API

Start a run and read the dataset with Apify's REST API or the Python and JavaScript clients:

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("aurelix/decision-maker-finder").call(run_input={'domains': ['sparkbox.com', 'welchllp.com', 'rlb.ca'], 'seniorities': ['founder_owner', 'c_suite', 'vp', 'director'], 'functions': [], 'maxPeoplePerCompany': 25})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)
```

#### No-code: schedule it in 3 clicks

Send the results to Google Sheets, Zapier, Make, n8n, Slack or any webhook URL.

1. Fill in the input, then click **Save as a new task**.
2. In the task, click **Schedule** and pick daily or weekly (Apify Schedules).
3. Open the task's **Integrations** tab to send every run's results to Slack, Google Sheets, email or any webhook.

Prefer n8n or Make? Ask in the **Issues** tab and we will share a ready-made workflow for it.

### FAQ

#### Can I find company decision-makers without login?

Yes. It never logs in, so you need no company website account, password or cookies; only a free Apify account to run it.

#### Is there a decision-maker finder API?

You can use this Actor as one. Start it with Apify's REST API or the Python and JavaScript clients and read the results as JSON (see the code above), or call it from an AI agent through MCP.

#### How much does it cost to find company decision-makers?

About $0.90 for 1,000 decision-makers on Apify's free plan and $0.70 on paid plans, start fee included. The free $5 monthly credit covers about 5,500 decision-makers.

#### Can I export company decision-makers data to Excel or Google Sheets?

Yes. Download the results as Excel, CSV, JSON, XML or HTML from the run's **Storage** tab, or send them to Google Sheets with Apify's Google Sheets integration or the API.

#### Is it legal to find company decision-makers?

It reads only public data any logged-out visitor can see: companies' own team and leadership pages. It goes at a polite pace, respects robots.txt, never logs in and never solves CAPTCHAs. It returns business contact details the company publishes about its own leaders (name, title, and work email, phone, LinkedIn or X profile only where published); no guessed emails, and anyone on our suppression list is withheld. To have a record removed, open an issue on this Actor's Issues tab; if a site owner formally asks us to stop, this Actor will stop. You are responsible for using the data lawfully, incl. anti-spam and privacy laws; this is not legal advice.

#### How are seniority and function decided?

From the published job title. Seniority: founder_owner (founder, co-founder, owner), c_suite (CEO, CFO, CTO, president, managing director, general manager; a chief of staff is director), partner (partner, principal), vp, head, director, manager, staff. Board members, advisors and investors are excluded: nobody listed under a board, advisor or investor heading, and no board-only title such as Chair, is returned. A person whose title names another organisation or a past role (e.g. 'CEO of Telus', 'Vice President at SoftBank Investment Advisers', 'CEO (Telus)', 'President - Hootsuite', 'Former CTO of Shopify') is left out, whatever the role; a title naming a department, business line or region of the company itself (e.g. 'President, Retail Banking', 'Managing Director, North America') is kept. Function: the department in the title (sales, marketing, engineering, product, hr, finance, legal, operations, customer_service); CEOs, presidents and founders without a department are executive.

#### Will I get an email for everyone?

No. Most companies publish names and titles without personal emails. The work email, phone, LinkedIn and X profile are filled only when the page shows them with that person (an email only when its mailbox spells the person's name); otherwise they are empty. This Actor never guesses an address from a name pattern.

#### Which pages does it read?

The homepage, then team, leadership, management, about and contact pages the site links to (also French), best first, up to 'Max pages per company'. People are taken only from team, leadership and about pages: names on the homepage, contact page, news items, testimonials, partner or customer quotes and partner, customer and case-study pages are skipped, and a title must name a role (no headlines or awards).

#### What is charged?

One decision-maker-result per person returned, after your seniority and function filters. Companies with no matching people, unreachable sites and sites that disallow crawling are not charged apart from the run start fee.

#### Does it respect robots.txt?

Always, and it cannot be switched off.

#### How do I get my data removed?

Open an issue in the Issues tab with the name, email or domain. It is added to the shared suppression list within 7 days.

#### Can I paste website URLs or email addresses instead of domains?

Yes. A bare domain gets https:// added. A full URL works too: the homepage and that page are both used as starting points. An entry such as name@company.com is read as its domain. Entries that are neither a domain nor a URL are skipped and named in the log.

#### How are duplicates handled?

Each site is crawled once per run: viget.com, www.viget.com and https://viget.com/about count as one company. Within a company, a person found on several pages is returned once; a missing email or phone is filled from the other page, and the longer title is kept when it contains the shorter one. An email or phone shown next to more than one person is treated as shared and left empty for all of them.

#### Why is a company missing from the results?

The run's status message counts every company without results and says why: site unreachable, blocked by robots.txt, suppressed on request, no matching decision-makers published, or stopped early before the run timeout. None of these are charged. The log names each company with its reason.

#### How fast is it, and can I cap what a run spends?

Five companies are crawled at a time, with at most two requests per second per site (slower when a site's robots.txt asks for a crawl delay). Each company gets up to 240 s. In our test runs 3 companies took 9.5 s and 6 companies took 86 s. Near the run timeout it starts no new companies and saves what it has. Set a maximum charge per run in Apify and the Actor stops there; the status message says so.

#### Why is our General Counsel, or another senior person, missing?

Seniority comes from keywords in the title. A title without one of them, such as General Counsel, is classed as staff, and staff is not in the default levels. Add staff to `seniorities` (and legal to `functions` if you only want lawyers) to get them. People on pages built only with JavaScript, or listed without a job title, are not found.

#### What format is work_phone in?

International E.164 format, starting with + and the country code. A number written without a country code is read using the site's domain ending: .ca as Canada, .uk as the UK, .com, .net, .org, .io and .co as the US, and other two-letter endings as that country. A person gets a phone only when exactly one number is shown with them, and fax lines are never used.

#### Can I run it on a schedule?

Yes, with an Apify schedule or the API. Each run reads the pages as they are at that moment and returns every matching person again, so each person is charged on every run. There is no new-since-last-run mode; compare runs on `name` and `domain` to spot changes.

### Lawful use

- B2B use only: the data is contact information that companies publish on their own websites. Do not use it for consumer marketing.
- No spam: contact people only with relevant, individual business messages, identify yourself, and honour every opt-out at once.
- You are responsible for complying with the anti-spam and privacy laws that apply to you and to the people you contact, including Canada's CASL, the US CAN-SPAM Act and the EU/UK GDPR (lawful basis, transparency, the right to object).
- Only data published on the company's own public pages is collected: no login, no guessed or generated emails, no email verification pings and no sensitive data.
- Data is returned as shown publicly on the company's own pages; anyone can ask for removal by opening an issue in this Actor's Issues tab (see Removal requests).
- Work email, phone, LinkedIn and X only when shown with that person; emails are never pattern-guessed.

### Removal requests

Anyone can ask for their name, email or domain to be removed: open an issue in this Actor's **Issues tab** with the domain, email or name. Requests are honoured within **7 days**: the entry is added to the suppression list that every Aurelix contact Actor checks before returning data, so it is dropped from all future runs.

### Limits (stated honestly)

- Decision-makers are detected with rules from the company's own team and leadership pages, so they are best-effort: verify each name and title before outreach. A title naming only an unfamiliar place (e.g. 'General Manager, Kelowna') can be read as another organisation and left out.
- Only people a company publishes with a job title on its own site are found; companies without a team or leadership page return nothing (and are not charged).
- No JavaScript rendering: team pages built only with JavaScript are not read.
- Titles are classified by keywords; unusual titles fall back to staff seniority or the other function.
- Up to 25 pages per company, two requests per second per site; very large firms with people spread over many pages can be partly covered.
- LinkedIn and X profiles are returned only when linked from the person's own card; a link shared by two people, or a team page that lists profiles apart from the names, gives none.

### Works great with

- **Before this: [Contact Page Scraper](https://apify.com/aurelix/contact-details-scraper)**: same `domains` input: company emails and phones first, then the people
- **Before this: [Google Maps Phone Scraper](https://apify.com/aurelix/google-maps-scraper)**: its `website` column is this Actor's `domains` input

### Related Aurelix tools

Public Aurelix Actors, grouped by the data they collect. All are pay-per-result and need no login.

#### Leads and company data

- **[Contact Page Scraper](https://apify.com/aurelix/contact-details-scraper)**: Published company emails, phones, addresses, social pages and team members from a list of company websites.
- **[Newly Funded Companies Hiring](https://apify.com/aurelix/funded-companies-hiring)**: Companies that just raised money (SEC Form D), with their open roles and business contacts, as a new-only monitor.
- **[Google Maps Phone Scraper](https://apify.com/aurelix/google-maps-scraper)**: Local business lists from Google Maps: phones, websites, ratings, hours, coordinates; optional website emails and socials.
- **[Recently Funded Companies API](https://apify.com/aurelix/recently-funded-companies)**: US companies that just filed an SEC Form D: amount raised, industry, state, executives, confirmed website.
- **[Tech Stack API](https://apify.com/aurelix/tech-stack-detector)**: CMS, e-commerce platform, analytics, ad pixels, chat, CDN and email provider for each domain you enter.

#### Jobs and hiring data

- **[Greenhouse Jobs Scraper](https://apify.com/aurelix/greenhouse-jobs-scraper)**: Live jobs from a company's Greenhouse, Lever, Ashby or SmartRecruiters board, with salary and Canadian province tags.
- **[LinkedIn Jobs Country Filter Scraper](https://apify.com/aurelix/linkedin-jobs)**: Public LinkedIn job postings by keyword and country: title, company, location, seniority, job type, salary text, description.
- **[Multiple Job Boards Scraper](https://apify.com/aurelix/multi-job-board-scraper)**: LinkedIn, about 50 company career sites, Remote OK and We Work Remotely jobs in one deduplicated list.
- **[Remote Job Board Scraper API](https://apify.com/aurelix/remote-jobs-scraper)**: Remote OK and We Work Remotely jobs in one deduplicated list with salary, regions and tags.

#### E-commerce and product data

- **[AliExpress Scraper API](https://apify.com/aurelix/aliexpress-product-search)**: AliExpress search results by keyword: price, discount, rating, units sold, ship-from country and sponsored flag.
- **[Amazon New Releases & Best Sellers](https://apify.com/aurelix/amazon-best-sellers)**: Amazon Best Sellers and New Releases top 100 on 10 marketplaces: rank, ASIN, price, rating, rank change.
- **[Shopify Product Export Scraper](https://apify.com/aurelix/shopify-products-scraper)**: Every public product of any Shopify store with variants, SKUs, prices, barcodes, stock counts and collections.

#### Ad intelligence

- **[Competitor Watch](https://apify.com/aurelix/competitor-watch)**: One report per competitor with only what is new: Meta and TikTok ads, page changes, Shopify products and prices, jobs.
- **[Facebook Ad Library Search & API](https://apify.com/aurelix/facebook-ad-library-scraper)**: Facebook and Instagram business ads from the Meta Ad Library: copy, creatives, landing pages, dates, optional EU reach.

#### Canada and government data

- **[Canada Building Permits](https://apify.com/aurelix/canada-building-permits-scraper)**: Building permits and development applications from 7 Canadian cities: address, type, status, dates, value, applicant, contractor and Toronto planner contact.

#### AI, content and SEO

- **[Google Trends by Region](https://apify.com/aurelix/google-trends-scraper)**: Google Trends interest over time, by region and rising queries for any number of keywords, plus trending searches.
- **[Google Autocomplete API](https://apify.com/aurelix/google-autocomplete-scraper)**: Expands seed keywords into hundreds of real Google and YouTube autocomplete phrases, tagged by search intent.
- **[PDF Table Extraction & PDF to Markdown OCR](https://apify.com/aurelix/pdf-to-markdown)**: Turns linked PDF and Word files into Markdown per page, with tables as JSON rows, RAG chunks and OCR.
- **[Broken Link Crawler & SEO Audit](https://apify.com/aurelix/seo-audit-crawler)**: Audits a whole site: one row per page with SEO checks and broken links, plus a ranked issues summary.
- **[Website to Markdown API](https://apify.com/aurelix/website-to-markdown)**: Crawls a site and returns one row of clean main-content Markdown per page, with title, headings and links.
- **[YouTube Transcript Scraper](https://apify.com/aurelix/youtube-transcript-scraper)**: Returns YouTube video transcripts as text, timed segments and AI chunks, from videos, channels, playlists or searches.

#### More data tools

- **[Tennis Betting Odds Scraper](https://apify.com/aurelix/tennis-odds-scraper)**: Tennis results and upcoming matches with opening and closing odds per bookmaker and implied probabilities.

### Recent changes

- **0.1**: Rival inputs are read as-is (domain, decision_maker_category, max_leads_to_find, domainList, company_domains), seniority and function values such as 'CEO' or 'tech' are understood, and company names or LinkedIn pages in the domain list are skipped and named in the status message.

The full history is on the **Changelog** tab.

### Tested daily

An automated health check runs this Actor every day on a fixed input and checks that at least 10 decision-makers come back with `name`, `title`, `seniority`, `function`, `domain`, `source_url` filled in; a failed check alerts the maintainer straight away.

### Your feedback

Missing a field, found a bug or need another filter? Open an issue on the **Issues** tab; we aim to answer within a day. If this Actor saved you time, a short review helps other people find it.

# Changelog

This Actor's version history is a separate document: https://apify.com/aurelix/decision-maker-finder/changelog.md

# Actor input Schema

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

One company per entry, e.g. \['sparkbox.com', 'https://www.welchllp.com']. A bare domain gets https://; an email such as jane@acme.com reads acme.com. Give the website, not the company name or its LinkedIn page.

## `seniorities` (type: `array`):

Levels to return, e.g. \['founder_owner', 'c_suite']. Empty = the default decision-maker levels: founder_owner, c_suite, partner, vp, head, director. Also available: manager, staff. Board members, advisors and investors are never returned.

## `functions` (type: `array`):

Only these functions, e.g. \['sales', 'marketing']. Empty = all. One of executive, sales, marketing, engineering, product, hr, finance, legal, operations, customer_service, other.

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

Pages read per company, homepage included, e.g. 10. Team and leadership pages are read first. Pages are not charged.

## `maxPeoplePerCompany` (type: `integer`):

Cap on people returned (and charged) per company, most senior first, e.g. 25.

## Actor input object example

```json
{
  "domains": [
    "sparkbox.com",
    "welchllp.com",
    "rlb.ca"
  ],
  "seniorities": [],
  "functions": [],
  "maxPagesPerDomain": 6,
  "maxPeoplePerCompany": 10
}
```

# Actor output Schema

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

One item per person: name, title, seniority, function, published work email and phone, LinkedIn and X profile links, company and source page.

# 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 = {
    "domains": [
        "sparkbox.com",
        "welchllp.com",
        "rlb.ca"
    ],
    "maxPagesPerDomain": 6,
    "maxPeoplePerCompany": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("aurelix/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 = {
    "domains": [
        "sparkbox.com",
        "welchllp.com",
        "rlb.ca",
    ],
    "maxPagesPerDomain": 6,
    "maxPeoplePerCompany": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("aurelix/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 '{
  "domains": [
    "sparkbox.com",
    "welchllp.com",
    "rlb.ca"
  ],
  "maxPagesPerDomain": 6,
  "maxPeoplePerCompany": 10
}' |
apify call aurelix/decision-maker-finder --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,aurelix/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/KxUyCSNyysD86a4Za/builds/YM0uNweUaaIaM35IF/openapi.json
