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.002 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.002 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.002 per lead. Empty results are not charged.
Available on Apify.
Explore the scraper referenced in this article — see inputs, outputs, and pricing, then run it on Apify.
Airbnb Scraper: Listing Prices, Ratings, and Availability Without the API
Airbnb has no public listings API. Here's how to pull nightly price, rating, superhost status and coordinates from Airbnb search results using Python.
Maps Leads: Verified Email Extraction from Google Maps Business Listings
How to pull B2B leads from Google Maps with MX-verified emails, past the official API's 120-result cap, and pay only for contactable businesses.
Realtor.com Scraper: Property and Agent Data Without the MLS Paywall
Scrape Realtor.com listings in Python — price, beds, baths, county, and the listing agent + brokerage office on every record. No login, no API key.