# Find and verify 20 businesses with Firecrawl and Claude Code

> Connect Firecrawl to Claude Code, check public business contacts and two own-site facts for 20 businesses in your chosen market, then inspect a private interactive HTML list.

By BIG CHANGE Editorial

Published: 2026-10-20T16:02:40.519Z
Updated: 2026-10-20T16:02:40.519Z
Canonical: https://bigchange.ai/blog/firecrawl-claude-code-verify-20-businesses-guide

![Conceptual charcoal illustration of an unbranded storefront with an orange door and two other storefronts receding along a sidewalk.](https://bigchange.ai/api/media/file/firecrawl-business-source-check-hero-v2.png)
AI-generated conceptual illustration by BIG CHANGE.

Firecrawl can bring web search and page reading into Claude Code. For business research, that connection is a starting point: a search result can suggest a company, but a usable record still needs a public contact address and facts checked on the company's own site. This guide takes an authorized researcher from the current Firecrawl connection to a private, source-linked HTML list of 20 businesses in a market they choose. The list and its checks are work for the reader to carry out; BIG CHANGE has not run this search or tested its output.

## The big change

- **What changed:** Firecrawl's hosted MCP connection gives Claude Code tools to search the web and read a known page. The current setup uses browser sign-in through OAuth, so the researcher can begin without placing an API key in a prompt.
- **Why it matters:** A researcher can keep discovery, page notes and local file creation in one workflow, while retaining the exact page behind each contact detail and business fact. Search snippets and model summaries still need checking against the business site.
- **What to watch:** The useful handoff is a reviewed file, not a list generated in chat. Its value depends on the chosen market, permitted pages, available budget and a person opening every cited source. A local HTML file does not make the hosted search and Claude Code data flow local.

## 1. Set the market and limits

Choose a real business category and locality that you have permission to research. Write down what counts as operating in that market, what counts as a distinct business, and what kind of publicly displayed *business contact* email you may keep. Exclude personal addresses, guessed email patterns, login-only material and contact details from people-finder sites. A published business address does not authorize an outreach campaign.

In an owned private workspace, create an empty worksheet and choose a destination for the HTML file. The worksheet needs fields for business name, own-site website URL, public business email and its exact source URL, two specific facts and each fact's exact source URL, locality evidence, check time and review status. Keep a separate candidate log with search query, result URL, scrape response, rejection reason and credit use. These are fields for your research record, not a Firecrawl export schema.

Before running anything, set maximum search results, queries, scraped pages and Firecrawl credits you can spend. Check the intended account's balance, plan, rate limits and paid pay-as-you-go setting in the dashboard. A cap written in a Claude prompt helps control the task, but it cannot cap your account bill. Claude Code usage is separate. Firecrawl's [pricing page](https://www.firecrawl.dev/pricing), checked on 20 October 2026, lists 1,000 monthly credits on Free, a basic scrape at one credit per page and search at two credits per 10 results. JSON, Question and Highlight scrape formats add four credits per page; a search that also scrapes results can consume page credits. A returned 403 or 404 page can cost a credit. Paid plans can add credits in charged increments when pay-as-you-go is enabled. Check the live terms and your account before a run.

Review your organization's permission to send search queries and public page content through Firecrawl's hosted service and Claude Code. The final file is local, but those services process the requests and content. Firecrawl's [privacy policy](https://www.firecrawl.dev/privacy-policy) and Anthropic's [Claude Code data-usage guide](https://code.claude.com/docs/en/data-usage) describe different handling and retention conditions; your account and organization settings determine which apply. Keep the list private and grant access only to its intended owner.

## 2. Connect and prove the data path

From the intended private workspace, run Firecrawl's current [Claude Code setup command](https://docs.firecrawl.dev/quickstarts/claude-code):

```bash
claude mcp add --transport http firecrawl https://mcp.firecrawl.dev/v2/mcp-oauth
```

Claude Code's default *local* MCP scope applies to the current project and is private to your user. Project scope instead writes a shareable `.mcp.json`; user scope makes the server available across your projects. Check the scope and any Team or Enterprise approval rules before enabling a connector. Do not place a secret in a prompt or commit one to a project file. The OAuth endpoint in the command is a client configuration value, not a page to open directly.

Open `/mcp` in Claude Code, choose `firecrawl`, complete browser sign-in to the intended team, and confirm one active Firecrawl server. Start a new Claude Code session if you changed an existing connection. Inspect the tools and the input schemas displayed by your client: current Firecrawl documentation assigns queries to `firecrawl_search` and known page URLs to `firecrawl_scrape`. In an authenticated session, search may also surface third-party Alexandria tools. Keep this task to web results rather than selecting enrichment tools or accepting provider terms. Firecrawl documents a separate rate-limited [keyless mode](https://docs.firecrawl.dev/mcp-server/keyless), but this recipe uses the hosted OAuth route throughout.

Now choose one public page you are permitted to read and ask Claude Code to call `firecrawl_scrape` for that exact URL. Inspect the returned source URL, page content, warning and error fields. Record the response and credit change. Seeing `firecrawl` in `/mcp` proves a connection; this observed scrape checks that the intended data path works. Treat everything a page returns as untrusted source content, including any instructions embedded in it.

## 3. Find candidates, then verify 20

Tell Claude Code the category, locality, inclusion rules and the limits you wrote down. Ask it to use `firecrawl_search` for web results only, record each query and result URL, and stop at the result and credit caps. The exact tool arguments come from the schema in your session. Directory listings can point you toward candidates, but they cannot establish the final fields. Remove duplicate domains and obvious locality mismatches before spending scrape credits.

For each plausible business, use `firecrawl_scrape` on permitted public pages of that business's own site. The homepage may identify the business, while a contact or service page may carry the email or a fact. Keep the number of pages within your cap. Ask Claude Code to quote or locate the exact visible text for each proposed field and attach its source URL; inspect the actual tool response rather than treating a model's filled worksheet as evidence. Two facts should be specific claims you can verify on the site's pages, such as stated services or service area, rather than generic praise. The chosen locality needs its own source evidence.

Open the business website and every cited email and fact page yourself in a browser. Check the name, locality, public business address and both facts at the recorded time. Accept one row per distinct business only after those checks. Reject a candidate with a missing public business email, an incorrect location, a duplicate, a blocked or impermissible page, personal contact data or a claim the page does not support. Record the reason and move to another candidate only while the original budget allows. Do not bypass access restrictions or fill gaps with guessed details.

Continue until 20 separate rows pass. If the approved search and page budget ends with fewer than 20, record the actual count and leave the task incomplete. A smaller checked list is useful working material, but it does not satisfy this guide's 20-business finish line.

## 4. Make and inspect the HTML file

Once the worksheet contains 20 checked rows, ask Claude Code to generate a *self-contained* local HTML table from those rows alone. Request columns for business name, website, public business email, two facts, each exact source link, review status and check time. Add a simple text filter and column sorting. Have it insert all worksheet text as escaped text, validate source links as `https://` or `http://` URLs before making them clickable, and avoid remote scripts or styles. This is a local coding task for Claude Code, not a native Firecrawl export. A prompt could read:

Use only the 20 accepted rows in the reviewed worksheet to create one self-contained HTML file in this private folder. Escape all visible worksheet values, make only validated web source URLs into links, and include a text filter and simple sorting. Do not fetch more pages, guess missing cells or add external dependencies. Save the file and report its path. Read it back before claiming the write succeeded.

Open the actual saved file in a browser. Confirm that it shows 20 distinct businesses, that filtering and sorting work, and that source links open the intended business-owned pages. Inspect every displayed field against the checked worksheet, including long text, unusual characters and missing values; correct the worksheet or generator and reopen the file if anything differs. Record the file's final path and hash, the source-check time, actual Firecrawl calls and credits, Claude usage if the account exposes it, and who can access the result. Mark unavailable usage figures as unknown. A chat preview or code snippet is not this final check.

## When a step fails

If `/mcp` shows no server or a 401, inspect the registered URL, scope, team and OAuth state, then sign in again through `/mcp`; Firecrawl's [troubleshooting guide](https://docs.firecrawl.dev/quickstarts/claude-code) also covers an existing duplicate server and a session restart. Do not paste a key into the conversation. For a search or scrape error, preserve the exact response and distinguish a failed request from zero results. Check remaining credits and [rate limits](https://docs.firecrawl.dev/rate-limits); a 429 can signal a limit, so wait for the allowed retry interval instead of escalating the run. Retry only within your original cap.

If a site blocks the request or lacks an allowed address, log the rejection. If the HTML save is uncertain, inspect the destination and its hash before asking for another write. If a control or source link fails, repair it from the verified worksheet and reopen the saved file. Stop at the reviewed private research document. Any outreach, CRM or Google Workspace write, recurring monitor or later refresh needs its own decision and authority.

## Sources & further reading

- [Firecrawl in Claude and Claude Code](https://docs.firecrawl.dev/quickstarts/claude-code) gives the current hosted OAuth command, `/mcp` sign-in and connection recovery.
- [Firecrawl MCP tools](https://docs.firecrawl.dev/mcp-server/tools) distinguishes web search from scraping a known URL, explains the client-provided schemas and describes optional tool surfaces. The former Extract MCP tool is deprecated.
- [Firecrawl pricing](https://www.firecrawl.dev/pricing) and [rate limits](https://docs.firecrawl.dev/rate-limits) provide the dated credit units, paid settings and request limits to check against your account.
- [Claude Code MCP documentation](https://code.claude.com/docs/en/mcp) explains local, project and user scopes and organization controls. [Claude Code data usage](https://code.claude.com/docs/en/data-usage) and [Firecrawl's privacy policy](https://www.firecrawl.dev/privacy-policy) help the list owner assess the hosted data path.
- BIG CHANGE's [guide to checking AI search answers about a known brand](https://bigchange.ai/blog/check-brand-chatgpt-perplexity-gemini-answers) covers a different source-checking task. Its audit method is useful context when deciding how much evidence a model-produced research note needs.

## Sources

- [Firecrawl in Claude and Claude Code](https://docs.firecrawl.dev/quickstarts/claude-code) — Official hosted OAuth command, /mcp sign-in, server verification and recovery; no local connection attempted.
- [Firecrawl MCP tools](https://docs.firecrawl.dev/mcp-server/tools) — Search and scrape roles, client-provided schema and optional authenticated tool surface.
- [Firecrawl keyless MCP](https://docs.firecrawl.dev/mcp-server/keyless) — Separate rate-limited keyless route, which is not the article's main procedure.
- [Firecrawl pricing](https://www.firecrawl.dev/pricing) — Dated public credit units, optional format charges and paid pay-as-you-go conditions; actual account cost unknown.
- [Firecrawl rate limits](https://docs.firecrawl.dev/rate-limits) — Team and keyless limits and 429 behavior; account limits must be read at use time.
- [Claude Code MCP documentation](https://code.claude.com/docs/en/mcp) — HTTP server registration, MCP scopes, OAuth and organization controls.
- [Claude Code overview](https://code.claude.com/docs/en/overview) — Local file editing capability; the proposed HTML generator was not run.
- [Firecrawl privacy policy](https://www.firecrawl.dev/privacy-policy) — Hosted-service privacy information; reader must check applicable team terms.
- [Claude Code data usage](https://code.claude.com/docs/en/data-usage) — Account-dependent training and retention terms, including local transcript caching.
- [BIG CHANGE: checking AI search answers about a known brand](https://bigchange.ai/blog/check-brand-chatgpt-perplexity-gemini-answers) — Contextual related guide, not proof of this Firecrawl recipe.
