← The blog
Guide · Data

How to deduplicate a business database with Claude

Compare your file to a file you received to learn how many rows you do not have yet, and what they add to your records: the method, explained simply, then a prompt to copy.

By Nicolas Morillot Co-founder of Scalon
The short answer

To deduplicate a database against a file you received, do not rely on the name alone: several clues must agree, and that is what our Claude prompt does. Tested by Scalon in November 2026 on more than 1,500 businesses, it was right 99% of the time when it called a row new. In a hurry? Go straight to what you need before running the prompt.

Get the list of businesses in your market, with the contact details available: tell us which one.

Get the list for my market

Published on November 4, 2026

Key figures
61%
of matches made on name and ZIP code alone were wrong
Of 100 matches of this type reviewed by Scalon, 61 pointed to two different businesses.
99.4%
of the rows Claude called new really were
944 of 950 in our test: two CRM-style files matched against Scalon lists of 1,513 auto repair shops and restaurants.
27
rows to settle by hand out of 1,513
The prompt sorts everything else on its own; our two runs took 5 and 9 minutes.

In this article

Why is "Remove Duplicates" not enough?#

Take a dental practice in Lyon, France. In one file it is called "SELARL Dr Martin". In another, "Cabinet dentaire du Parc". In a third, "CENTRE DENTAIRE DU PARC - Lyon 3". It is the same practice, written three ways.

Excel's "Remove Duplicates" feature only finds rows that are strictly identical. Here, it sees nothing. The same goes for a real estate agency written "Agence Dupont" here and "DUPONT IMMOBILIER SAS" there, or for a restaurant whose name changes from one directory to the next. Formulas do better, once phone numbers, names and postal codes are first put in the same format: see our guide to deduplicating a file with Excel or Google Sheets.

Two situations look alike, but they are not the same:

  • A duplicate inside your own file: the same record entered twice. You keep one.
  • A row you already know in a file you received: you buy, swap or receive a file, and you want to know which of its rows you already have.

This article is about the second one. It decides what you pay for, what you import and who you call. A business counted as "new" when it is already a customer means calling a customer like a stranger. A new one counted as "already in my data" means losing a prospect.

The goal: know how many rows of the received file you do not have yet, and what information this file adds to your records (a phone number, an email, a website, a SIRET number, the French ID of a business location). It can be a Scalon file or any other file you received; our test measured it with Scalon lists.

This guide does not cover duplicates inside your own file: Excel's feature is enough for identical rows; for the others, the same principle (several clues that agree) applies.

Which clues prove it is the same business?#

A single shared detail proves nothing. Two records can share a name and a ZIP code without being the same business: two bakeries called "Au Fournil" in the same town, two auto repair shops called "Auto Service" at the same ZIP code. Scalon matches millions of records. Here is what we measured, on cases reviewed one by one.

  • Name and ZIP code alone: wrong 61 times out of 100.
  • The phone number: 1 number in 10 is not the business's direct line: a switchboard, a booking platform, a person's cell phone or an invalid number.
  • The website: 4 websites in 10 are not the business's own site. It is often a network's or a storefront brand's site, a directory page or an invalid address.
  • The SIRET number: 16% of published SIRET numbers are not the active operator's.
  • Phone, name and address that agree: 2 errors in 100.
  • Website, address and phone together: 0 errors in 150 cases.
Out of 100 matches, how many are wrong?Share of wrong matches depending on which clues agree, measured by Scalon on reviewed cases (100 cases for name + ZIP code, 150 for the others; 2026).Out of 100 matches, how many are wrong?The more independent clues agree, the fewer mistakesName + ZIP code onlyName + postal code only: 61.0%61.0%Phone + same street, no namePhone + same street, no name: 12.7%12.7%Phone + same address, no namePhone + same address, no name: 7.3%7.3%Phone + name + addressPhone + name + address: 2.0%2.0%Website + address + phoneWebsite + address + phone: 0.0%0.0%
Share of wrong matches by clues used, measured by Scalon on blind-judged cases (2026).

Remember the rule: a single clue often misleads; the more independent clues agree, the fewer mistakes. With phone, name and address, the error drops to 2 in 100. The prompt is built on this rule.

The SIREN number (the French company ID, 9 digits) identifies the company, the SIRET number (14 digits) one of its locations. Do you need a SIRET number in your file? See the question below.

