Scrape Emails From Website
Give it a company website, get back every email address published on it.
- Tool
scrape_emails_from_website- Cost
- 0.5 credits per run
- Category
- Enrich Company
- Required input
url- Returns
- Published email addresses found on the site
What it does
- Crawls a company website and extracts every published email address — page text,
mailto:links, and embedded markup. - Covers the homepage plus contact, about, team, support and legal pages.
- Returns generic inboxes —
info@,sales@,support@— far more often than named ones. Plan for that. A named address is a bonus, not the expected result. - Crawling always starts at the site root. A deep link is reduced to its origin, so
https://acme.com/pricing/enterpriseis crawled ashttps://acme.com. You cannot point it at one page. - Takes a website URL or a bare domain.
This is the fallback when there is no LinkedIn URL for find_work_email. Use it when you need any route into a company, not a specific person’s address.
Use cases
- Reach a company with no LinkedIn trail. Local businesses, agencies and SMBs often have a website and nothing else to enrich.
- Finish a Maps-sourced list. Listings give you sites; this turns those sites into addresses you can write to.
- Get any route into an account. A generic inbox that forwards internally beats no contact at all.
- Collect support and partnership addresses. Some motions are better served by
partners@orsupport@than by a named rep.
How to use it
Connect the MCP server
Follow the setup guide for your client. Browser sign-in, no API key.
Scrape one site
Scrape emails from acme.com.Run it across a list
Scrape emails from each of these 40 domains. Return one row per domain with
every address found. Do not guess addresses for domains that return nothing.Fall back from a failed person lookup
For anyone in this list where find_work_email returned nothing, scrape emails
from their company website instead and mark those rows as generic.Verify before you send
Verify every address you scraped and drop anything that isn't deliverable.Example prompts
| Ask your client | What you get back |
|---|---|
| ”Scrape emails from acme.com” | Every published address on the site |
| ”Get contact emails for these 40 domains” | One row per domain |
| ”No LinkedIn for these leads — find any company email” | Generic inboxes as a fallback |
| ”Find Jane Doe’s work email at Acme” | Not this tool — use find_work_email |
Best prompting practices
- Pass the bare domain. Deep links are reduced to the origin anyway, so
acme.comsaves the confusion. Lowercase, nowww., no protocol. - Expect generic inboxes. Tell your client to label the result as generic so it does not end up in a sequence written to a named person.
- Ask for the split. “Separate named addresses from role addresses —
info@,sales@,bookings@— and return both columns.” That split decides which rows are worth verifying and which get a different message. - Forbid guessing. Add “do not guess email patterns” to any batch prompt. A fabricated
first.last@company.comlooks exactly like a scraped result and bounces like a fake. - Reach for
find_work_emailfirst whenever you have a LinkedIn URL. It costs 1 credit and returns a named address instead of a shared inbox. - Filter the list before the crawl. Drop rows with no website and domains you already own — free — before spending 0.5 credits a site. On 200 listings that is the difference between 100 credits and 40.
- Gate the batch. “Tell me how many sites survived the filter and what that costs, then wait for my go-ahead.”
- Verify separately. Published addresses go stale. Chain
verify_emailbefore you send.
Output
{
"url": "https://acme.com",
"emails": ["info@acme.com", "sales@acme.com"]
}Credits and limits
0.5 credits per call. Run check_credits (free) before a large batch.
Many sites publish no address at all — they use a contact form instead. An
empty result is a normal outcome, not an error. Try
scrape_phones_from_website
for a switchboard number, or
find_people
to get a named person you can look up properly.
Parameters
| Parameter | Type | Required | Notes |
|---|---|---|---|
url | string | Yes | Website URL or bare domain. Reduced to the site root before crawling |
Related tools
| Tool | Use it instead when |
|---|---|
find_work_email | You have a LinkedIn URL and want a named address — 1 credit |
scrape_phones_from_website | You need published phone numbers instead — 0.5 credits |
verify_email | You have the address and need deliverability — 0.3 credits |
find_people | You need named people at the company — 0.5 credits per result |
Next steps
- All MCP tools — the full catalogue with credit costs
- Research & Web Scraping — workflows that chain this tool into a list build
Keep learning
Two courses take these tools past the reference page — clustered by GTM job, then chained into workflows.
SyncGTM MCP Mini CourseBeginnerMCP server · 8 lessons · 1h 31mAll 50 MCP tools clustered by GTM job — lead sourcing, CRM enrichment, social signals, account research, scraping — with copy-paste workflow prompts.AI-Powered GTMIntermediateApp + MCP · 19 lessons · 3h 6mWhere AI earns its cost, how to think in MCP tool chains, and three agentic builds — warm outbound, meeting research, CRM repair.