outreach-research-pass
Skill0 starsChanged 5 months agoMITView on GitHub
Do the research before a single cold line is written. Gates on ICP first, sources prospects by the intent signal itself (not generic lists scored after the fact), stacks and dates every signal onto one identity, then runs a strict two-pass: score and classify and emit a single angle, then personalise from that angle. Spend is gated on the score; every claim must trace to a verified signal. Use this before personalising any outreach at scale. Produces a per-prospect dossier and stops.
In this repository5 other files it gives its agents.
- build-specSkill
- content-preflightSkill
- eval-setSkill
- pipeline-replaySkill
- scraper-contractSkill
The file
We split this skill into the rules it gives an agent
2 rules. About 0 are common, 2 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 21
Run the pass, then stop.
- Distinctive: line 43
No signal, no claim: Every personalised line must trace to a signal you can point at — a URL and a date.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Outreach Research Pass
Cold email is dead and signal email works, but only if the system actually knows something. Most "AI outreach" writes the email and skips the part that makes personalisation true. The result is mail-merge with a thesaurus.
This skill does the research, not the writing. It's the pass I run before any message exists: source by intent, stack the signals, score and pick one angle, and only then hand off to a writing step. The whole discipline is that personalisation is downstream of structured research, never freestyled. The thing it builds is a dossier a writing step consumes, not a draft.
Run the pass, then stop.
Inputs (ask for whatever is missing)
- Who you sell to (required): the offer, and the buying profile of a fit.
- The raw input: the prospects or the source you're pulling from (a search, a list, an export).
- Optional: what paid enrichment costs you per lead, and any disqualifiers you already know.
The method
- Gate on ICP first, and hard-skip. Define the fit by buying profile — who they are, their size band, what they already use, who has authority — not by a topic-affinity proxy like "has posted about AI." Write the disqualifiers explicitly (wrong vertical, wrong size, a competitor's tool is their default answer) and skip those before spending a cent or a token on them.
- Engineer the intent into the source. Don't scrape a generic list and hope to score intent back out of it. Search for the signal directly: people asking for help, expressing pain, naming a competitor they want to leave, struggling to hire, or hitting a budget/timing trigger. A query built around expressed pain returns leads with active intent; a query built around a topic returns an audience. Source high-intent, don't filter low-intent.
- Stack and date every signal onto one identity. Each signal carries a strength (high / medium / low), a source, and a date. A post author outranks a commenter outranks a liker. Recency is a tier: a job change inside 30 days is high, inside 90 is medium; funding inside 60 days is high. Merge signals for the same person or company onto one record and rank by how many stacked — three medium signals on one identity beat one high on another.
- Pass one — research, don't write. Score the lead 1-100, classify it into a small
leadTypeset (so the angle and the offer can branch on it), write the one-line reasoning, and emit a single suggested angle — the specific hook this outreach should lead with. The output of pass one is structure, not prose. - Pass two — personalise from the angle. The writing step consumes the suggested angle. It never invents a hook of its own. If pass one didn't produce a defensible angle, that's a signal the lead is thin, not a cue to improvise.
- Gate spend on the score. Only leads above the outreach threshold get a message generated; only the strongest get paid enrichment (find/verify the email), and estimate the credit cost before each batch. Everything below the line is dropped, not messaged. Cheap filtering protects the expensive steps.
- No signal, no claim. Every personalised line must trace to a signal you can point at — a URL and a date. If you can't cite it, you don't say it. This is the rule that separates research-led outreach from a hallucinated compliment.
- Tag the fallbacks. When the model fails and you drop to a default score or default copy, mark that record (
source: fallback) so you can audit later how much of a batch was genuinely researched versus filled in. A batch that's 60% fallback isn't a researched batch.
Output
Produce a per-prospect dossier: the signals (each with strength, source, date), the score and leadType, the single suggested angle with the URL+date it rests on, and the keep / kill / enrich verdict with the reason. Flag any prospect kept without a verified signal — that one needs research, not a message.
Then stop. The dossier is the deliverable. Writing from it is the next step, and now every line in that message has something true underneath it.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

