LinkedIn Email Finder & Verifier | Find B2B Emails avatar

LinkedIn Email Finder & Verifier | Find B2B Emails

Pricing

from $15.00 / 1,000 email found & verifieds

Go to Apify Store
LinkedIn Email Finder & Verifier | Find B2B Emails

LinkedIn Email Finder & Verifier | Find B2B Emails

Find verified emails from LinkedIn profiles or Names & Domains. We generate permutations and perform live SMTP handshakes to guarantee deliverability. No external API keys required! At just $0.020 per valid email

Pricing

from $15.00 / 1,000 email found & verifieds

Rating

5.0

(1)

Developer

Mohammad Palekar

Mohammad Palekar

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

9 hours ago

Last modified

Categories

Share

LinkedIn Email Finder — Find Verified Emails from LinkedIn Profiles

Turn any LinkedIn profile URL into a verified professional email address. Upload a CSV or Google Sheet of LinkedIn URLs, and get back real, SMTP-verified work emails — not guesses from stale databases.

How it works: We scrape each LinkedIn profile to extract their name and current company, generate 14+ email permutations (first.last@company.com, flast@company.com, etc.), then perform live SMTP handshakes against the company's mail server to confirm which one actually exists.

Why This Actor?

FeatureLinkedIn Email FinderHunter.io / Apollo
Price per verified email$0.02$0.01 – $0.05
LinkedIn profile scraping (no cookies)❌ Requires browser extension
Live SMTP verification❌ Database lookups
Works on brand-new hires❌ Stale data
Catch-all domain detectionSome
CSV / Google Sheets upload
Bulk processing (thousands)Rate limited
No API key required

Use Cases

  • Sales prospecting — Upload your lead list of LinkedIn URLs, get back verified emails ready for outreach
  • Recruiting — Find direct email addresses for candidates instead of relying on InMail
  • Link building & PR — Reach journalists, bloggers, and editors at their work email
  • Account-based marketing — Build verified contact lists for target accounts at scale
  • CRM enrichment — Enrich your existing LinkedIn-based CRM with verified email addresses

Input Options

Paste a URL to your CSV file or Google Sheet containing LinkedIn profile URLs. The actor automatically:

  • Detects your column headers — supports LinkedIn Profile, linkedin_url, URL, Profile, and 10+ variations
  • Converts Google Sheets links — paste a regular docs.google.com/spreadsheets/... link and it auto-converts to CSV
  • Handles any delimiter — commas, semicolons, tabs — all auto-detected

Option 2: Direct LinkedIn URLs

Paste LinkedIn profile URLs directly into the LinkedIn URLs field, one per line.

Option 3: Manual Name + Domain

If you already know the person's name and company domain, enter them directly as FirstName, LastName, domain.com — skips the LinkedIn scraping step entirely.

How the Pipeline Works

LinkedIn URL → Scrape Profile → Extract Name + Company
→ Generate 14 Email Permutations
SMTP Verify Each One in Parallel
→ Return the Winning Email ✅

Email Patterns We Test

For a person named John Doe at company.com, we test:

PatternExample
first@domainjohn@company.com
first.last@domainjohn.doe@company.com
firstlast@domainjohndoe@company.com
flast@domainjdoe@company.com
firstl@domainjohnd@company.com
first_last@domainjohn_doe@company.com
f.last@domainj.doe@company.com
last@domaindoe@company.com
lastfirst@domaindoejohn@company.com
last.first@domaindoe.john@company.com
lastf@domaindoej@company.com
fl@domainjd@company.com
first-last@domainjohn-doe@company.com
first.l@domainjohn.d@company.com

Output

Each LinkedIn profile produces a result row with the verified email and metadata:

{
"firstName": "John",
"lastName": "Doe",
"domain": "company.com",
"linkedinUrl": "https://www.linkedin.com/in/johndoe",
"email": "john.doe@company.com",
"status": "found",
"confidence": "high",
"is_catch_all": false,
"smtp_response": "250 OK — Mailbox exists"
}

Result Statuses