The five-step method, in plain terms#

This is the method Scalon uses to match its records, simplified for a file of a few thousand rows. The prompt follows it step by step. Here is why each step exists.

1. Read the columns and how full they are. Before comparing, you need to know what each file contains. A "Phone" column that is 20% filled will not help much. A SIREN number slipped into the SIRET column would skew everything. Claude builds a table of every column and spots the mixed-up cells.

2. Put each address on the map. "12 rue de la Gare" and "12, r. de la Gare" are the same address, but not the same text. Once placed on the map (this is called geocoding), they land in the same spot: two records less than 200 meters apart have something in common, but that is not enough on its own: two neighboring shops are also close. The service is free: it is the Base Adresse Nationale, a French government service. Claude sends it the addresses for you.

3. Clean up the same way. You compare what can be compared:

  • the phone number becomes a 10-digit number ("+33 6…" becomes "06…");
  • the name loses legal-form suffixes such as "SARL" or "SAS" (French company types) and accents, then the words that are too common ("garage", "restaurant");
  • the website is reduced to its domain;
  • shared values are set aside: a number held by several businesses with different names is a switchboard, not proof.

4. Compare only the records that have something in common. Comparing every row to every other would mean hundreds of thousands of comparisons for a few thousand rows. You keep only the pairs that share a phone number, an email, a website, a SIRET number, a nearby address or a close name.

5. Decide on five levels. From "same business, certain" to "not the same":

LevelMeaningSorted into
1Same business, certainAlready in my data
2Probably the sameAlready in my data (marked "probable")
3I don't knowTo check
4Probably not the sameNew
5Not the sameNew

When two pieces of evidence agree, the level is set by calculation. Otherwise, Claude reads the pair the way a person would and writes its reason in a few words. It checks the classic traps: same address but two different shops in a shopping mall, same storefront name in another town, headquarters versus location, a closed or relocated business.

Why is a Scalon file easy to compare?#

Our files are built for this matching. A good part of the work of steps 2 and 3 is already done in them:

  • one row = one physical business location, already matched across several directories, with a Scalon ID that does not change from one delivery to the next;
  • the map position (latitude and longitude) of each business: only the addresses in your file are left to place;
  • the location's SIRET number, and its other SIRET numbers when several numbers point to the same place;
  • phone numbers and emails kept separate, one per value, and an address in postal format.

In our test, every row of the Scalon lists had its map position. With these positions and these numbers, Claude only had to read 125 pairs per file itself; it settled everything else by calculation, mostly by ruling out simple neighbors.

Prospecting local businesses? Get the list for your market, your area and your target, ready to call.

Get the list for my market

What do you need before running the prompt?#

Four things, all simple.

1. A Claude subscription at $20 a month. Claude Code and Cowork, the mode of the Claude app that works on your files, are included. The prompt writes and runs its own calculations, and asks you a question only if it is stuck. Our runs took 5 and 9 minutes. It uses a little of your usage quota.

2. The right setting: the Opus model and a high effort level. Effort is the amount of thinking time the model gives itself. It is the setting we tested the prompt with. A prompt cannot change the model or the effort on its own: set them before pasting the text.

  • In Claude Code: type /model opus, then /effort high.
  • In Cowork: click the model name next to the send button, choose Opus, then high effort.

3. Your data, in one of these places:

  • two CSV or Excel files in the same folder: yours and the received file;
  • a Google Sheets link;
  • a CRM connected to Claude by a connector (HubSpot, Salesforce…): it is read, never modified. The simplest way is still to export your companies as CSV.

Send only the useful columns: name, address, ZIP code, city, phone, email, website, SIRET number. In the app, an uploaded file is limited to 30 MB; with Claude Code, the file stays on your computer. Our test files had at most 963 rows.

4. Addresses in France. Outside France, the French government's geocoding does not apply: address comparison is less reliable, and the prompt then leans more on phone numbers, websites and emails.

The prompt to copy#

We tested the French version of this prompt; this is a faithful translation.

Paste the text below into Claude Code or Cowork, after setting it up. If it is not running on Opus at high effort, it tells you at the start.

You are a specialist in matching files of French businesses. You work alone, with Python, in Claude
Code or Claude Cowork.

