Playbooks

ChatGPT for B2B prospecting: a setup that works

A prospecting workflow that runs inside ChatGPT with live company data, the exact prompts to use, and the failure modes nobody warns you about.

ChatGPT becomes a prospecting tool the moment it can query a real B2B dataset instead of browsing the web. Connect a data source over MCP and the whole loop, finding accounts, checking why they matter, getting the contact and drafting the opener, happens in one conversation. This is the workflow, not the setup.

For the setup itself, see connect ChatGPT to Signl. Two minutes, and worth reading its caveat: that flow is currently marked beta because we have not verified it end to end.

Why unassisted ChatGPT is bad at this

Worth being specific, because "AI can't do prospecting" is as wrong as the vendor claim it is reacting to.

Ask ChatGPT with only web access for twenty UK fintechs that raised recently and are hiring salespeople, and you get three failure modes at once.

It browses instead of queries. It reads pages one at a time. Twenty accounts is twenty page loads and several minutes, and the result reflects whatever happened to be indexed.

It cannot filter. "Under 200 employees" and "Series A in the last 60 days" are database operations. A web search approximates them by reading text that mentions the numbers, which finds the companies that wrote a blog post about their round rather than the companies that raised.

It invents contact details. This is the one that costs you. Ask for an email with no data source and you get a well-formed guess, because generating plausible text is the job. It looks exactly like a real answer.

A connected data source fixes all three, and the third one is not really about AI at all: it is that pattern-guessed addresses bounce, whoever guessed them. See what "verified email" should actually mean.

The workflow

Five steps, run in one conversation. Everything below has been shaped against the Signl tool surface; substitute your own source and the shape holds.

1. Find accounts with a reason attached

Do not start from a company list. Start from something that changed.

Find UK fintechs that raised a Series A in the last 60 days,
under 200 employees, that have an open sales role.
Show me 20, ranked by fit, with the signal that surfaced each one.

Twenty, not a hundred. That is not modesty. MCP clients cap how much a single tool result can carry, and OpenAI does not publish its ceiling, so a request for a hundred rows can quietly return sixty with no error. Asking "how many rows did the tool return" before you ask for analysis takes one sentence and catches it.

2. Make it show its work

For each one, tell me the signal type, when the event happened,
and when it was first detected.

Two dates rather than one. The event date tells you how warm the account is; the detection date tells you how many competitors have had the same information for the same length of time. A source that only offers one date is usually stamping collection time and calling it recency.

3. Cut the list before you enrich

The expensive step is the contact, so qualify first, while it is free.

Drop anything where the open role is junior or the round
looks like an extension rather than a real Series A.
Explain what you dropped and why.

The explanation is the point. It is how you find out that your filter meant something different to the model than it did to you, which is the most common silent failure in this whole workflow.

4. Get the decision-maker, deliberately

For the top five, find the VP of Sales or the most senior
sales leader. Use only what the tool returns.
If there is no verified email, say so rather than guessing.

Two instructions doing real work. Naming the role targets a specific person rather than whoever ranks highest by default. Telling it to say so rather than guess is what stops a gap becoming a fabrication, and it is worth repeating in the prompt even when the tool would have returned a null.

5. Draft from the signal, not the firmographics

For each contact, draft a two-sentence opener that references
the specific signal. No congratulations on the round.
Lead with what breaks at the size they are hiring toward.

"Congratulations on the raise" is what every other sender opened with, from the same press release, in the same week. The interesting sentence is about the problem that arrives when a company does the thing the round was for. Our funding round signals page covers what that event does and does not imply.

The failure modes nobody warns you about

Silent truncation. Covered above and worth repeating because it is the most expensive one. The server returns everything, the client trims to fit its budget, the model summarises what arrived, and nothing anywhere reports a problem. The full explanation is here.

Per-chat connectors. ChatGPT does not always apply a newly added connector to conversations that were already open. If the tools are missing, start a new chat before debugging anything else.

Tool confusion. Connect two servers that both expose something like "search companies" and the model picks between them on description text alone, inconsistently, across days. Both calls succeed, so you get different answers to the same question with no visible cause. Keep overlapping servers in separate workspaces.

Confident arithmetic. Ask how many results matched your criteria and you get a count over whatever survived truncation, presented as a count of the search. Ask the tool for a count instead of asking the model to count rows.

Filters that quietly mean nothing. An unrecognised filter value that returns an empty list is indistinguishable from a market with no companies in it. Good tools return an error naming the accepted values. Ours returns unknown_industry with the list, precisely so a zero means something.

What this does not solve

It does not decide who is worth contacting. The ICP is still yours, and an agent will research a bad-fit account enthusiastically.

It does not affect deliverability. Domain reputation, warmup and list hygiene are unchanged by how you sourced an address.

It does not write a good email. It writes a better first line from a real signal, which is the smaller half of the problem.

And it does not settle your lawful basis for contacting anyone. Pulling contacts on demand rather than exporting them makes that question more live rather than less. See GDPR and B2B prospecting.

Claude or ChatGPT

The honest comparison is not about output quality.

Anthropic publishes its maximum tool result size, its timeout, which protocol primitives it supports, and which authorization spec versions it accepts. OpenAI's MCP documentation publishes none of those. That does not make ChatGPT worse at the work, but it does mean that when something behaves strangely on Claude you can look up why, and on ChatGPT you experiment.

For a workflow returning large structured result sets, that visibility is worth more than a preference between the two models. The full table is in MCP clients compared.

Frequently asked questions

Can ChatGPT find leads on its own?

It can search the web and read pages, which is slow and produces unverifiable contact details. What it cannot do unaided is query a structured B2B dataset with filters like funding stage, headcount and open roles. Connecting a data source over MCP is what turns it from a research assistant into a prospecting tool.

Is ChatGPT or Claude better for prospecting?

The difference that matters is documentation rather than model quality. Anthropic publishes its tool result size limits and timeouts; OpenAI's MCP docs do not, so on ChatGPT you discover the ceiling by hitting it. For work that returns large result sets, that visibility is worth more than any difference in output style.

How do I stop ChatGPT inventing contact details?

Give it a tool that returns them and tell it to use only what the tool returns. A model asked for an email with no data source will produce a plausible one, because producing plausible text is what it does. With a connected source, ask it to cite the tool result and flag anything it could not find rather than filling the gap.

Does this work on the free ChatGPT plan?

No. Custom MCP connectors are a paid-plan feature and OpenAI has changed which plans include them more than once. Check Settings for a Connectors section that lets you add a custom one. If it is absent, the connector path is unavailable to you regardless of what any guide says.

Give your agent the whole market.

Search companies, buying signals and verified decision-makers from the tools you already use.

Book a demo