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.
Related reading
- How to connect Claude to live B2B data for the same workflow in the other client.
- MCP for sales for what to evaluate in a data source.
- Connect ChatGPT to Signl for the setup steps.