<goal>
I have my own business data (my CRM, my customers, my prospects) and I have just received a file
of business locations, for example from Scalon. I want to know what this file really brings me:
1. how many of its rows I do not have yet;
2. for the ones I already have, what information it adds (phone, email, website, SIRET number…).
I will decide whether to buy, import or prospect based on your answer: a business counted as "new" when
I already have it makes me call an existing customer; a new one counted as "already in my data" makes me lose a prospect.
</goal>

<done>
Done means: you have given me the two answers in numbers, and the file "what_the_file_adds.xlsx" exists
with four sheets: "New", "To check", "Already in my data" (with the extra information and the level of
certainty) and "Method" (your assumptions and what you could not verify).
</done>

<autonomy>
Go all the way without stopping to ask for approval. When a point is uncertain, take the most
reasonable assumption, write it in the "Method" sheet and keep going. Ask me a question only if you cannot find my
data or if you do not know which of the two files is mine, and in that case put all the questions in a single message.
My data stays intact: everything you produce is a new file, and you never write to my CRM.
If you are not running on Claude Opus with a high effort level, tell me in one sentence at the start, then keep going.
</autonomy>

<sources>
My data and the received file may be:
- CSV or Excel files in the working folder;
- a Google Sheets link: read it through the Google Drive connector if it is connected; otherwise, if the link is shared with "anyone
  with the link", download it as CSV by replacing the end of the link with
  `export?format=csv&gid=<tab number>`;
- a CRM connected to Claude (HubSpot, Salesforce, Pipedrive…): read only the companies or locations, with the useful
  columns (name, address, ZIP code, city, phone, email, website, SIRET number).
If I have not told you anything, look in the working folder: with exactly two data files, recognize mine and
the received file by their columns and their content.
</sources>

<method>
Why this method: two records of the same business almost never read the same ("SARL Garage Martin"
and "Garage Martin Auto"), and a single resemblance often misleads. By matching millions of records, Scalon
measured on reviewed samples that name and ZIP code alone are often wrong (up to six times out of ten),
that one phone number in ten is not the business's direct line, and that four websites in ten are not the business's own site. Two independent
pieces of evidence that agree (phone, name and address) are almost never wrong. Hence the following steps.

1. Column study. For each source, build a table: column, what it contains (name, address, ZIP code,
   city, phone, email, website, SIRET or SIREN number, latitude, longitude, other), fill rate, two examples. Spot
   the poorly filled or mixed-up columns (two phones in one cell, SIREN instead of SIRET, email stuck to another
   word, name copied in front of the address). Note what a row of my data is: a company (its headquarters) or a
   location (a shop, a garage, an agency); when in doubt, "location".

2. Geocoding, that is, the position of each address on the map, which makes it possible to compare two addresses written
   differently. For each French source without latitude or longitude, send the addresses yourself to the free service
   of the Base Adresse Nationale: a UTF-8 CSV (columns id, adresse, code_postal, ville) posted as
   `multipart/form-data` to `https://data.geopf.fr/geocodage/search/csv`, field `data` = the file, one `columns` field per
   column (adresse, code_postal, ville), `postcode` = code_postal; one upload at a time, 200,000 rows and 50 MB at most.
   Keep latitude, longitude, result_score, result_type and result_citycode. A position is reliable if result_score ≥ 0.6
   and result_type = housenumber; "street" only locates the street. Coordinates already supplied by a source are
   taken as they are. Without web access, prepare "a_geocoder.csv" and tell me: "Open
   adresse.data.gouv.fr/outils/csv, drop this file, run it, then put the result back in the folder"; with no
   answer from me, keep going without positions.

3. Cleaning, in both sources the same way:
   - phone: digits only, in the French 10-digit format (+33 6… becomes 06…); several numbers in one
     cell: keep them all;
   - SIRET number: 14 digits with no spaces; 9 digits = SIREN; the SIREN of a SIRET = its first 9 digits;
   - website: the domain only (no http, www or path); social networks, directories, booking platforms and
     pages hosted on a shared domain do not count as a website;
   - email: in lowercase; an address on a public mail service (gmail, orange, wanadoo, free, hotmail, outlook,
     yahoo, laposte, sfr, icloud…) is compared in full, never by its domain;
   - name: uppercase, without accents or punctuation, without legal form (SARL, SAS, SASU, EURL, SA, SNC, EI, ETS, STE,
     SOCIETE); then the "distinctive name": the remaining words, minus those present in more than 5% of the rows of the
     source (GARAGE, AUTO, RESTAURANT…). Two names are compatible if their distinctive names look alike (similarity
     ≥ 0.5), share a word, or if one of the two is empty.
   Then shared values: in each source, a phone held by 3 rows or more with different names is a
   switchboard or a platform; a website held by more than 3 rows is a network site; a SIRET number held by 5 rows or
   more is a headquarters. A shared value never counts as proof.

