# Leads Finder (`jobscrawler/leads-finder`) Actor

Scrape high quality leads for your marketing and sales needs. Get business emails, LinkedIn profiles, company details & rich lead data. Cheap alternative to Apollo, ZoomInfo & Lusha. No login required.

- **URL**: https://apify.com/jobscrawler/leads-finder.md
- **Developed by:** [Jobs Scraper](https://apify.com/jobscrawler) (community)
- **Categories:** Lead generation, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.99 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#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

## Leads Finder — Scrape High Quality Leads for Marketing & Sales

✅ Cheap alternative to Apollo, ZoomInfo & Lusha. ✅ Get business emails, LinkedIn profiles, company details etc..\
✅ No Login Required ✅ No Installation Required ✅ Unlimited Emails

***

### Leads Finder

Scrape high quality leads for your marketing and sales needs. Scraper pulls up to 50k leads per run. Similar to Apollo.

### Granular Filters & Search Filters

Apply targeted search filters to discover and extract exact lead matches by job title, decision-maker status, company domain, location, industry, email status, or custom keywords.

***

### ✨ Features

- 🔎 **Granular Search Filters**: Apply filters to get leads that match your needs:
  - Job title inclusion (`contact_job_titles`) and exclusion (`contact_job_not_titles`)
  - Location targeting (`contact_location`, `company_locations`) & location exclusion (`contact_not_location`, `company_not_locations`)
  - Company domain filtering (`company_domains`) & employee count ranges (`company_num_employees_range`)
  - Industry inclusion (`company_industry`) & exclusion (`company_not_industry`)
  - Keyword inclusion (`keywords`) & exclusion (`not_keywords`)
  - Email verification status (`email_status`) & catch-all domain exclusion (`contact_email_exclude_catch_all_domains`)
- 📊 **Rich Lead Data**: Get comprehensive information including:
  - Professional details (name, title, LinkedIn profile)
  - Contact information (work email, work phone number)
  - Company information (name, primary domain, website, founded year, phone)
  - Social media profiles (LinkedIn, Twitter, Facebook)
- 🔒 **Data Privacy**: Secure handling of sensitive information.

***

### 🎯 Use Cases

- **Sales Prospecting**: Find qualified leads with verified contact information.
- **Market Research**: Gather insights about companies and their employees.
- **Lead Generation**: Build targeted contact lists for your business.
- **Competitor Analysis**: Monitor industry professionals and their movements.

***

### 📊 Output Format

The actor returns detailed lead information in **JSON**, **Excel**, **CSV**, or **HTML table** formats, including:

- Personal information (name, title, location)
- Contact details (email, phone)
- Professional profiles (LinkedIn, Twitter, GitHub)
- Company information

#### Example Output Dataset

```json
{
  "first_name": "Satya",
  "last_name": "Nadella",
  "email": "<redacted>",
  "linkedin_url": "http://www.linkedin.com/in/satyanadella",
  "headline": "Chairman and CEO at Microsoft",
  "title": "Chairman and CEO",
  "image": "https://media.licdn.com/dms/image/v2/C5603AQHHUuOSlRVA1w/profile-displayphoto-shrink_200_200/profile-displayphoto-shrink_200_200/0/1579726625398?e=2147483647&v=beta&t=Rr7WT9uBM0byOij0oT_KirejIMVE4HK4r8NGIp0zjdI",
  "street_address": "",
  "city": "Redmond",
  "state": "Washington",
  "country": "United States",
  "postal_code": null,
  "sanitized_address": "Redmond, WA, USA",
  "time_zone": "America/Los_Angeles",
  "domain_is_catchall": false,
  "organization_name": "Microsoft",
  "organization_primary_domain": "microsoft.com",
  "organization_website_url": "http://www.microsoft.com",
  "organization_linkedin_url": "http://www.linkedin.com/company/microsoft",
  "organization_twitter_url": "https://twitter.com/microsoft",
  "organization_facebook_url": "https://facebook.com/Microsoft",
  "organization_crunchbase_url": null,
  "organization_primary_phone": "+1 800-642-7676",
  "organization_formatted_phone": "+18006427676",
  "organization_founded_year": 1975
}
```

***

### 🚀 Getting Started

1. **Run the Actor**: Execute the scraper with your configuration.
2. **Download Results**: Get your leads in JSON, Excel, CSV or HTML table formats.
3. **Integrate**: Use the data in your CRM or sales automation tools.

***

### 🔒 Privacy & Compliance

Data is processed securely and confidentially.

***

### 📈 Performance

- **Reliability**: Built-in error handling and retry mechanisms.
- **Scalability**: Handle large datasets efficiently. Pull up to 50,000 leads per run.

***

### 🕒 Timeout

It can take up to 20 minutes to pull 1000 leads. Please configure your run limit accordingly.

***

### ⬇️ Input Parameters

All parameters are optional and fully configurable:

| Parameter | Type | Description | Default / Example |
| --- | --- | --- | --- |
| `max_result` | integer | Maximum number of results. Can pull up to 50k leads per run | `100` |
| `contact_job_titles` | array | Include any of these job titles. E.g., `["marketing", "sales", "manager"]` | `["ceo", "director"]` |
| `contact_job_not_titles` | array | Exclude these job titles. E.g., `["intern", "student"]` | `["intern"]` |
| `email_status` | array | Email status of prospect | `["verified"]` |
| `contact_email_exclude_catch_all_domains` | boolean | Exclude catch-all domains | `false` |
| `company_num_employees_range` | array | Number of employees range e.g. `["1-10", "201-500"]` | `["1-10"]` |
| `company_locations` | array | Location of company's headquarters e.g. `["new york", "Germany"]` | `["New York"]` |
| `company_not_locations` | array | Exclude company locations | `["Dallas"]` |
| `company_domains` | array | Include any of these domains e.g. `["google.com", "tesla.com"]` | `["microsoft.com"]` |
| `company_industry` | array | Include any of these industries | `["Software"]` |
| `company_not_industry` | array | Exclude these industries | `[]` |
| `keywords` | array | Include keywords e.g. `["manufacturing", "roofing"]` | `["SaaS"]` |
| `not_keywords` | array | Exclude keywords | `[]` |
| `contact_location` | array | Prospects locations e.g. `["italy", "germany", "madrid"]` | `["United States"]` |
| `contact_not_location` | array | Exclude prospect locations | `[]` |

#### Example Input JSON

```json
{
  "max_result": 100,
  "email_status": [
    "verified"
  ],
  "contact_email_exclude_catch_all_domains": false
}
```

***

### 💡 Code Integration

#### Python Client

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_APIFY_API_TOKEN>")

run_input = {
    "max_result": 100,
    "email_status": ["verified"],
    "contact_email_exclude_catch_all_domains": False,
}

run = client.actor("scraper-engine/leads-finder").call(run_input=run_input)

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item.get("first_name"), item.get("last_name"), item.get("email"))
```

#### Node.js Client

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: '<YOUR_APIFY_API_TOKEN>' });

const run = await client.actor('scraper-engine/leads-finder').call({
    max_result: 100,
    email_status: ['verified'],
    contact_email_exclude_catch_all_domains: false,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

# Actor input Schema

## `max_result` (type: `integer`):

Maximum number of results. Can pull up to 50k leads per run.

## `contact_job_titles` (type: `array`):

Include any of these job titles. E.g., marketing, sales, manager, etc.

## `contact_job_not_titles` (type: `array`):

Exclude these job titles. E.g., marketing, sales, manager, etc.

## `email_status` (type: `array`):

Email status of prospect (e.g. verified)

## `contact_email_exclude_catch_all_domains` (type: `boolean`):

Exclude catch-all domains. This will exclude leads whose domain is a catch-all

## `company_num_employees_range` (type: `array`):

Number of employees. E.g., 1-10, 201-500, etc

## `company_locations` (type: `array`):

Location of company's headquarters. You can provide city names as well e.g. new york or New York, NY, Germany, dallas, paris

## `company_not_locations` (type: `array`):

Company's headquarters is not in these locations.

## `company_domains` (type: `array`):

Include any of these domains. E.g., google.com, x.com, tesla.com

## `company_industry` (type: `array`):

Include any of these industries

## `company_not_industry` (type: `array`):

Exclude these industries

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

Include these keywords. E.g. manufacturing, roofing, plumbing services

## `not_keywords` (type: `array`):

Exclude these keywords. E.g. manufacturing, roofing, plumbing services

## `contact_location` (type: `array`):

Prospects are located in these locations. E.g. italy, germany, france, madrid

## `contact_not_location` (type: `array`):

Prospects are not located in these locations. E.g. italy, germany, france, madrid

## `leadTargets` (type: `array`):

Company pages or search keywords — one entry per line; full LinkedIn company URLs or plain keywords/company names.

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

Max employee profiles to discover + scrape per company/keyword (1–10,000). Default 10.

## `jobTitleKeywords` (type: `array`):

Keep a profile only if its headline contains at least one of these words. Case-insensitive.

## `excludeJobTitleKeywords` (type: `array`):

Drop a profile if its headline contains any of these words. Case-insensitive.

## `includeOnlyDecisionMakers` (type: `boolean`):

Keep only rows where the rule-based isDecisionMaker flag is true. Default false.

## `icpDescription` (type: `string`):

Describe who you're prospecting for. Used only when AI lead scoring is ON.

## `enableAiLeadScoring` (type: `boolean`):

Turn on the optional LLM ICP/lead-scoring layer. Default false (zero AI calls, zero cost).

## `aiModel` (type: `string`):

AI model/provider for lead scoring; provider is auto-detected from the model name. Default claude-haiku-4-5.

## `aiApiKey` (type: `string`):

Your own API key for the selected provider. Falls back to an environment variable if left blank. Required only if AI scoring is on.

## `connectionProxy` (type: `object`):

Apify proxy configuration. Residential recommended.

## Actor input object example

```json
{
  "max_result": 10,
  "contact_job_titles": [],
  "contact_job_not_titles": [],
  "email_status": [],
  "contact_email_exclude_catch_all_domains": false,
  "company_num_employees_range": [],
  "company_locations": [],
  "company_not_locations": [],
  "company_domains": [],
  "company_industry": [],
  "company_not_industry": [],
  "keywords": [],
  "not_keywords": [],
  "contact_location": [],
  "contact_not_location": [],
  "leadTargets": [],
  "maxLeadsPerCompany": 10,
  "jobTitleKeywords": [],
  "excludeJobTitleKeywords": [],
  "includeOnlyDecisionMakers": false,
  "icpDescription": "",
  "enableAiLeadScoring": false,
  "aiModel": "claude-haiku-4-5",
  "connectionProxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}
```

# 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 = {
    "max_result": 10,
    "contact_job_titles": [],
    "contact_job_not_titles": [],
    "email_status": [],
    "contact_email_exclude_catch_all_domains": false,
    "company_num_employees_range": [],
    "company_locations": [],
    "company_not_locations": [],
    "company_domains": [],
    "company_industry": [],
    "company_not_industry": [],
    "keywords": [],
    "not_keywords": [],
    "contact_location": [],
    "contact_not_location": [],
    "leadTargets": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("jobscrawler/leads-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 = {
    "max_result": 10,
    "contact_job_titles": [],
    "contact_job_not_titles": [],
    "email_status": [],
    "contact_email_exclude_catch_all_domains": False,
    "company_num_employees_range": [],
    "company_locations": [],
    "company_not_locations": [],
    "company_domains": [],
    "company_industry": [],
    "company_not_industry": [],
    "keywords": [],
    "not_keywords": [],
    "contact_location": [],
    "contact_not_location": [],
    "leadTargets": [],
}

# Run the Actor and wait for it to finish
run = client.actor("jobscrawler/leads-finder").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "max_result": 10,
  "contact_job_titles": [],
  "contact_job_not_titles": [],
  "email_status": [],
  "contact_email_exclude_catch_all_domains": false,
  "company_num_employees_range": [],
  "company_locations": [],
  "company_not_locations": [],
  "company_domains": [],
  "company_industry": [],
  "company_not_industry": [],
  "keywords": [],
  "not_keywords": [],
  "contact_location": [],
  "contact_not_location": [],
  "leadTargets": []
}' |
apify call jobscrawler/leads-finder --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=jobscrawler/leads-finder",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/ejXyUUmGbNKyHGjWc/builds/aio3OgC4cWrusphSQ/openapi.json
