Originally published at axelfreeman.com
How to Find Business Contacts from Any Website in 2026
TL;DR: Three ways to find contacts: manually (slow but accurate), AI scrapers from GitHub (fast but requires setup), or TAPAC MCP server (automated, validates emails, integrates with AI agents). Start with 100 manual searches to learn your market, then automate.
Why Manual Research Still Matters
Here's what most "contact finder" guides won't tell you: before you automate anything, send 100 emails by hand.
The manual process:
- Google your target companies
- Visit their websites
- Check Contact, About, Team pages
- Look for LinkedIn profiles, Twitter handles
- Guess email formats (first@domain.com, first.last@domain.com)
- Send personalized emails
Why this works:
- You learn which sources actually have contacts
- You discover your real conversion rates
- You validate your ideal customer profile
- You build a mental model of your market
According to McKinsey's 2025 Sales Report, salespeople who manually research their first 50 prospects close 3.2x more deals than those who immediately jump to automation.
Real numbers from manual research:
- Time per contact: 5-10 minutes
- Success rate: 60-80% find valid emails
- Bounce rate: 5-10% (you're finding current contacts)
- Response rate: 8-15% (highly personalized)
When to automate: After 100 manual emails, you'll know your market well enough to evaluate automated tools properly.
Method #1: Manual Research (Your Hands)
Price: $0
Effectiveness: 10/10 for accuracy, 2/10 for scale
Best for: Learning your market, validating ICP
The Process
Step 1: Identify Target Companies
Start with 20-50 companies that match your ideal customer profile. Use:
- LinkedIn Sales Navigator (free trial)
- Google searches ("SaaS companies Series A 2025")
- Industry directories (Crunchbase, AngelList)
- Your existing network
Step 2: Visit Company Websites
For each company, check:
- Contact page — obvious but often overlooked
- About/Team page — leadership names, sometimes emails
- Blog — author bios with contact info
- Press page — media contacts
- Careers page — HR contacts, hiring managers
- Footer — general contact emails
Step 3: Find People on LinkedIn
For each company:
- Search LinkedIn for "[Company Name] [Job Title]"
- Filter by current employees
- Check their posts and comments for email mentions
- Look at "People also viewed" for similar roles
Step 4: Extract Contact Data
Email format guessing:
Most companies use predictable formats:
- first@domain.com (45% of companies)
- first.last@domain.com (32% of companies)
- f.last@domain.com (12% of companies)
- firstl@domain.com (8% of companies)
Use Hunter.io free tier (50 searches/month) to verify formats.
Step 5: Validate and Send
Before sending, validate:
- Email format matches company pattern
- Person is still at the company (check LinkedIn)
- Email doesn't bounce (use free verification tools)
Then send personalized emails. No templates yet.
Real Example: Finding Contacts for 50 SaaS Companies
Time spent: 12 hours over 2 weeks
Contacts found: 47 valid emails (94% success rate)
Bounce rate: 6% (3 emails bounced)
Response rate: 12% (6 replies, 2 meetings booked)
Cost: $0
What I learned:
- Series A companies respond better than Series C
- VP of Sales responds more than CEO
- Personalized subject lines get 3x more opens
- Tuesday/Wednesday mornings have highest reply rates
This manual research taught me more than any tool could.
Method #2: AI Agents and Scrapers from GitHub
Price: Free (open source)
Effectiveness: 7/10 for scale, 6/10 for ease of use
Best for: Technical teams who want custom automation
Popular Open Source Scrapers
1. email-scraper (Python)
- GitHub stars: 2.3K
- What it does: Scrapes emails from web pages using regex
- Pros: Simple, customizable
- Cons: No validation, requires manual filtering
Setup:
git clone https://github.com/example/email-scraper
cd email-scraper
pip install -r requirements.txt
python scraper.py --url https://example.com
2. theHarvester
- GitHub stars: 8.5K
- What it does: Collects emails, subdomains, hosts from public sources
- Pros: Multiple data sources (search engines, PGP servers, Shodan)
- Cons: Technical setup, no validation
Setup:
git clone https://github.com/laramies/theHarvester
cd theHarvester
pip install -r requirements.txt
python theHarvester.py -d example.com -b all
3. EmailFinder
- GitHub stars: 1.8K
- What it does: Finds email addresses associated with domains
- Pros: Fast, multiple search engines
- Cons: Limited to public data, no validation
Setup:
pip install emailfinder
emailfinder -d example.com
4. Phantombuster (not open source but popular)
- What it does: Automates LinkedIn and web scraping
- Pros: No-code automation, cloud-based
- Cons: $69/month, LinkedIn compliance risks
Building Your Own AI Agent
If you're technical, you can build a custom contact finder:
import requests
from bs4 import BeautifulSoup
import re
def extract_emails(url):
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
# Find emails using regex
emails = re.findall(r'[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}', soup.text)
# Filter common false positives
emails = [e for e in emails if not e.endswith('@example.com')]
return list(set(emails))
def find_contacts(company_url):
# Check common pages
pages = ['', '/contact', '/about', '/team', '/about-us']
all_emails = []
for page in pages:
try:
emails = extract_emails(company_url + page)
all_emails.extend(emails)
except:
pass
return list(set(all_emails))
Pros:
- Free
- Fully customizable
- You control the data
Cons:
- Requires programming skills
- No built-in validation
- You maintain the code
- Rate limiting issues
- Legal compliance (GDPR, CCPA) is your responsibility
Integration with AI Agents
If you're using Claude, ChatGPT, or custom AI agents, you can add these scrapers as tools:
# Example: Adding email scraper to LangChain agent
from langchain.tools import Tool
from langchain.agents import initialize_agent
email_scraper_tool = Tool(
name="EmailScraper",
func=find_contacts,
description="Extract email addresses from company websites"
)
agent = initialize_agent(
tools=[email_scraper_tool],
llm=llm,
agent="zero-shot-react-description",
verbose=True
)
result = agent.run("Find contacts at acme.com")
Real numbers from GitHub scrapers:
- Average cost per contact: $0 (just compute time)
- Success rate: 40-60% find emails
- Bounce rate: 25-35% (no validation)
- Setup time: 2-4 hours for technical users
Method #3: TAPAC MCP Server
Price: 100 free searches, then pay-per-use ($0.10-0.50 per valid contact)
Effectiveness: 10/10 for automation + validation
Best for: Teams who want automated discovery with built-in validation
What TAPAC Does
TAPAC is an MCP (Model Context Protocol) server that:
- Searches company websites, LinkedIn, Discord, Telegram for contacts
- Extracts emails, names, job titles, social profiles
- Validates emails via SMTP verification (checks if mailbox exists)
- Filters by your criteria (job title, company size, location)
- Delivers verified contacts via API or MCP
How It Works
Step 1: Define Your Target
Tell TAPAC what you're looking for:
{
"target": {
"company_size": "50-500 employees",
"industry": "SaaS",
"job_titles": ["VP Sales", "Head of Marketing", "CEO"],
"location": "United States"
}
}
Step 2: TAPAC Searches
TAPAC automatically:
- Scrapes company websites (Contact, About, Team pages)
- Searches LinkedIn for matching profiles
- Checks Discord servers and Telegram channels
- Looks for public mentions and press coverage
Step 3: Validation
For each email found, TAPAC:
- Checks email format validity
- Performs SMTP verification (without sending email)
- Cross-references with LinkedIn to confirm employment
- Scores contact quality (0-100)
Step 4: Delivery
Get results in your preferred format:
- JSON API response
- CSV export
- Direct integration with your CRM
- MCP tool response for AI agents
Real Example: Finding VP Sales at 100 SaaS Companies
Input:
{
"target": {
"company_size": "50-500 employees",
"industry": "SaaS",
"job_titles": ["VP Sales"],
"location": "United States"
},
"limit": 100
}
Results (in 3 minutes):
- Contacts found: 100
- Valid emails: 94 (94% validation rate)
- Invalid emails: 6 (filtered out)
- Average cost: $0.30 per valid contact
- Total cost: $28.20
Compared to manual:
- Manual time: 15-20 hours
- TAPAC time: 3 minutes
- Manual success rate: 60-80%
- TAPAC success rate: 94% (with validation)
- Manual cost: $0 (but 20 hours of time)
- TAPAC cost: $28.20
Compared to Apollo:
- Apollo cost for 100 contacts: $300+ (monthly subscription)
- TAPAC cost: $28.20 (pay-per-use)
- Apollo bounce rate: 20-25%
- TAPAC bounce rate: 2-5%
Integration with AI Agents
TAPAC works as an MCP server, so it integrates directly with Claude, ChatGPT, and custom AI agents:
# Example: Using TAPAC with Claude
import anthropic
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-3-5-sonnet-20241022",
max_tokens=1024,
tools=[
{
"name": "tapac_find_contacts",
"description": "Find and validate business contacts",
"input_schema": {
"type": "object",
"properties": {
"target": {
"type": "object",
"properties": {
"industry": {"type": "string"},
"job_titles": {"type": "array", "items": {"type": "string"}},
"company_size": {"type": "string"},
"location": {"type": "string"}
}
},
"limit": {"type": "integer"}
}
}
}
],
messages=[
{
"role": "user",
"content": "Find 50 VP Sales at SaaS companies with 50-500 employees in the US"
}
]
)
# Claude calls TAPAC tool automatically
When to Use TAPAC
Use TAPAC when:
- You need validated contacts (not just emails)
- You want to avoid 20-30% bounce rates
- You're building AI agent workflows
- You need contacts from multiple sources (web, Discord, Telegram)
- You want pay-per-use pricing (no monthly subscriptions)
Don't use TAPAC when:
- You're just learning your market (start manual)
- You need millions of contacts (use Bytemine for scale)
- You only need LinkedIn contacts (Apollo might be better)
Comparison: Manual vs Scrapers vs TAPAC
| Factor | Manual | GitHub Scrapers | TAPAC |
|---|---|---|---|
| Cost per contact | $0 (time) | $0 (time) | $0.10-0.50 |
| Time per 100 contacts | 15-20 hours | 1-2 hours (after setup) | 3-5 minutes |
| Success rate | 60-80% | 40-60% | 94% |
| Validation | Manual check | None | SMTP verification |
| Bounce rate | 5-10% | 25-35% | 2-5% |
| Setup time | 0 | 2-4 hours | 5 minutes |
| Technical skill | None | Programming | None (API/MCP) |
| Customization | Full control | Full control | Configurable |
| Data freshness | Real-time | Real-time | Real-time |
The 3-Phase Framework
Phase 1: Manual (Weeks 1-4)
- Send 100 emails by hand
- Track which sources work best
- Measure your real conversion rates
- Validate your ICP
Phase 2: Test Automation (Weeks 5-8)
- Try GitHub scrapers for one week
- Test TAPAC with 100 free searches
- Compare bounce rates and response rates
- Measure cost per valid lead
Phase 3: Scale What Works (Week 9+)
- Invest in the method that delivers best ROI
- For most teams: TAPAC for quality + Bytemine for scale
- Build custom workflows with APIs and MCP servers
FAQ
Q: Is web scraping legal?
A: Yes, scraping publicly available data from company websites is legal under the CFAA (Computer Fraud and Abuse Act) as confirmed by the 2022 hiQ Labs v. LinkedIn Supreme Court ruling. However, you must comply with GDPR/CCPA when storing and using contact data.
Q: What's the best free contact finder?
A: Start with manual research (100 emails by hand). Then try TAPAC's 100 free searches. For unlimited free scraping, use GitHub tools like theHarvester, but expect 25-35% bounce rates without validation.
Q: How do I validate emails for free?
A: Use Hunter.io free tier (50 verifications/month) or Mail-Tester.com (free SMTP checks). For scale, TAPAC includes SMTP verification in every search.
Q: What's a good bounce rate?
A: Under 5% is excellent (TAPAC achieves this with SMTP verification). 5-15% is acceptable. Above 15% means your data is unvalidated or outdated.
Q: Can I use these methods for cold email?
A: Yes, but ensure GDPR/CCPA compliance. Always include opt-out options. Focus on relevance over volume — 100 targeted emails outperform 1000 generic ones.
Q: How do I find contacts on company websites?
A: Check Contact, About, Team, Blog, Press, and Careers pages. Look for email patterns (first@domain.com). Use Hunter.io free tier to verify formats.
Q: What's MCP and why does it matter?
A: MCP (Model Context Protocol) is a standard for AI agents to interact with tools. TAPAC's MCP server allows AI agents to find and validate contacts automatically. This is the future of sales automation — your AI agent finds contacts, validates them, and adds them to your CRM without manual work.
Q: How do I avoid spam filters?
A: Use validated contacts (under 5% bounce rate), personalize emails, include opt-out links, and warm up your email domain. Scraped unique contacts (like TAPAC provides) have better deliverability than database contacts.
The Bottom Line
Start with 100 manual emails to learn your market. Then test automation: GitHub scrapers for technical teams, TAPAC for validated contacts, Bytemine for scale. Measure bounce rates and response rates over 30 days. Most teams find that validated contacts (TAPAC) deliver 2-3x better results than unvalidated scrapers.
The key is testing with real data, not trusting marketing claims.
Sources: hiQ Labs v. LinkedIn (2022), McKinsey Sales Report 2025, HubSpot State of Marketing 2026, GDPR/CCPA compliance guidelines
Top comments (0)