StatusMeaningAction
found✅ Verified email address discoveredUse for outreach
not_found❌ None of the 14 patterns matchedPerson may use a non-standard email
error⚠️ LinkedIn profile couldn't be scrapedCheck the URL is valid and public

Confidence Levels

ConfidenceMeaning
highSMTP server explicitly confirmed the mailbox exists
mediumDomain is catch-all (accepts all emails) — likely valid but unconfirmed

Pricing

$0.02 per email found — you only pay when we successfully find and verify an email.

  • ❌ No charge for profiles where no email was found
  • ❌ No charge for LinkedIn scraping
  • ❌ No monthly subscription
  • ✅ Pay only for results

Cost Examples

LeadsEmails Found (est. 60%)Cost
100 LinkedIn profiles~60 verified emails$1.20
1,000 LinkedIn profiles~600 verified emails$12.00
10,000 LinkedIn profiles~6,000 verified emails$120.00

Plan-Based Limits

Apify PlanMax Profiles Per RunProcessing Speed
Free ($5/mo)50 profilesBatched (slower)
Starter+ ($49/mo+)UnlimitedFull speed

Free plan users are automatically limited to 50 LinkedIn profiles per run and processed in smaller batches. Upgrade your Apify plan to remove this limitation.

Frequently Asked Questions

How accurate is the email finding?

We typically find verified emails for 50–70% of LinkedIn profiles, depending on the industry. Tech companies with standard email patterns (first.last@company.com) have the highest hit rates. The emails we do find are verified via live SMTP — not pulled from a database.

Do I need LinkedIn cookies or a LinkedIn account?

No. We use a third-party LinkedIn scraper that works without any cookies or login credentials. Your LinkedIn account is never touched.

Can I upload a Google Sheet directly?

Yes! Just paste the regular Google Sheets URL (e.g., https://docs.google.com/spreadsheets/d/...). Make sure the sheet's sharing is set to "Anyone with the link can view" and we'll auto-convert it to a CSV download.

What if a LinkedIn profile is private or doesn't exist?

We'll mark it as error with the message "LinkedIn scraper failed to extract profile data for this URL." You won't be charged for these profiles.

How fast is it?

Each batch of 10 LinkedIn profiles takes about 10–15 seconds to scrape. Email verification runs in parallel and typically completes within seconds. A full run of 50 profiles takes roughly 2–3 minutes.

Can I chain this with other Apify actors?

Yes! Scrape LinkedIn URLs with any actor (LinkedIn Search Scraper, Sales Navigator Scraper, etc.), then pass the results directly to this actor via CSV URL or Dataset ID.

Integrations

Connect LinkedIn Email Finder with your existing tools:

  • Make.com & Zapier — Auto-find emails when new leads enter your CRM
  • Google Sheets — Upload directly, download results as CSV
  • Clay & Apollo — Enrich outbound prospect lists
  • n8n — Build self-hosted lead enrichment pipelines
  • HubSpot & Salesforce — Enrich CRM contacts via API

API Usage

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("YOUR_USERNAME/linkedin-email-finder-pro").call(run_input={
"csvUrl": "https://docs.google.com/spreadsheets/d/YOUR_SHEET_ID/export?format=csv"
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
if item.get("status") == "found":
print(f"{item['firstName']} {item['lastName']}: {item['email']}")

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor("YOUR_USERNAME/linkedin-email-finder-pro").call({
csvUrl: "https://docs.google.com/spreadsheets/d/YOUR_SHEET_ID/export?format=csv"
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.filter(i => i.status === 'found').forEach(i => {
console.log(`${i.firstName} ${i.lastName}: ${i.email}`);
});

Changelog

  • v1.0.16 — Complete rewrite of LinkedIn enrichment layer. Fixed HarvestAPI schema mapping, added batch chunking for free plan users, auto-detection of Google Sheets URLs, and comprehensive error logging.
  • v1.0.0 — Initial release with LinkedIn scraping, 14-pattern email permutation, and live SMTP verification.

Support

This Actor is actively maintained. Found a bug or need a feature? Open an issue — we respond within 24 hours.