Crawls a company website and returns every published email address — contact, about, team, support and legal pages included — for 0.5 credits per site.
scrape-emails-from-website calls the SyncGTM MCP `scrape_emails_from_website` tool to crawl a company site and return every email address published on it. It reads page text, `mailto:` links and embedded markup across the homepage plus contact, about, team, support and legal pages. It is the fallback for accounts where you have a domain but no LinkedIn URL, so expect shared inboxes like info@ and sales@ rather than a named person's address.
Takes one input — `url`, either a full website URL or a bare domain like acme.com. That is the only parameter the tool accepts
Crawls the homepage plus contact, about, team, support and legal pages, pulling addresses from page text, `mailto:` links and embedded markup
Returns a flat `emails` array under the site's `url` — mostly generic inboxes such as info@, sales@ and support@
Always starts the crawl at the site root: a deep link like acme.com/pricing/enterprise is reduced to acme.com, so you cannot target one page
Returns addresses only — no names, job titles, phone numbers or LinkedIn URLs attached to them
Costs 0.5 credits per call, billed per site and not per address found; an empty result is normal on sites that use a contact form
Download the skill file — it saves as scrape-emails-from-website.zip.
In Claude, open Settings → Capabilities → Skills and upload the .zip (or unzip the scrape-emails-from-website/ folder into .claude/skills/ for Claude Code).
Connect the SyncGTM MCP server using the setup guide for your client — browser sign-in, no API key needed.
Type /scrape-emails-from-website and paste a domain or a column of domains. Strip https:// and any path first, since the crawl starts at the site root either way.
The one thing worth tuning is verification, which is a separate tool rather than a setting: add 'verify every address and drop anything undeliverable' to chain verify_email at 0.3 credits per address.
Recover the rows where find_work_email came back empty because the lead has no LinkedIn URL. Scrape their company site for any address that gets you into the account.
Turn a conference exhibitor list, partner directory or CSV of domains into a contact-route column at 0.5 credits per site.
Pull published inboxes off clinic, agency and contractor sites sourced from Google Maps, where LinkedIn coverage is thin and the site is the only contact channel.
Find whichever monitored inbox an account publishes — support@, accounts@, hello@ — so renewal and escalation mail lands in a shared mailbox instead of one rep's.
Outcome: A CSV where every account has a Contact Route column — named address, generic inbox, or no route — plus a coverage count showing how many rows the scrape recovered.
Outcome: A ranked exhibitor sheet with firmographics, a verified email or a published phone number for each qualified account, and a named shortlist for the accounts the crawl missed.
Outcome: A one-row-per-business call sheet with the Maps listing, review count, a verified email or a published phone number, and an honest count of the sites that publish neither.
Paste any of these into Claude once the skill is installed and the SyncGTM MCP is connected.
Scrape emails from acme.com and label each address as generic or named.Scrape emails from these 25 domains — one row per domain with every address found. Do not guess or pattern-generate any address, and leave the row blank when the site publishes none.Run check_credits first, then quote me the total credit spend for scraping emails from the 40 domains below and wait for my go-ahead before you run them.For the 30 leads below where find_work_email returned nothing, scrape emails from their company website instead, mark those rows as generic, then verify each address with verify_email and drop anything undeliverable.Scrape emails and phones from these 20 dental clinic websites and give me one row per clinic with a Contact Route column: named address, generic inbox, phone only, or none.Expect generic inboxes. Label every info@, sales@ or support@ result as generic so it never lands in a sequence written to a named person.
Pass the bare domain and dedupe to root domains before a batch. A deep link is reduced to the site root before crawling, so acme.com/pricing crawls exactly the same pages as acme.com — and acme.com, www.acme.com and acme.com/contact are one site billed three times.
Add 'do not guess email patterns' to every batch prompt. A fabricated first.last@company.com is indistinguishable from a scraped result and bounces like a fake.
Reach for find_work_email first whenever you have a LinkedIn URL — 1 credit for a named address beats 0.5 credits for a shared inbox.
Treat an empty result as a normal outcome, not a failure. Many sites publish only a contact form: fall back to scrape_phones_from_website for a switchboard number or find_people_within_company for a named person.
Verify separately before you send. Published addresses go stale, and verify_email costs 0.3 credits per address on top of the 0.5 you spent on the crawl.