| name | evidence-led-lead-intelligence |
| description | Find, verify, classify, deduplicate, and package research-only business leads from current public evidence. Use for lead hunting, opportunity monitoring, account-bank building, lead qualification, source rechecks, or preparing a structured lead batch for a CRM or intake app. Prioritizes live opportunity evidence over quotas, labels inference, records counterevidence and kill criteria, and never treats research as outreach approval. |
Evidence-led Lead Intelligence
Release: 1.0.2
Find opportunities worth a human's attention. Do not manufacture a full list.
Real outcome
Produce a small, trustworthy decision surface:
- live opportunities with inspectable evidence;
- explicit reasons a service could help;
- explicit reasons the hypothesis may be wrong;
- a clean place for relevant accounts that lack current timing; and
- a machine-checkable batch that can be deduplicated and ingested safely.
Success is not a candidate count. A zero-result run is valid.
Establish the run contract
Before searching, state:
- service being sold;
- sectors and regions in scope;
- evidence lookback and freshness rule;
- admission definitions;
- existing-record or fingerprint authority;
- destination: report, file, or intake tool; and
- actions that remain forbidden.
If one consequential item is unknown, ask once. Otherwise use conservative defaults and record them.
Search for change, not generic fit
Prefer signals that create a reason to act now:
- a direct request, brief, RFP, or public ask;
- a funded, commissioned, selected, shortlisted, or newly developing project;
- a new slate, roster, territory, representative, or market entry;
- a deadline-bearing programme or financing window; or
- repeated first-party evidence that the organisation produces this kind of work.
An attractive company is not automatically a lead. Put durable fit without current timing in the account bank.
Read sources. Search-result snippets are discovery aids, never evidence.
Build an evidence packet
For every admitted candidate:
- corroborate P1 with source records from at least two independent public domains;
- include at least one first-party or controlling source for P1;
- reopen the controlling opportunity URL immediately before admission;
- distinguish
FACT: from INFERRED:;
- name the countercase and kill criterion;
- record publication, event, and observation dates separately;
- state what remains unknown; and
- show a credible, proportionate path from signal to paid work; and
- never invent a person, route, budget, deadline, eligibility, prior contact, approval, or buying intent.
Use references/source-and-evidence.md when source quality or freshness is ambiguous.
Classify honestly
- P1 — current, specific opportunity; strong service fit; controlling source is live; evidence spans at least two independent public domains and includes first-party evidence; no decisive counterevidence. Contact-route, prior-touch, proof-rights, and human-review gates must remain unresolved.
- P2 — plausible current opportunity, but one material timing, buyer, fit, or evidence gap remains.
- P3 — relevant organisation or person with a weak/old signal and no urgent case.
- Account bank — recurring structural fit but no current opportunity. Retain for future monitoring; do not disguise as P3.
- Reject — closed, duplicate, ineligible, materially irrelevant, unverifiable, or contradicted.
P1 also needs a plausible commercial path: a knowable buyer class, a realistic route to that buyer, a studio-sized engagement, and no obviously disproportionate procurement burden. “They make presentations” is not a client path. Institutional scale, prestige, or a public tender never raises priority by itself. A path that depends on public procurement is P2 at most under this contract unless a separate, non-procurement private-buyer path is evidenced.
Demote rather than lie. Never backfill a quota.
Deduplicate before submission
If an existing-fingerprint tool exists, call it before research and again before submission.
Default fingerprint:
normalised company domain OR normalised account name
+ canonical opportunity URL
+ event date OR publication date
An update to an existing opportunity is not a new lead. Preserve the prior ID and append fresher provenance when the destination supports it.
Emit and validate one batch
Use references/lead-batch.schema.json. Validate with:
node <skill-dir>/scripts/validate-batch.mjs /absolute/path/to/batch.json
Fix every error. Treat warnings as reviewer-visible uncertainty, not as permission to omit evidence.
Submit with one bounded action
If an intake tool exists:
- submit the whole validated batch with a stable
runId as idempotency key;
- let the server recalculate identity and disposition;
- accept per-record demotion or quarantine;
- read the receipt; and
- verify new or updated records through destination search/filter/readback.
Do not claim ingestion from a generated file, a tool success message, or a total count alone.
If no intake tool exists, save the validated batch to the declared handoff folder and say plainly that ingestion is pending.
Authority boundary
This skill performs research and research-state intake only. Unless the user separately authorises it, do not:
- contact anyone;
- draft or send outreach;
- scrape or infer personal contact details;
- access mailboxes;
- mark a lead approved, contacted, contact-ready, or won;
- spend money or submit applications;
- mutate unrelated CRM records; or
- publish private research.
Read references/privacy-and-authority.md before handling personal data or a write-capable destination.
Final report
Return only:
- scope and checked-through time;
- P1/P2/P3/account-bank/reject counts;
- admitted candidates with decisive evidence and open gates;
- rejected or demoted candidates with short reasons;
- validation receipt;
- ingestion receipt and readback, or the exact pending handoff path.
No victory language without destination readback.