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.
GitHub Repo Intelligence: Vet Any Dependency Before You Add It
Pull stars, forks, contributors, commit recency, latest release and full README for any public GitHub repo in one call. No token required, MCP-ready for agents doing dependency checks.
Bilibili Scraper: Video, Creator and Search Data in Python
Pull Bilibili videos by keyword, URL or creator ID: titles, view and like counts, duration, author stats. Plain HTTP, no cookies, no login required.
SEEK Jobs Scraper: Australian Job Listings in Python
How to pull SEEK.com.au job listings by keyword, location, work type and salary band in Python: title, company, salary range, apply link, no login or API key.