Find a company website from its name, in bulk

You have a spreadsheet with two columns: company name and city. It came from a trade show, a registry export, a member list or a file a colleague handed over. Before you can email these companies, find their contact addresses or look at their social profiles, you need to find each company's website from its name. Googling them one by one takes time, and the top result is often a directory listing rather than the company's own site.

Short answer

To find the websites of a list of companies from their names and cities, you have three kinds of tools: searching Google by hand, name-to-domain lookup services billed by credit (a Google Sheets add-on or an API), and prospecting platforms that chain this step with email search. Outsend is in the third group. Its "Find the website" module processes the whole list in bulk with no code, writes the official site in one column, and puts the company's directory listing in another. The real cost is not the list price: it is the rows you pay for and cannot use, such as a directory page counted as a website, a row that already had its site, or a duplicate.

What comes back in your file

You upload a CSV file, or paste the link of a Google Sheet shared as viewable. Only the name column is required. City, address, phone number or company ID help if you have them. The module adds three columns and keeps every other column unchanged. The final file exports to CSV, JSON or XLSX.

nom
ville
site_web
page_annuaire
site_finder_match
your input
your input
official site, or empty
directory listing, if any
reason for the decision

The values in site_finder_match stay in French in the exported file, so here is what each one means.

Value in the fileWhat happened
site propre (own site)A non-directory site passed the selection rule below. It is in site_web.
page d'annuaire seule (directory only)The search only shows the company on a directory or platform. That page is in page_annuaire and the website cell stays empty.
aucun site retenu (no site kept)There were results, but none stood out clearly enough for this company.
site déjà présent (already had a site)The row already had a website. It was not searched.
nom inexploitable (unusable name)The name could not be searched. The row is kept as it was.
recherche indisponible (search unavailable)The search still failed after retries. The row is written empty with this reason instead of being dropped.

How the module decides

The module uses no AI and opens no website. It reads the results of one web search per company and applies the rules set out in the module documentation. Before searching, it strips the establishment label that registries add to the legal name: NALDEO - SITE DE TARNOS becomes NALDEO. Otherwise the search would target a label no company writes on its own site.

Step 1

Search

One web search per company, on its name and city. No website is opened.

Step 2

Count

Once the whole list is searched, the module counts how many different companies each site came up for, and through how many different pages. A site seen for at least two companies through at least two different pages is treated as a directory or platform, since a directory has one page per company. There is no hand-kept list of directories. The count works in every language and carries over from one list to the next.

Step 3

Choose

Among non-directory sites, site_web gets the first one that meets either condition. It is the only non-directory site for that row and its home page is in the top five results. Or it holds at least two results, including the first or second. Otherwise the cell stays empty.

Step 3 is strict on purpose. An empty cell is better than a wrong website, because a wrong website sends the email search to the wrong domain, and every later step inherits the error.

When the website cell stays empty

  • The company has no website. Nothing goes in site_web. If the company has a listing on a directory or platform, that listing goes in page_annuaire. To build a list of exactly these companies, see the page on finding businesses that have no website.
  • Franchises and chains. A chain's site has one page per store. As soon as two stores of the same chain come up, in your list or in an earlier one, the chain's site is counted as a directory and the store page goes in page_annuaire.
  • Two companies with the same name in the same city. They get the same search and the same results. If your file has two rows with the same name and city, check those two rows by hand.

What bulk website lookup really costs

Tools in this market bill in one of three ways: credits used per lookup, a monthly plan with a row quota, or a charge per API call. In all three cases, what you actually pay for depends on three things.

  • Directory pages counted as websites. A directory listing in the website column looks like a hit, but it will not lead to the company's email address.
  • Rows that already had a website. In Outsend these rows come back untouched and are never searched, so running the module after a faster step costs nothing on rows that step already filled.
  • Time spent checking. Without a reason per row, you have to recheck everything. With site_finder_match, you filter the rows to review and leave the rest.

Company URL Finder and Outsend: two different jobs

Company URL Finder is one of the tools that show up for this search. What it does well: it works directly inside Google Sheets through an add-on, it lets you filter results by country, and it offers an API plus integrations with Clay and Zapier. It runs on credits, and you get free credits to try it with no card required.

Outsend fits a different job, where the website is one step in a chain. Once the site is found, the same file goes on to finding business emails on the company's website or to pulling the company's social media profiles. If you work mainly in a spreadsheet and just want a domain column, the Google Sheets add-on is the shortest route. If the website feeds other steps, chaining them in Outsend saves you exporting the file between tools.

The documentation recommends running this module after two steps that read French public registries loaded locally (companies by activity, then public-registry enrichment), then following it with email search. The registry steps are instant, so the website search only sees the rows they could not fill. You can save this order as a no-code pipeline that chains the modules.

Three lists this works for

  • A nonprofit has a registry export of local businesses it wants to approach as sponsors. The registry gives names and addresses, the module adds the websites, and email search finds the contact address.
  • A freelance designer comes back from a trade show with a list of exhibitors and their cities. She pastes it as CSV and gets the websites back to prepare her messages.
  • A student looking for an internship has listed target companies in a Google Sheet. He shares the link as viewable, and the file comes back with each company's website so he can read their careers page.

The module is one of the Outsend features. Outsend is in alpha and anyone can open an account.

Common questions

Can I find a company's website from its name in Excel?

Not with Excel alone. Save your sheet as CSV, import it into Outsend, then export the result as XLSX and open it in Excel.

How do I find website URLs for a list of companies in bulk?

Upload the list with at least a name column, and a city column if you have one. The module processes every row, then writes the website, the directory page and the reason for each decision.

Why do some rows have no website?

Either no result stood out clearly for that company, or the company only appears on directories. The site_finder_match column gives the exact reason for each row.

Does it use AI?

No. It applies fixed rules to web search results: how many companies and pages each site appears for, where the home page ranks, and how many results a site holds.

Will it overwrite the websites I already have?

No. A row that already has a website is not searched and comes back as it was, marked site déjà présent.

Do I need to write code?

No. Everything happens in the interface: import the file, run the module, export. There is also an API if you want to call it from your own tools.

Run this on your own lists

This step and the others in a single pipeline. The alpha is free.

Get started for free