Lead Enrichment Pipeline, Company URL to Verified Contacts
Pricing
from $24.00 / 1,000 lead enricheds
Lead Enrichment Pipeline, Company URL to Verified Contacts
One API call: provide a LinkedIn company URL, get back enriched employee profiles with validated emails. Combines LinkedIn scraping, company intelligence, and email discovery into a single pipeline.
Pricing
from $24.00 / 1,000 lead enricheds
Rating
1.0
(1)
Developer
George Kioko
Maintained by CommunityActor stats
0
Bookmarked
24
Total users
1
Monthly active users
12 days ago
Last modified
Categories
Share
Lead Enrichment Pipeline
One API call to turn a LinkedIn company URL into verified employee contacts with emails. No manual research, no tab switching, no copy pasting.
What It Does
You provide a LinkedIn company URL. The pipeline does the rest:
- Scrapes employees from the company LinkedIn page (names, titles, profile URLs)
- Enriches the company (industry, tech stack, domain, social profiles)
- Generates candidate emails using 7 common corporate email patterns per person
- Validates every email to confirm deliverability before you send
You get back a clean JSON array of enriched leads ready for outreach.
How It Works
flowchart TDA[User Input: LinkedIn Company URL] --> B[Step 1: LinkedIn Employee Scraper]B --> C{Title Filter Applied?}C -->|Yes| D[Filter by CEO, CTO, VP, etc.]C -->|No| E[Keep All Employees]D --> F[Step 2: Company Enrichment API]E --> FF --> G[Extract Domain + Company Intel]G --> H[Step 3: Email Pattern Generator]H --> I["Generate 7 patterns per person<br/>first.last@ / first@ / flast@ / etc."]I --> J[Step 4: Email Validator API]J --> K[Validate Each Candidate Email]K --> L[Step 5: Merge + Output]L --> M[Enriched Leads Dataset]style A fill:#e1f5festyle M fill:#c8e6c9style H fill:#fff3e0style I fill:#fff3e0
Getting Started
On Apify Console
- Open the actor on Apify Store
- Set the Company LinkedIn URL (e.g.,
https://www.linkedin.com/company/stripe) - Optionally set the Company Website for better enrichment
- Optionally filter by Title Keywords like
CEO, CTO, VP, Director - Click Start and wait for results
Via API
curl -X POST "https://api.apify.com/v2/acts/george.the.developer~lead-enrichment-pipeline/runs?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"companyUrl": "https://www.linkedin.com/company/stripe","companyWebsite": "https://stripe.com","maxEmployees": 10,"filterTitles": ["CEO", "CTO", "VP", "Director"],"validateEmails": true}'
Via Apify Client (Node.js)
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_TOKEN' });const run = await client.actor('george.the.developer/lead-enrichment-pipeline').call({companyUrl: 'https://www.linkedin.com/company/stripe',companyWebsite: 'https://stripe.com',maxEmployees: 10,filterTitles: ['CEO', 'CTO', 'VP'],validateEmails: true,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Output Format
Each lead in the dataset looks like this:
{"fullName": "Patrick Collison","firstName": "Patrick","lastName": "Collison","title": "CEO and Co-founder at Stripe","linkedinUrl": "https://www.linkedin.com/in/patrickcollison/","confidence": "medium","company": {"name": "Stripe","domain": "stripe.com","industry": "Financial Services","description": "Financial infrastructure for the internet","technologies": ["React", "Node.js", "Ruby"],"socialProfiles": {"linkedin": "https://www.linkedin.com/company/stripe","twitter": "https://twitter.com/stripe"}},"emails": [{"email": "patrick@stripe.com","valid": true,"score": 0.9},{"email": "patrick.collison@stripe.com","valid": true,"score": 0.85},{"email": "pcollison@stripe.com","valid": false,"score": 0.2}],"enrichedAt": "2026-04-08T12:00:00.000Z"}
Email Pattern Generation
The pipeline generates 7 common corporate email patterns for each employee:
| Pattern | Example |
|---|---|
| first.last@domain | patrick.collison@stripe.com |
| first@domain | patrick@stripe.com |
| flast@domain | pcollison@stripe.com |
| firstl@domain | patrickc@stripe.com |
| last.first@domain | collison.patrick@stripe.com |
| first_last@domain | patrick_collison@stripe.com |
| last@domain | collison@stripe.com |
Each pattern is then validated against the mail server to confirm deliverability.
Input Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| companyUrl | string | Yes | LinkedIn company page URL | |
| companyWebsite | string | No | Company website for enrichment | |
| maxEmployees | integer | No | 10 | Max employees to extract (1 to 50) |
| filterTitles | string[] | No | [] | Only include matching title keywords |
| validateEmails | boolean | No | true | Validate discovered emails |
| apifyToken | string | No | Your Apify token for sub actor calls |
Pricing
$0.03 per matched lead via Pay Per Event.
The $0.03 fee applies only to leads whose LinkedIn result names the company, shown as confidence medium or high. Leads with confidence low (the company was not confirmed, or Google hid the profile link) are still in your results and cost nothing.
The three actors this pipeline calls are paid actors, and each bills its own events to your account at its Store price. The LinkedIn Company Employees Scraper charges a start fee per run and a fee per matched profile, the Company Enrichment API charges per company, and the Email Validator API charges per email it can settle (7 guesses per lead, unknown answers are free). Set validateEmails to false to skip the email checks.
Architecture
The pipeline orchestrates three existing Apify actors:
flowchart LRP[Lead Enrichment Pipeline] --> L[LinkedIn Employee Scraper]P --> E[Company Enrichment API]P --> V[Email Validator API]L -->|Employees| PE -->|Company Data + Domain| PV -->|Validation Results| PP --> G[Email Pattern Generator]G -->|Candidate Emails| Vstyle P fill:#1565c0,color:#fffstyle G fill:#ff8f00,color:#fff
The email pattern generator is the core value. LinkedIn gives names but not emails. Company enrichment gives generic contact emails. The pattern generator bridges the gap by creating personalized candidate emails from names and the company domain, then validates each one.
Use Cases
- Sales prospecting: Find decision makers at target companies with verified emails
- Recruiting: Build candidate lists with contact information
- Market research: Map out team structures at competitor companies
- Partnership outreach: Find the right people to contact at potential partner companies
- Investor research: Identify key executives at portfolio companies
Tips for Best Results
- Always provide the company website when you know it. This improves enrichment accuracy.
- Use title filters to focus on decision makers and reduce costs.
- Set maxEmployees to a reasonable number. Start with 10 and increase if needed.
- The pipeline works best for companies with active LinkedIn presence.
Limitations
- LinkedIn scraping depends on publicly available profile data
- Email validation accuracy depends on the target mail server configuration
- Many mail servers do not answer mailbox checks from cloud servers, so those emails come back with
validnull (unknown) instead of a guess - Rate limits apply to sub actor calls