4. Pairs to compare: the pairs (row of my data, row of the received file) that have at least one thing in common: same
   SIRET number, same unshared phone, same email, same unshared website, reliable positions less than 150 m apart, or same
   town and close distinctive names (similarity ≥ 0.8). A row of the received file with no pair is new.

5. Decision, on the scale below.
   By calculation, without reading: level 1 when two independent pieces of evidence agree with no trap: same SIRET number, positions less than
   200 m apart (or same ZIP code with no position) and compatible names; or same unshared phone, compatible names and
   positions less than 200 m apart or same street in the same town; or same unshared website, same unshared phone and
   positions less than 200 m apart.
   Also by calculation, level 5: pairs whose only thing in common is being neighbors (less than 150 m), with names that are
   not compatible and no phone, email or website in common. In a town center, these are almost always two different
   shops on the same street, and reading them one by one costs a lot for nothing.
   Read all the other pairs yourself, in batches of 50, one compact line per pair, and give each its level with
   a reason of ten words at most. Traps to check: same address but different shops (shopping mall,
   shared building); same storefront name in another town; headquarters versus location; two different people (two
   first names); closed or relocated business; a single thing in common, which is not enough. A different name at the same place
   with the same phone is often a takeover or a trade name: level 2, not 1.
   Read them all: every pair left aside becomes a "To check" row that I will have to sort by hand. Beyond
   2,000 pairs to read, tell me at the start with that number, then keep going.
   Each row of my data is matched to a single row of the received file (the best level, then the smallest
   distance); a second received row that points to the same business goes into "To check".
</method>

<scale>
1 = same business (certain) · 2 = probably the same · 3 = I don't know · 4 = probably not the same ·
5 = not the same. Levels 1 and 2 → "Already in my data" (level 2 marked "probable"); 3 → "To check";
4 and 5 → "New".
</scale>

<example>
A pair read:
A: SARL GARAGE MARTIN · 12 rue de la Gare 35000 Rennes · 02 99 00 00 00
B: Garage Martin Auto · 12 Rue de la Gare, 35000 Rennes · +33 2 99 00 00 00 · SIRET 12345678900012
→ level 1 · same phone, same address, same distinctive name
</example>

<result>
Start your final answer with the two answers, in this form:
"Of N rows in the received file, X are new to you, Y are already in your data (P of them probable), Z are to
check."
"For the Y rows you already have, the received file adds: a phone for a rows, an email for b, a website
for c, a SIRET number for d (and any other useful column). It gives a different value from yours for e phones."
Then a table of the number of pairs by level and by way of deciding (calculation or reading), the assumptions you made alone,
what you could not verify, and the name of the Excel file.
</result>

How do you read the result, and what next?#

Claude gives you a two-sentence answer, then an Excel file, "what_the_file_adds.xlsx", with four sheets.

  • New: the rows you do not have. This is your list to prospect. Before calling, qualify this database: a new file is not necessarily an accurate one.
  • Already in my data: the rows you know, with the extra information and the level of certainty. Complete your records with this information without creating duplicates: see data enrichment.
  • To check: a few rows to settle by hand, in a few minutes. Out of 1,513 rows, there were 27.
  • Method: the assumptions Claude made and what it could not verify.

Before importing, pick ten "New" rows at random and look up their phone numbers in your CRM. Make a copy of your CRM before any merge: the prompt changes nothing, but the import is up to you, and the merge then happens in your CRM, depending on its import tool. To build a file to prospect, see also the prospect list.

Need the list for your market? We send it with the contact details available, for the scope you choose.

Get the list for my market

What did the test on 1,513 businesses show?#

We wanted to know whether the method works in more than one industry. So we tested it on auto repair shops and on restaurants, two very different trades: names, websites and habits do not look alike.

