B2B Leads Finder: Business Emails and LinkedIn Profiles Without Apollo or ZoomInfo
Find business emails, LinkedIn profiles, and job titles for decision-makers at target companies. No Apollo, ZoomInfo, or Lusha API key required. $0.003 per lead.
The actor referenced in this article. Pay only for results delivered.
Apollo charges $49/month for 1,200 exports. ZoomInfo runs five figures annually. Our B2B Leads Finder combines Google SERP, LinkedIn’s public index, and email pattern inference to return decision-maker names, job titles, LinkedIn profiles, and guessed business emails at $0.003 per lead, no third-party enrichment API required.
How it works
For each target company or domain:
- LinkedIn SERP discovery: queries Google for
site:linkedin.com/in "company name" "job title"to find people who list the company on their profile. - Company website scraping: visits
/team,/about, and/contactpages to find any directly listed emails and names. - Email pattern inference: generates the most common business email patterns (
firstname@domain,f.lastname@domain,firstname.lastname@domain) and validates the domain has active MX records.
The output labels each email as found (directly extracted from the web), guessed (pattern-inferred), or verified (MX records confirmed for the domain).
What you get per lead
company: company namedomain: company domainname: person’s full namejob_title: their job title and headlinelinkedin_url: LinkedIn profile URLemail: business email (found or guessed)email_confidence:"found"|"guessed"|"verified"phone: phone number (if found on website)source: which data surface returned the recordscraped_at: ISO timestamp
Python example
import requests, time
run = requests.post(
"https://api.apify.com/v2/acts/themineworks~b2b-leads-finder/runs",
headers={"Authorization": f"Bearer {APIFY_TOKEN}"},
json={
"companies": ["stripe.com", "notion.so", "linear.app"],
"jobTitles": ["Head of Marketing", "VP Sales", "CEO"],
"maxLeadsPerCompany": 10
}
)
run_id = run.json()["data"]["id"]
while True:
r = requests.get(
f"https://api.apify.com/v2/actor-runs/{run_id}",
headers={"Authorization": f"Bearer {APIFY_TOKEN}"}
).json()
if r["data"]["status"] in ("SUCCEEDED", "FAILED"):
break
time.sleep(5)
leads = requests.get(
f"https://api.apify.com/v2/actor-runs/{run_id}/dataset/items",
headers={"Authorization": f"Bearer {APIFY_TOKEN}"}
).json()
for lead in leads:
print(lead["name"], lead["job_title"], "@", lead["company"])
print(f" {lead['email']} ({lead['email_confidence']}) | {lead['linkedin_url']}")
Filtering by confidence
# Use found emails for immediate outreach
direct_emails = [l for l in leads if l["email_confidence"] == "found"]
# Use guessed emails with a warm-up or validation tool
pattern_emails = [l for l in leads if l["email_confidence"] == "guessed"]
print(f"{len(direct_emails)} directly found, {len(pattern_emails)} inferred")
Email deliverability note
Guessed emails are pattern-inferred, not deliverability-verified. Run them through a validation service (Zerobounce, Mailcheck) before sending at scale. Directly found emails from company websites are generally reliable.
Cost comparison
| Tool | 1,000 leads | Per lead |
|---|---|---|
| Apollo (Starter) | $49/mo (1,200 exports) | ~$0.041 |
| ZoomInfo | ~$14,995/yr (varies) | varies |
| Lusha | $29/mo (40 credits) | ~$0.73 |
| B2B Leads Finder | $2.00 | $0.002 |
Nothing is charged for leads that fail to enrich.
Use cases
Cold outreach. Build targeted prospect lists for email or LinkedIn sequences without a $500+/month enrichment subscription.
Account enrichment. Fill in missing contact data in your CRM for accounts that were identified but never enriched.
Market mapping. Identify all decision-makers at a shortlist of target accounts before an ABM campaign.
Agency lead lists. Build and deliver enriched contact lists for clients at a cost that leaves real margin.
Pricing
$0.003 per lead. Empty results are not charged.
Available on Apify.
Explore the scraper referenced in this article: inputs, outputs, and pricing, then run it on Apify.
Find the Decision Makers at Your Target Accounts by Job Title
Turn a list of company domains into a CRM-ready CSV of people by job title, with LinkedIn URLs, labeled emails and a company check on every row.
Track New People at Your Target Accounts Every Week
Schedule B2B Leads Finder in monitor mode so each weekly run returns only people you have not been sent before, and never bills the same person twice.
LinkedIn Company Scraper: Size, Industry, Website, and Followers Without Login
Scrape LinkedIn company pages for employee count, industry, HQ, founding year, website, follower count, and specialties. No LinkedIn login or API key required.
LinkedIn Profile Scraper: Experience, Education, and Skills Without Login
Extract full LinkedIn profile data: work history, education, skills, connections, from a list of profile URLs. No LinkedIn cookies or login required.