My WIMPER social listener reviewed 385 identities and produced zero qualified targets.
That was the correct result. The old search path was unreliable, X API credits were exhausted, and the replacement system refused to turn weak evidence into fake progress.
What Got Built
- I replaced a Grok-only social discovery path with a corroborated listener. The new research process can compare X, LinkedIn, public web pages, official company sites, Apollo records, and my own suppression history before suggesting anyone.
- The listener became research-only by design. It cannot post, comment, connect, follow, or send a direct message. It produces evidence for manual review and is allowed to return an empty queue.
- The WIMPER weekday agenda moved from Discord to verified email. The delivery helper can send only to my own allowlisted addresses. Exact prospect approvals and exceptions still happen separately in chat.
- A five-recipient WIMPER warning test completed once. All five Zoho Sent receipts were verified, then the broader send gate closed again. There is no automatic follow-up authority.
- WIMPER Ops moved to maintenance-only review. Revenue protection, service obligations, security, and data integrity remain covered. Discretionary build capacity now goes toward WIMPER Partners acquisition and marketing.
- The content gate reviewed five drafts and advanced none. Two topic scans also chose not to create duplicate articles. Zero remained an acceptable output in three different parts of the system.

What Broke (And How I Fixed It)
The old WIMPER social discovery process depended too heavily on one provider.
That provider was Grok, the AI search layer connected to X. When that path became unreliable, it exposed a larger design problem. Even if the provider had worked perfectly, one search result should not have been enough evidence to put a person into an action queue.
X API credits were also exhausted. That meant the system could not treat X as a dependable live source or distribution channel.
The easy response would have been to weaken the standard. I could have searched the public web, collected anyone with a promising title, and called the resulting list a pipeline.
That would have made the dashboard look busy. It would not have made the list trustworthy.
Instead, I rebuilt the listener around corroboration. A person can appear in research only after multiple sources support the same basic story. The system checks public social evidence, an official company presence, Apollo business data when available, and internal records showing whether the person was suppressed or previously contacted.
Then it applies the action boundary.
The smoke run examined 385 identities already present in the Lead DB. Four people had enough signal to remain research candidates. Two were removed because suppression or prior-contact evidence made them inappropriate to advance. None of the remaining identities cleared the full qualification threshold.
The output was zero qualified targets.
I also ran four deterministic contract tests. These are fixed checks where the expected answer is known in advance. They verified that the listener respects suppression evidence, keeps the result research-only, and does not gain posting or messaging authority just because it found a candidate.
The fix was not a better prompt telling the model to “be careful.” The fix was a different process: gather evidence from independent sources, apply explicit exclusions, allow no result, and keep external actions outside the listener.
A second friction point appeared in the Build Chronicler itself. The same-day work log was not available when the daily record ran. The system used 57 primary event receipts, the prior work log, current status, and GitHub commits instead of filling the gap with a plausible summary.
The event query initially returned only 50 receipts because that was the default cap. It was rerun with a limit of 500, revealing seven more records before the metrics were counted.
Both failures had the same shape. A single source looked complete until the system asked whether it actually was.
The Lesson
Let the system choose nobody.
Here is what I would tell someone building a lead agent: an empty queue is a valid business result. If every run must produce five prospects, five posts, or five recommendations, the agent will eventually lower the standard to satisfy the quota.
Define the qualification gate before the search runs. Then allow the search to return zero without treating zero as a job failure.
Require corroboration before action.
One source can be useful for discovery. It should not be the only reason a person enters a sales or outreach workflow.
Use one source to find the possibility and another to confirm the identity, company, role, and current relevance. Then check your own history for suppression, prior contact, or other reasons not to proceed. The public signal answers “maybe.” The combined record answers whether the candidate deserves review.
Separate research authority from mutation authority.
My listener can collect evidence and prepare a review packet. It cannot turn that packet into a post, connection request, comment, or message.
This pattern applies to more than social media. A finance agent can prepare a payment without sending money. An email agent can draft copy without contacting anyone. A database agent can recommend a correction without changing the source record. Useful preparation does not require external authority.
Make incomplete evidence reduce confidence.
When the current work log was missing, the chronicler used primary receipts and disclosed the gap. When the first event query stopped at 50, it increased the limit before counting.
A missing source should narrow the claim. It should never invite the model to complete the story from context.

The Numbers
- Commits: 3 total (0 agent, 3 Matt)
- Agent jobs run: 20
- Prospects added: 0
- Emails sent: 5
- Social posts: 0
- Content published: 3
- Lead DB identities reviewed: 385
- Research-only people found: 4
- Suppressed or previously touched people excluded: 2
- Qualified social targets produced: 0
- Deterministic listener contract tests passed: 4
- Primary event receipts used by the chronicler: 57
- Receipts hidden by the first capped query: 7
The most important number is zero.
Zero qualified targets means the listener did not confuse a job title with buying intent. Zero social posts means the replacement research path did not quietly gain publishing authority. Zero automatic follow-ups means the five-message email test remained limited to the authorization it was given.
The 385 identities still matter. They prove the empty result did not come from an empty search. The system looked, applied the evidence standard, and stopped when nobody cleared it.
What’s Next
Keep the listener research-only, gather better corroborating evidence, and require a new exact authorization before any candidate becomes a social or email action.