The test: we matched two CRM-style files against Scalon lists, knowing the answer. The first has 448 auto repair shops from one département (a French administrative area, roughly a county), the second 397 restaurants from another, taken as published by professional directories, with their mistakes and mismatched formats. The Scalon lists for the same départements had 963 and 550 businesses, that is 1,513 received businesses. The prompt worked alone, with the Opus 5.5 model, about 5 minutes for the auto repair shops and 9 for the restaurants.

What Claude announcedCountOf which correct
New950944
Already in my data536531
To check27—
1,513 businesses received, sorted by ClaudeNovember 2026 test: 963 auto repair shops and 550 restaurants compared with two test CRMs of 448 and 397 rows (Scalon).1,513 businesses received, sorted by ClaudeAuto repair shops and restaurants, two French départementsNewNew: 950950Already in the CRMAlready in the CRM: 536536To checkTo check: 2727
November 2026 test: 963 auto repair shops and 550 restaurants compared to two test CRMs of 448 and 397 rows (Scalon).

In concrete terms:

  • Of 950 rows called new, 944 really were: 99.4%. You can prospect them.
  • Of 536 rows called already present, 531 were correct.
  • 27 rows are to check, or 1.8% of the file. 20 of them point to a business the CRM already had.
  • Of the 557 received rows that were already in the test CRMs, only 6 passed for new.

The answer key comes from our matching. Every disagreement with our data was reviewed blind by a second Scalon reviewer, who saw neither the prompt's answer nor ours, because our own links can be wrong. We also reviewed blind cases where the prompt and our matching agreed: 150 "already in my data" rows, all confirmed; 100 "new" rows, 98 confirmed new and 2 undecided. Finally, a third review, done with a model from another family, reviewed everything: with it, 943 of the 950 rows called new really are, or 99.3%.

The received file also brings information. Our two test CRMs had no SIRET number at all and almost all had a phone number: hence many SIRET numbers added and almost no phones. On your file, these figures will differ; that is exactly what the prompt measures. Of the 536 records classified "already in my data", it adds a SIRET number for 462 records, an email for 244, a website for 180, and a missing phone for only 6.

What the file adds to records you already haveOf the 536 rows marked "already in my data" in the two test CRMs, number of records to which the received file adds each piece of information (November 2026).What the file adds to records you already have536 rows already in the CRM, two industriesSIRETSIRET: 462462EmailEmail: 244244WebsiteWebsite: 180180Missing phoneMissing phone: 66
Of the 536 rows classified 'already in my data' in the two test CRMs, number of records to which the received file adds each piece of information (Scalon, November 2026).

This result is useful for deciding. If the received file adds almost nothing to your records and almost all its rows are already known to you, do not buy it: ask the seller for an extract and run the prompt on it before buying. If it has many new rows and completes your records, it really brings you something.

Frequently asked questions#

"Dédoublonnage" or "déduplication": what is the difference?#

The two French words mean almost the same thing. Some reserve "dédoublonnage" for cleaning up a single file, and "déduplication" for comparing several files. Websites do not agree. This article covers the second case.

Do I need a SIRET number in my file?#

No. It helps when it is present on both sides, without being enough on its own. In our test, the two test CRMs had no SIRET number: phone, name and address were enough. To find a company's number, see how to find a SIRET number; to learn where these numbers come from, see the Sirene database.

What is the maximum number of rows?#

The French government's geocoding accepts 200,000 rows and 50 MB per upload; in the Claude app, an uploaded file is limited to 30 MB. Our test covered files of 397 to 963 rows: for a much bigger file, split it by département.

Is my data sent anywhere else?#

Your files are sent to Anthropic, which runs Claude, like the rest of your conversations. The French government's geocoding service receives only the addresses, with the ZIP code and city: no names, phone numbers or emails. If your file contains personal data, send only the useful columns.

How do I avoid duplicates in the future?#

Match each new row against your database before importing it, with the same principle: several clues that agree, never the name alone. To complete your records afterward, see data enrichment.

What do other sources say about the share of duplicates in a CRM?#

The figures in circulation are about duplicates inside a CRM, and these sites repeat them with no published measurement; our test measures something else: what a received file adds to your data.

What if I do not have Claude Code or Cowork?#

In the chat version, Claude cannot always reach the geocoding service. The prompt then prepares a file "a_geocoder.csv". Open adresse.data.gouv.fr/outils/csv, drop it in, run it, then put the result back in the conversation.

