TL;DR

Business directories are where most people start and where most people stop. They give you a company name, a category, a switchboard number, and an info@ address — which is fine for volume and useless for reaching whoever actually signs off on a purchase.

Company websites carry the decision-maker information; it's just scattered across five or six page types. About, Team, Leadership, Contact, Press/News, Careers, and — for European companies — the legally-mandated Impressum. Each carries a different piece, and knowing which page holds what turns an hour of manual clicking into a structured extraction.

The method: build a target list, visit each company's own site, extract from the specific pages that carry named-person data, and stitch the results together. ScrapeMaster handles the repetitive part — its "follow detail pages" feature opens each company's link in a background tab and merges extracted fields back into one table, which is exactly the shape of this problem.

The legal line, stated up front: publicly displayed business contact information — role-based addresses, named executives on a public leadership page, company phone numbers — is the safe zone. Guessing personal email patterns, harvesting from LinkedIn, and building profiles of individuals are not. GDPR applies to named individuals even in a business context, and the distinction between "org-level contact data" and "personal data about a person" is the one that matters.


Why directories aren't enough

Directory data is standardized, which is its strength and its ceiling. Every entry has the same fields because every entry was filled in the same way: company name, category, address, main phone, generic email, website.

What that gets you is a list of companies. What it doesn't get you is a person.

The gap matters because outreach to info@ performs badly — it lands in a shared inbox somebody triages between other tasks, and it's the address most heavily filtered. Outreach to a named person with a relevant role performs differently, not because of any trick, but because a specific message to a specific person is a different thing from a broadcast.

We've covered the directory workflow itself in scraping business directories for lead generation, and it remains the right first step. This post is about the second step: what to do once you have the list of companies and need the people.

The six page types, and what each one holds

Company websites vary enormously in design and barely at all in information architecture. These pages exist on most B2B sites and each carries a distinct payload.

1. About / Company

Usually prose, sometimes with a founder story. Look for: founder names, founding year, headcount indicators, locations. Frequently the only place a founder's name appears if the company is small.

Extraction difficulty: high — it's unstructured prose. Better read than scraped for small lists.

2. Team / Leadership / Our People

The highest-value page and the most structured. Typically a repeating grid of cards: photo, name, title, sometimes a short bio, sometimes a direct email or LinkedIn link.

Extraction difficulty: low. This is a repeating card structure, which is precisely what auto-detection handles well. Open the page, click the extension, and the columns — name, title, bio — come out named sensibly in a couple of seconds.

This is the single most productive page type for this task. If a company has one, start there.

3. Contact

Often more granular than the directory listing: departmental emails (sales@, partnerships@, press@), regional offices, sometimes named account managers.

Extraction difficulty: low to medium. Structure varies but the payload is small.

4. Press / News / Newsroom

Underused. Press releases name executives with full titles, and press contacts are usually a named person with a direct line. Recent releases also tell you what the company is currently doing, which is the difference between a generic message and a relevant one.

Extraction difficulty: medium. The listing page is a repeating structure (title, date, link) that extracts easily; the named contacts are inside individual releases, so this is a follow-detail job.

5. Careers / Jobs

Job postings reveal reporting lines — "reports to the VP of Engineering" tells you a VP of Engineering exists. Hiring patterns reveal priorities and budget. Some postings name the hiring manager.

Extraction difficulty: low for the listing, medium for the detail.

Legally mandated for German-language commercial sites under the relevant national implementations. It must identify the responsible party — for a company, typically the managing director — along with a registered address, contact details, and register number.

Extraction difficulty: low. It's a legally-structured page, so the fields are consistent.

This is genuinely the most reliable named-contact source for DACH companies, and it's public by legal requirement rather than by marketing choice. If you're working that market, check for /impressum on every domain.

The workflow

Step 1: Build the company list

Start from a directory, an industry association member list, a conference exhibitor list, or a public tender registry — whatever fits your segment. Extract company name and website URL. That's all you need from this stage.

Association member lists and conference exhibitor directories are often better than commercial directories: they're pre-qualified by membership or by the cost of a stand, and they're smaller.

Step 2: Normalize the URLs

You'll have a mix of example.com, www.example.com, https://example.com/en/, and tracking-parameter noise. Clean these to bare domains before the next step, or you'll fetch the same site three times.

Step 3: Find the people pages

For each domain, the candidate paths are predictable:

/about        /about-us      /company
/team         /our-team      /people        /leadership     /management
/contact      /contact-us    /kontakt
/press        /news          /newsroom      /media
/careers      /jobs
/impressum    /legal-notice  /mentions-legales

Most sites use two or three of these. Checking them is mechanical.

Step 4: Extract the structured pages

For each Team or Leadership page: open it, click ScrapeMaster, and let it detect the repeating card structure. You'll get name, title, and bio columns. Rename them to match your CRM schema, drop what you don't need, and extract.

If team members link to individual bio pages, enable follow detail pages — it opens each link in a background tab, pulls the additional fields you've defined, and merges them into the main table. That's what turns "50 cards" into "50 complete records" without 50 manual clicks.

Step 5: Consolidate and export

Export to CSV or XLSX, or copy straight to the clipboard for pasting into Sheets or your CRM. Extracted data stays local in your browser throughout — it's stored in IndexedDB and exports go to your downloads folder.

Step 6: Deduplicate before you do anything with it

Multi-source collection produces duplicates at a rate that surprises people: the same company under two legal names, the same person listed on both a team page and a press release. Deduplicate before import, not after — cleaning a CRM is far more work than cleaning a CSV. We cover the specific techniques in deduplicating scraped lead lists by company.

This deserves care, because the difference between routine business research and a GDPR problem is not intuitive.

