Skip to Content

Website Contact Scraper

Contact details are rarely on one page. An email sits in the footer, a phone number on the contact page, the LinkedIn link in a header icon, the office address three clicks deep. Website Contact Scraper crawls the site and collects all of it into a column.

Point it at a domain and it returns the emails, phone numbers, social profiles and addresses published anywhere it reaches — at 0.2 credits per page scraped.


What it does

  • Crawls from your start URL, following internal links up to the depth and page limit you set
  • Extracts emails, phone numbers, social media profiles and physical addresses
  • Filters the output to one contact type when you only want part of that
  • Costs 0.2 credits per page, so the cost of a row is the number of pages it actually reads

It is an Action column like any other: reads a column, writes its own, supports dynamic variables and Auto Run.


Configuration

Required

FieldWhat to put in it
Start URLsThe site or page the crawl begins from. Map it to a domain or website column with {{ }} so each row scrapes its own site

Optional

FieldDefaultWhat it does
Contact typeAll contactsWhich detail to return — see the options below
Max pagesCeiling on how many pages the crawl may read. Every page costs 0.2 credits
Max crawl depthHow many links deep from the start URL it may follow

Contact type options

OptionReturns
All contactsEmails, phones, socials and addresses together
Emails onlyEmail addresses
Phone numbers onlyPhone numbers
Social media profiles onlyLinkedIn, X, Instagram, Facebook and other profile links
Physical addresses onlyStreet and office addresses

Pick a single contact type when you know what the next column needs. One type per column keeps the output clean enough to feed straight into outreach or a CRM without a parsing step.


How to use it

  1. Click Add Action and search “Website Contact Scraper”
  2. Set Start URLs — usually a {{website}} or {{company domain}} column
  3. Choose the contact type you want back
  4. Set max pages and max crawl depth to bound the cost
  5. Test on the first row and check what came back before running the column
  6. Run the whole column from the ▶️ in the column header

Max pages and crawl depth

These two fields are your cost control, and they do different jobs.

  • Max pages caps the total spend on a row. Ten pages is 2 credits.
  • Max crawl depth caps how far from the start URL it wanders. Depth 1 is the start page and what it links to directly.

Contact details cluster shallow — footer, contact page, about page. A depth of 1–2 with a small page cap finds most of what a site publishes. Deep crawls mostly buy you blog posts.


Common use cases

  • Fill in emails and phones for a list of local businesses scraped from Google Maps
  • Get a generic inbox for small companies where no person-level work email exists
  • Collect social profiles for accounts you want to warm up before outreach
  • Pull office addresses for territory or routing decisions
  • Enrich a directory or marketplace import where you only captured the website

Best practices

  • Run person-level enrichment first and use this for the rows it could not fill — a named contact beats an info@ address
  • Start at depth 1 with a low page cap, look at the output, then widen only if it came back thin
  • Point the start URL at /contact or /about when the site has one; it is the cheapest page to find details on
  • Split types across columns — emails in one, socials in another — instead of parsing a combined blob downstream
  • Verify scraped emails before sending; published addresses are often stale or role-based
  • Watch the credit maths on large tables: 100 rows at 10 pages each is 200 credits

Where to next

You want toGo to
Extract anything else from a site, described in plain EnglishAI Web Scraper
Find a named person’s work emailFind Work Email
Check a scraped email is deliverableVerify Email
See what a run costsCredits