Method#

The figures come from an end-to-end test done in November 2026: an auto repair shop and a restaurant have nothing in common, hence the choice of two industries. The error rates of the clues come from cases judged by two independent reviews.

Method details and limits

The two test cases. Auto repair shops: 448 records from a professional directory in one département play the CRM, compared to 963 Scalon businesses (one row per business, active map listing for an auto repair shop). Restaurants: 397 records from a restaurant directory in another département, compared to 550 Scalon businesses. One row counts as one business, in its state on November 4, 2026. The test CRM records are taken as published, without cleaning.

The answer key. Two rows point to the same business if they are in the same set of our matching. The tested prompt never sees this answer key. Every disagreement between the prompt and the answer key was reviewed blind by a second Scalon reviewer, who saw the two records side by side without knowing either answer. Review of the agreements: 250 cases (150 "already in my data", all confirmed; 100 "new", 98 confirmed, 2 undecided). Because the second reviewer and the prompt rely on the same model, the 365 cases reviewed (disagreements and agreements) were reviewed a third time by a model from another family, locally, with no web access. With this answer key, counting each undecided case against the prompt: 943 of the 950 rows called new are correct (99.3%), 524 of the 536 "already in my data" rows (97.8%); among the agreements, 149 of the 150 "already in my data" and 94 of the 100 "new" are confirmed, and no "new" row turned out to be already present. Our own links can be wrong: our rules allow at most 5% error.

Results by industry.

IndustryCalled new (wrong)Called already present (correct)To check
Auto repair shops621 (4 wrong)324 (322 correct)18
Restaurants329 (2 wrong)212 (209 correct)9

By level. 514 rows classified "same business": 513 correct. 46 rows classified "probable": 44 correct (counts made on the settled cases, leaving out the few cases that stayed undecided). Auto repair shops: 520 pairs (125 read, 395 by calculation). Restaurants: 1,274 pairs (125 read, 1,149 by calculation). Measured durations: about 5 minutes (auto repair shops) and 9 minutes (restaurants).

The five versions of the prompt. v1 capped reads at 300 pairs. v3, which drew 100 pairs at random beyond a threshold, left 187 rows "to check" in one run: the cap was removed in v4, and all doubtful pairs are read. In v4, one run on the restaurants had 1,122 pairs read, mostly simple street neighbors with nothing else in common: v5 rules them out by calculation. The published prompt is v5.

The clue measurements. For each rule, 150 cases were judged by two independent reviews. A rule is adopted only if its error rate does not exceed 5%. Name and ZIP code alone: out of 790 new links proposed to the business registry, 100 reviewed, 61 wrong; across all candidates carried by this key alone, 38 to 45% are wrong. Phone, name and address: 3 errors in 150 (2.0%). Website, address and phone: 0 in 150. Phone and address, with no SIRET number or name: 7.3% wrong. Phone and same street, no name: 12.7% wrong. The shares of shared phones (4,073 numbers reviewed), of websites that are not the business's own site (2,962 sites reviewed) and of SIRET numbers that are not the active operator's (1,667 reviewed) come from reviews done in September 2026.

The limits. Two industries and two départements: another trade or another territory can give other results. The model cannot check its own effort setting: in our runs, it said it was running on Opus without being able to confirm the effort. The runs were done on Scalon's server, under Claude Code conditions (the only web access was geocoding), not on a customer subscription or in Cowork: if Cowork cannot reach the geocoding service, the prompt guides you to do it yourself. The received file was a Scalon list each time, already placed on the map; a received file without positions must be geocoded too. Our test CRMs had no SIRET number and almost all had a phone: the part of the prompt that compares SIRET numbers was not put to the test. A database with very common names, no phone and no precise address would be harder.

Sources#

Cite this study#

The full citation, with sample sizes
Scalon Observatory, "How to deduplicate a business database with Claude," November 4, 2026: of 1,513 businesses (963 auto repair shops and 550 restaurants compared to two test CRMs of 448 and 397 rows), 944 of the 950 rows called new really were (99.4%), 531 of the 536 called already present were correct, 27 rows to check (1.8%). https://scalon.fr/en/blog/deduplicate-database

Do you sell to shops and small businesses?

Restaurants, practices, agencies, auto repair shops: Scalon links each business to its company and its public contact details.