Comfortable

  • Role-based addresses: info@, sales@, press@, support@. These identify a function, not a person.
  • Company switchboard numbers and registered addresses.
  • Named executives on a public leadership page, with the title and contact details the company chose to publish there. The company published this specifically so people would use it.
  • Impressum data. Published because the law requires it, for exactly the purpose of enabling contact.
  • Named press contacts on a press page.

Careful

  • Storing named individuals at all. Under GDPR, a name plus a business email is still personal data. You need a lawful basis — for B2B outreach that's typically legitimate interest — and that means doing a legitimate interest assessment, providing privacy information, and honouring objections and erasure requests. It's manageable. It isn't nothing.
  • Enriching across sources. Combining a team page, a press release, and a conference bio into one profile is building a dataset about a person. The more you combine, the further you are from "public business contact" and the closer to profiling.

Don't

  • Guess email patterns. Generating firstname.lastname@company.com from a name is fabricating personal data, not collecting published data. It also has an obvious deliverability cost.
  • Scrape LinkedIn. Their user agreement prohibits it, they enforce aggressively, and there's an extensive litigation history. We've written about it and the answer hasn't improved.
  • Collect personal contact details — mobile numbers, personal email addresses, home addresses — that were published for a different purpose.
  • Ignore an opt-out. If someone asks to be removed, remove them and record the suppression so they don't get re-added on the next run.

Jurisdiction quick reference

RegionApplies to business contacts?Key point
EU / UK (GDPR)Yes, for named individualsLegitimate interest is usually the basis; assessment and notice required
US (CAN-SPAM)Email marketing onlyNo opt-in required, but working opt-out and accurate headers are mandatory
Canada (CASL)Yes, strictlyConsent generally required; narrow business-relationship exemptions
California (CCPA/CPRA)YesB2B data included; disclosure and deletion rights apply

CASL is the one that catches North American teams out. It's a consent regime, not an opt-out regime, and the penalties are real.

Comparison with the alternatives

ApproachNamed contactsCostFreshnessLegal profile
Company sites + ScrapeMasterYes, published onesFreeCurrentClean if you stick to published data
Business directoriesRarelyFree–lowVariableClean
ZoomInfo / Apollo / CognismYes, extensiveHigh subscriptionVariableDepends on their sourcing, which you inherit
Email-pattern guessing toolsFabricatedLown/aPoor — you're generating personal data
LinkedIn scrapingYesTool cost + riskCurrentProhibited by their terms; litigated
Manual researchYesYour timeCurrentClean

The commercial databases are genuinely more complete. What you're buying alongside the completeness is their sourcing decisions, which you inherit when a data subject asks where you got their details. "It's on their company's public leadership page" is a straightforward answer. "We bought it from a vendor" leads to a longer conversation.

Frequently asked questions

How do I find a company owner's contact details using web scraping?

Work from the company's own website rather than a directory. Check /team, /leadership, /about, and — for German-language sites — /impressum, which legally must identify the responsible managing director. Extract the repeating structure on team pages with a browser-based scraper, and use follow-detail extraction when each person links to a bio page.

Can I collect contact information from business listings automatically?

Yes, for publicly displayed org-level data: company name, switchboard number, role-based email, address, category. Open the results page, let the extension auto-detect the repeating columns, enable pagination, and export to CSV. Directories rarely name individuals, though — for decision-makers you need the companies' own sites.

Publicly displayed business contact data is generally fine to collect. The complication is that under GDPR a named person plus a business email is still personal data, requiring a lawful basis (usually legitimate interest for B2B), privacy notice, and respect for objections. Role-based addresses like info@ avoid this entirely because they identify a function, not a person.

Which page on a company website has the most useful contact data?

The Team or Leadership page, when one exists — it's a structured repeating layout with name, title, and often a direct email or bio link, which makes it both the richest and the easiest to extract. For German, Austrian, and Swiss companies, the Impressum is equally reliable and legally required to name the responsible person.

Should I use an email-pattern guessing tool?

No. Generating firstname.lastname@company.com fabricates personal data rather than collecting published data, which is a materially weaker position under GDPR, and the bounce rates hurt your sending reputation. If a company hasn't published someone's address, the published route is the role-based one.

Can I scrape LinkedIn for decision-maker contacts?

Their user agreement prohibits automated collection, they enforce it aggressively with account restrictions, and there's a long litigation record. It's the highest-risk source in this category for the least incremental value over the company's own site.

How do I handle duplicates from multiple sources?

Deduplicate before importing into a CRM. Normalize company names and domains first, since the same company frequently appears under a trading name and a legal name. Cleaning a CSV is far cheaper than cleaning a CRM after a bad import.

Does my extracted data get uploaded anywhere?

No. ScrapeMaster stores extracted records locally in your browser's IndexedDB, and exports go to your downloads folder. The single network call is during auto-detect, when the page's HTML structure — not its content — is sent to the analysis API to suggest selectors.

Bottom line

Directories tell you which companies exist. Company websites tell you who's in them, and the information is distributed across a predictable handful of page types: Team and Leadership for named roles, Press for executives and media contacts, Careers for reporting structure, Impressum for legally-required identification in DACH markets.

Stick to what companies chose to publish. Skip pattern-guessing and LinkedIn. Deduplicate before import, keep a suppression list, and be ready to explain your source — because the good answer, "it's on their public leadership page," is available to you if you collect it that way.

ScrapeMaster is free with no row limits, auto-detects repeating structures in a few seconds, follows detail pages, and exports to CSV, XLSX, JSON, or your clipboard. Extracted data never leaves your browser.

General information, not legal advice — for a programme of any size, get counsel who knows your jurisdiction.

And when the prospecting's done: CineMan AI puts IMDb and Rotten Tomatoes ratings straight onto Netflix, Prime Video, and Disney+.