# 🎯 Lead Generation: Website to Qualified B2B Leads + Emails (`vulnv/leadgen-pipeline`) Actor

Turn any website into a ready-to-use list of qualified B2B leads. It learns your ideal customer profile, finds matching companies, ranks them by fit, and delivers a verified decision-maker email for each — ideal for sales prospecting and cold outreach.

- **URL**: https://apify.com/vulnv/leadgen-pipeline.md
- **Developed by:** [VulnV](https://apify.com/vulnv) (community)
- **Categories:** Lead generation
- **Stats:** 2 total users, 1 monthly users, 96.7% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.008 / qualified lead

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## Lead Generation — Turn Any Website Into Qualified B2B Leads With Verified Emails

Paste in a website and get back a ready-to-use list of companies that match your ideal
customer — each with a **verified decision-maker email**. Automated **B2B lead generation**
and **sales prospecting** in a single run: no scrapers to set up, no databases to license,
no manual research.

**Built for** sales teams, founders, agencies, and growth marketers who need targeted,
ready-to-contact leads for **cold email** and outreach.

### What you get

- ✅ **Qualified companies** that fit your ideal customer profile (ICP) — not a raw scrape.
- ✅ **A verified decision-maker email** for every lead (owner / founder / director), deliverability-checked.
- ✅ **A fit score** so your best-matched prospects are ranked first.
- ✅ **Firmographics** — company name, website, location, phone — plus a contact route.
- ✅ **Clean exports** — a structured dataset and downloadable CSV/XLSX spreadsheets, ready for your CRM.

### How it works

1. **Understands your business.** It reads the website you provide and infers your ideal
   customer profile — who buys from you, and who doesn't.
2. **Finds matching companies.** It searches the web for businesses that fit that profile
   across your target region.
3. **Qualifies and ranks every lead.** Each company is classified as a genuine buyer
   (vs. a competitor or supplier) and scored on fit — so you spend time on the best prospects.
4. **Finds and verifies the decision-maker's email.** For each qualified buyer it locates the
   owner/manager and confirms the email is deliverable.

### Input

Point it at a website — that's the only required field.

| Field | Required | What it does |
|---|---|---|
| **Seller website** | ✅ | The site of the company whose ideal customers you want to find. |
| **Ideal customer profile** | | Optional notes on who to target, who to exclude, and how to rank fit. Sharpens results. |
| **Maximum number of leads** | | The most leads to return. It searches in small batches and stops as soon as it hits this number — so smaller = faster and cheaper. |
| **Find verified emails** | | On by default. Turn it off to get qualified companies **without** emails — faster and cheaper. |
| **Region** | | Where to focus the search (e.g. US). |
| **Preview only** | | See the inferred ICP and search plan before generating leads. |

No API keys or setup required — just enter a website and run.

### Output

- **Leads dataset** — one row per company (qualified buyers plus others flagged for reference).
  Verified leads are marked `email_verified = yes`.
- **Spreadsheets** — download all leads, or just the verified ones, as XLSX.
- **Run summary** — your inferred ICP and result counts.

### Great for

- **B2B lead generation** and building targeted prospect lists
- **Cold email and sales outreach** with verified, deliverable addresses
- **Sales prospecting** and account research
- **Lead-gen agencies** building lists for clients
- **Market research** and total-addressable-market (TAM) mapping

Works across industries — SaaS, agencies, suppliers, data products, local services and more —
because it learns your ICP straight from your own website.

### Pricing (pay per result)

| You pay for | Price |
|---|---|
| Seller profile + search plan (also the preview / dry-run price) | **$0.05** |
| Each qualified lead (company + fit score + contact route) | **$0.008** |
| Each verified decision-maker email | **$0.10** |

You're never charged for non-matching companies, and a per-run spend limit is always respected.
**Want to pay less?** Turn off **Find verified emails** to skip the verified-email charge entirely and pay only for qualified companies.

### FAQ

**What do I need to provide?** Just a website. Optionally, a sentence or two describing your ideal customer.

**How are the emails verified?** Every email is checked for deliverability before it's returned, so your bounce rate stays low.

**Will it pick up competitors or suppliers?** They're automatically detected and separated out — you only pay for genuine buyers.

**Can I preview before spending?** Yes. Turn on **Preview only** to see the inferred ICP and search plan first.

**What format are the results?** A structured dataset plus downloadable CSV/XLSX spreadsheets, ready for your CRM or cold-email tool.

**Which industries does it work for?** Any B2B industry — it learns your ideal customer from your website, so it adapts to what you sell.

# Actor input Schema

## `website` (type: `string`):

The website of the company whose ideal customers you want to find. The pipeline profiles this site to infer the ICP.

## `icpNotes` (type: `string`):

Describe who the buyers are, who to exclude, and how to rank fit. It's reconciled with what the pipeline reads from the website — the richer this is, the sharper the results.

**Short examples:**

- *Cruise data API* — "Sells cruise inventory data to travel agencies. Buyers = cruise-only & boutique agencies. Exclude cruise lines and data resellers."
- *Payroll SaaS* — "Payroll software for US restaurants. Buyers = independent multi-location restaurant groups. Exclude enterprise chains and competitors."
- *Packaging supplier* — "Eco-friendly packaging for DTC brands. Buyers = mid-size e-commerce brands. Exclude packaging manufacturers and marketplaces."

## `target` (type: `integer`):

The most leads to return. The pipeline searches in small batches and stops as soon as it reaches this many — so smaller numbers return faster and cost less.

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

Find and verify a decision-maker email for each lead. Turn this OFF to get qualified companies (name, website, location, fit score) without emails — faster and cheaper.

## `region` (type: `string`):

Region to focus the search on (e.g. US).

## `dryRun` (type: `boolean`):

Profile the seller and plan the search only — returns the inferred ICP and plan without generating leads.

## Actor input object example

```json
{
  "website": "https://cruisefeed.io",
  "target": 25,
  "enrichEmails": true,
  "region": "US",
  "dryRun": false
}
```

# Actor output Schema

## `leads` (type: `string`):

Every result row: buyers (enriched) plus non-buyers flagged for audit. Verified leads have email\_verified = "yes".

## `overview` (type: `string`):

Table view of the leads with the key columns.

## `leadsSpreadsheet` (type: `string`):

Formatted XLSX of all leads.

## `verifiedSpreadsheet` (type: `string`):

Formatted XLSX of only the verified decision-maker leads.

## `summary` (type: `string`):

Inferred ICP profile and stage counts (raw, unique, buyers, emails, verified).

# 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 = {
    "website": "https://cruisefeed.io"
};

// Run the Actor and wait for it to finish
const run = await client.actor("vulnv/leadgen-pipeline").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 = { "website": "https://cruisefeed.io" }

# Run the Actor and wait for it to finish
run = client.actor("vulnv/leadgen-pipeline").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 '{
  "website": "https://cruisefeed.io"
}' |
apify call vulnv/leadgen-pipeline --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/bYYsdevEQK6TEWbub/builds/BSYsum3MQdtP2hrov/openapi.json
