Finding B2B clients from public data is a five-step loop: define the ideal customer precisely enough to become a search query, collect matching businesses from maps, pull published contacts from their websites, enrich and deduplicate, then check the lawful basis for the country you are about to contact. The collection is cheap and measurable. The last step is the one that decides whether the list is usable at all.
The workflow, and the yield to expect at each step
The numbers below come from our own measurement: 458 dentist listings collected from Google Maps across Milan, Berlin, Madrid, Paris and London on 3 September 2026, with 96 of their websites re-scanned for published contacts. Dentists are a contact-rich category, so treat these as an upper bound for trades and sole operators, and measure your own before you build a plan on them. The per-business flags are published as leads-study-2026-09.csv.
| Step | What you do | Measured yield | Cost at list price |
|---|---|---|---|
| 1. Define the ICP | Turn the customer description into a keyword plus a place | Not measurable; everything downstream depends on it | Your time |
| 2. Collect from maps | Ask for N businesses per city, no contact filter | 458 delivered of 500 requested (91.6%) | $0.01 per delivered row |
| 3. Read the websites | Scan homepage plus contact, about and legal pages | 442 of 458 had a site; an email on 276 (60.3%) | $0.02 per delivered site |
| 4. Deduplicate and enrich | One record per distinct domain, then fill company fields | 442 website rows collapsed to 398 distinct domains | $0.03 per company profile |
| 5. Check the lawful basis | Per country, per channel, before the first message | Decides whether steps 2 to 4 can be used | Your time, or your lawyer's |
Total for the measured run: $6.50 at list price for 458 leads and 96 enriched sites, which works out to $0.01429 per usable record, meaning one carrying a phone number or an email. Full method and limitations in what a Google Maps lead actually contains.
Step 1: an ICP that survives contact with a search box
Most ideal customer profiles are unusable because they describe an attitude rather than a filter. "Ambitious clinics that value patient experience" cannot be typed into anything. "Dental practices in Milan" can. Write the profile down as three things a public source actually records: a category as the platform labels it, a place, and one observable qualifier such as having a website, a rating above a threshold, or a specific technology on the site. Everything else is a hypothesis to test on the sample, not a filter to apply up front.
Use the local language for the keyword and set the collection locale to the target country, or you will collect a different market's idea of the category. In our runs the keyword was dentista for Milan and Madrid, Zahnarzt for Berlin, dentiste for Paris and dentist for London, each with the search locale and proxy exit set to the matching country.
Steps 2 and 3: maps first, then the websites
Maps gives you the business, its category, a phone number and usually a website. It does not give you an email address; there is no such field. The email comes from reading the business website afterwards, which is a separate pass with a separate hit rate. In our data that hit rate ranged from 82.8 percent of listings in London to 19.2 percent in Paris, where a third of practices publish a booking-platform page rather than their own site, so 90 website rows collapsed into 57 distinct domains.
Two rules follow. Turn off any "only businesses with contacts" filter while you are measuring, or your fill rates are one hundred percent by construction and you will misplan the budget. And deduplicate by domain before paying for the contacts pass, so that a shared platform is not scanned eighteen times. The building blocks are the local business leads collector at $0.01 per delivered lead and the site contacts collector at $0.02 per delivered site; the list-building method itself is in how to build a B2B lead list.
Two legal questions, not one
People collapse "is this legal" into a single question and get a useless answer. Separate them. First: may I collect and store this data? In the EU and UK that is a data protection question. A company's own details are not personal data, but [email protected] is, and so is a named practitioner, so you need a lawful basis under Article 6 of the GDPR, most often legitimate interests under Article 6(1)(f), plus the information duty in Article 14 that applies when you did not get the data from the person. Second: may I send this message? That is an electronic communications question, governed by the ePrivacy Directive as each country transposed it, and the answers diverge sharply across the five markets below. The general treatment is in is lead generation legal, and the collection side in is web scraping legal in Europe.
This is a summary of published regulator positions, not legal advice, and national practice changes. Check the linked pages before you send anything.
Country by country: what lets you email a business
| Country | Rule for marketing email to a business address | Instrument | Regulator or official text |
|---|---|---|---|
| Italy | Prior consent. The electronic-marketing rule is not limited to consumers, and the Garante has acted against senders using addresses harvested from public sources. | Codice privacy, art. 130 | Garante per la protezione dei dati personali |
| Germany | Prior express consent. Email advertising without it is an unreasonable nuisance towards any market participant, businesses included, with a narrow existing-customer exception. | UWG section 7(2) no. 2 and 7(3) | Gesetze im Internet, federal consolidated text |
| Spain | Prior consent, unless there is a prior contractual relationship and the message concerns similar products. The prohibition is worded by channel, not by recipient type. | LSSI, Ley 34/2002, art. 21 | BOE consolidated text; enforcement by the AEPD |
| France | Opt-out for genuine B2B. A professional may be contacted at a professional address about their profession, provided they are informed at collection and can object in every message. | ePrivacy transposition, CNIL guidance | CNIL, prospection commerciale |
| United Kingdom | The electronic-mail marketing rule does not apply to corporate subscribers, so B2B email is permitted; UK GDPR still applies to any named individual's address and the right to object stands. | PECR reg. 22; UK GDPR | Information Commissioner's Office |
The practical consequence for a five-country list like ours is that the same 458 rows carry three different outreach plans. In France you can email a dentist about dentistry with a working opt-out. In Italy, Germany and Spain the safe route to an email is consent, which usually means the phone, a form the practice itself submits, or postal mail; note that our phone fill rate was 99.3 percent against a 60.3 percent email rate, so the channel that is legally simpler in those markets is also the better populated one. In the UK a practice address at a limited company is outside the electronic-mail rule, but a named partner's address is still personal data.
Telephone rules are separate again and moving: France changed its telephone prospecting regime in August 2026, and most countries operate an opposition register you must screen against. Check the national register before dialling, not after.
What to record before the first message
- Source and date for every field. Which listing, which page of which website, collected when. Article 14 requires you to tell people where their data came from, and you cannot do that from memory.
- A legitimate interests assessment, written once per campaign. The purpose, why the processing is necessary for it, and why it does not override the recipient's rights. Two pages is enough; nothing is not.
- The lawful basis per country and per channel, decided before the send and stored with the segment.
- An objection route that works. One click, honoured across all your lists, and applied to the underlying record so a later re-collection does not resurrect it.
- A suppression list keyed on the address, not the campaign.
- Retention. Delete records you never contacted and records that objected, on a schedule you actually run.
Making the outreach worth the record
A record costing a cent and a half is only cheap if what you send is worth reading. Three things carry disproportionate weight when the recipient never asked to hear from you. Reference something observable in the record, since you collected the category, the city and the site: a message that names what the practice actually does beats a merge field. Ask for a small, specific next step rather than a meeting. And keep the first message short enough that the opt-out is visible without scrolling, because a visible opt-out is both the legal requirement and the cheapest way to keep a list clean.
Then measure the funnel end to end, because the cost of the record is the least interesting number in it. Track delivered rows, usable rows, contacted, replied, qualified and closed, and divide spend by customers, not by rows. Our cost comparison across sources, with published prices for lists, ads and agencies, is in how much does a lead cost, and the structured company fields that make a record worth enriching are described under company data collection.
Sources & further reading
- EUR-Lex — Regulation (EU) 2016/679 (GDPR), Articles 6 and 14
- EUR-Lex — Directive 2002/58/EC on privacy and electronic communications
- Garante per la protezione dei dati personali — Telemarketing e comunicazioni indesiderate
- Normattiva — D.lgs. 196/2003, Codice in materia di protezione dei dati personali (art. 130)
- Gesetze im Internet — UWG section 7, Unzumutbare Belaestigungen
- BOE — Ley 34/2002 (LSSI), consolidated text, art. 21
- CNIL — La prospection commerciale par courrier electronique, SMS-MMS et automate d appel
- ICO — Business to business marketing under PECR and UK GDPR