What you'll be able to do after this guide: recognise the most common ways prospecting agents go wrong, and apply the fix before it happens to you.
Every rule in this library exists because something went wrong first. Here are the 15 lessons that shaped it most. Each follows the same pattern: what happened, the fix, and the general lesson to take away.
1. Searching by technology tag picked the wrong companies.
What happened: the sourcing agent searched for companies tagged as using a competitor product. Every one of them failed independent checking. The tags were stale, or belonged to a parent group rather than the small company, and the results included golf clubs and glass manufacturers.
The fix: search on what the business is (industry, size, revenue). Treat the current tool as something research discovers.
Lesson: never use a noisy data field as your selection key.
2. Duplicate checks during research wasted whole batches.
What happened: candidates were checked against the CRM one at a time, mid-research. One run found its whole first batch of candidates had been researched before.
The fix: one de-duplication pass over the whole list before any research, counting only survivors towards the target.
Lesson: filter cheaply before doing anything expensive, and log how much the filter removes.
3. Companies that looked alive weren't.
What happened: a company with a live website and recent social posts had been in liquidation for two years. Another was in administration with its sites closed.
The fix: check the official register's status during the same visit as the revenue check. Anything other than active is a hard stop.
Lesson: check legal status from the authoritative source, not from online activity.
4. A guessed company name matched the wrong company.
What happened: the agent guessed the legal name from the domain and found a real, unrelated business on the register.
The fix: read the registered name and number from the site's own terms or privacy page first.
Lesson: confirming identity is a step of its own, done before any enrichment.
5. "Nothing to replace" was decided from summaries.
What happened: strong prospects were dismissed because search snippets and their own marketing made their setup sound polished. The real pages showed a patchwork of plugins.
The fix: open the actual page and look before concluding there's no opportunity.
Lesson: negative conclusions need more evidence than positive ones.
6. A test that always said "yes", then an overcorrection.
What happened: the agent treated "this subdomain exists" (an address like learn.company.example) as proof a company used a product, but the host answered every possible subdomain. Then we nearly declared the method useless.
The fix: compare the real response with a nonsense subdomain's response. Identical means not a customer; only a page showing the product's real login counts as a real account.
Lesson: test against a known negative, and don't overcorrect when fixing a rule.
7. A shared date field reset the email clock.
What happened: the email fallback timed its 7-day wait from a general "last touch" date. When another agent started updating that date weekly, the wait restarted every week and some prospects were never emailed.
The fix: a dedicated, write-once "connection requested" date, read only by the email agent.
Lesson: one field, one meaning. A field several agents update can't be a clock.
8. A new field nobody wrote.
What happened: the new clock field was created and the email agent switched to it, but the agent that should write it hadn't been updated. Prospects were neither messaged nor emailed, with nothing flagging it.
The fix: update the writer first, backfill old records carefully, and make readers skip and report a blank clock.
Lesson: when migrating a field, ship the writer, then the readers.
9. An agent invented caution around a field it didn't recognise.
What happened: the first-touch agent found a "snoozed until" date belonging to another agent and treated it as "skip", shrinking its own pool.
The fix: a line in its spec saying the field isn't its concern.
Lesson: tell each agent which fields to ignore, not only which to use.
10. Every agent creating tasks flooded the task list.
What happened: each sourcing agent created an email task for every prospect. Most stalled prospects already had an open task, many of them unnecessary.
The fix: sourcing agents write routing notes; one agent creates all outreach tasks, with one cap and one duplicate check.
Lesson: give side effects that need a global limit to one owner.
11. Helper agents dropped a whole segment.
What happened: a run split research between helper agents and gave them full steps for one segment but only "stop and note it" for the other. Those prospects were silently abandoned.
The fix: helpers get the complete text of every branch, and the run checks every candidate reached a defined end state.
Lesson: a helper only knows what you paste; classification is a branch, not an exit.
12. A shared file was overwritten from an old copy.
What happened: an agent rewrote a category spreadsheet from the version it read at the start. A person had added several rows in the meantime, and they were lost.
The fix: read, change and write in one step at the moment of writing, and check the row count before and after.
Lesson: people edit shared files between runs. Never write from memory.
13. Documented schedules weren't the real schedules.
What happened: documents described one schedule while the scheduler ran another. Many of one agent's outreach tasks landed outside working hours, when nobody could act on them.
The fix: working hours set in the scheduler, and the scheduler treated as the only truth.
Lesson: verify the live configuration; don't trust your notes about it.
14. A confident claim about a prospect's pain was wrong.
What happened: a message told a prospect their setup cost them a lot to maintain. They replied it took an afternoon once a year.
The fix: ask about pain as a question unless the prospect has told you about it.
Lesson: research supports a question, not a claim.
15. A rule written from a misleading copy-and-paste.
What happened: a pasted copy of a sent message showed a link running into the next word, and a new rule was added to prevent it. The problem was in the copy-and-paste, not the message.
The fix: the rule was withdrawn the same day, with a marker so it wouldn't return.
Lesson: check the real thing before writing a rule about it.
Use the Prompt and Spec Templates download in this library to start your own specs with these lessons already built in.