Agent skill
prospect-discovery-pipeline
Use when a teammate wants a full discovery-to-outreach pipeline anchored on existing clients.
Filed under Prospecting and list building and Calls, demos and discovery.
From Othmane-Khadri/YALC-the-GTM-operating-system · 61 skills · 290 · pushed 2026-08-20
What it does when it runs
Use when a teammate wants a full discovery-to-outreach pipeline anchored on existing clients. Triggers include "find prospects like [client]", "build a target list like [domain]", "lookalike discovery for [client]", "discovery to outreach for [criteria]", "10 companies similar to [X] with a CMO", or any multi-step request combining lookalike search + decision-maker identification + signal enrichment + LinkedIn variant drafting.
Read from the skill and the 0 files bundled beside it. A skill’s own description is written to be selected by an agent, so it describes the job and not the dependencies.
- Keys and connectors you must supply
- CRUSTDATA_API_KEY
- PREDICTLEADS_API_KEY
- PREDICTLEADS_API_TOKEN
- Hosts it reaches
- No third-party host appears in the skill or its bundled files.
- Tool permissions it declares
- No
allowed-toolsin the frontmatter. It does act, so it runs under whatever permissions your session already grants. - Actions present in the files
- shell
Install it
View source on GitHub ↗git clone --depth 1 --filter=blob:none --sparse https://github.com/Othmane-Khadri/YALC-the-GTM-operating-system.git /tmp/YALC-the-GTM-operating-system git -C /tmp/YALC-the-GTM-operating-system sparse-checkout set ".claude/skills/prospect-discovery-pipeline" mkdir -p ~/.claude/skills/prospect-discovery-pipeline cp -R "/tmp/YALC-the-GTM-operating-system/.claude/skills/prospect-discovery-pipeline/." ~/.claude/skills/prospect-discovery-pipeline/
Picked up without a restart. A project skill of the same name is shadowed by your personal one. For one repository only, swap ~/.claude/skills for .claude/skills. Claude Code docs ↗
The folder is the same in every client that implements the format — 46 of them — so if yours is not above, only the destination changes.
Before you install: this skill will not complete its job on a bare agent. It needs CRUSTDATA_API_KEY, PREDICTLEADS_API_KEY, PREDICTLEADS_API_TOKEN, which you have to obtain separately.
The skill
Source on GitHub ↗Reproduced in full from Othmane-Khadri/YALC-the-GTM-operating-system/blob/5686d1f2f526346133f78eef3349fc5a655757b4/.claude/skills/prospect-discovery-pipeline/SKILL.md, which is licensed MIT (repository). 761 words, 14 headings.
Prospect Discovery Pipeline
End-to-end pipeline: PredictLeads lookalikes → ICP filter → Crustdata CMO finder → multi-signal enrichment → 2 LinkedIn variants drafted with per-lead personalization. Pauses for user review before any expensive operation. Always quotes credit cost up front.
When to use
- Building a target account list anchored on 1–2 known clients
- Generating a campaign-ready batch (10–25 leads with full signal context)
- Producing 2 A/B-testable LinkedIn message variants tied to actual signal data per lead
Don't use when: ad-hoc lookup of one company (use predictleads-signals); just lookalike domains without contacts (use predictleads-lookalikes); enriching a list you already have qualified leads for (use signals:enrich --result-set directly).
The 5-phase flow
Always follow this order. Quote credit cost before each phase.
Phase 1 — Discovery (2 PL credits for 2 anchors)
npx tsx src/cli/index.ts signals:similar --domain anchor1.com --limit 50
npx tsx src/cli/index.ts signals:similar --domain anchor2.com --limit 50
Merge into a candidate pool, dedupe by domain. Expect 30–80 unique candidates per pair.
Phase 2 — ICP filter (FREE, pause for user review)
Hand-filter the pool against the user's ICP criteria:
- Employee count (use Crustdata
company_identify— FREE — only when judgement uncertain) - Industry vertical (back-office SaaS, commerce infra, HR-tech, etc.)
- HQ region
- Marketing maturity proxies (visible content investment)
STOP and present the 10 finalists to the user before spending more credits. Surface any obvious gaps or weak fits. Wait for explicit approval.
Phase 3 — CMO finder (3 Crustdata credits, batch)
Single batch search across all 10 companies:
filters = {
op: 'and',
conditions: [
{ column: 'current_employers.company_website_domain', type: 'in', value: ['10 domains'] },
{ column: 'current_employers.title', type: '[.]', value: 'Marketing' },
{ column: 'current_employers.seniority_level', type: 'in', value: ['CXO', 'Vice President', 'Director'] },
],
}
limit: 50
Pick 1 marketing leader per company (prefer CMO > VP > Head > Director).
Common gotcha: some companies' websites are stored in Crustdata as ATS or marketing domains (e.g., hubs.li for Shopware), not their actual .com. If a company returns 0 hits, do a fallback search by current_employers.name substring.
Skip people_enrich unless the campaign needs emails (LinkedIn-only campaigns don't). Saves ~30 credits.
Phase 4 — Multi-signal enrichment (40 PL credits for 10 finalists)
for d in domain1.com domain2.com ...; do
npx tsx src/cli/index.ts signals:fetch --domain "$d"
done
Or use the bulk shortcut if leads already in a result set:
npx tsx src/cli/index.ts signals:enrich --result-set <id>
Phase 5 — Hydrate templates + draft 2 variants (FREE)
Pick the single most outreach-relevant signal per company (most recent news > recent financing > recent job_opening). Build a personalization_natural line per lead that:
- Never says "I saw your [signal]" (per outbound rules)
- Embeds the signal as context for a category insight
- Stays ≤18 words per sentence
- Has no dashes, no
Iopeners, saysHello, ends with a specific CTA
Draft both variants with different angles (e.g., results-led case study vs. category-shift narrative). Save the full draft to 00_Inbox/predictleads-discovery-{date}.md.
Do not push to Notion or activate the campaign without explicit user approval.
Total cost (typical)
| Phase | Credits |
|---|---|
| 1. Lookalikes (2 anchors) | 2 PL |
| 2. ICP filter | 0 |
| 3. CMO batch search | 3 Crustdata |
| 4. Multi-signal enrichment (10 companies × 4 types) | 40 PL |
| 5. Template hydration | 0 |
| Total | ~45 credits (42 PL + 3 Crustdata) |
If people_enrich is needed: +30 Crustdata credits.
Verification checkpoints
The pipeline pauses at:
- End of Phase 2 — present 10 finalists, wait for "approved"
- End of Phase 5 — present hydrated drafts, wait for "approved"
Never push to Notion / activate Unipile campaign without explicit user approval at the second checkpoint.
Output artifacts
- SQLite:
company_signalsrows for the 10 finalists - File:
00_Inbox/predictleads-discovery-{date}.mdwith the 2 hydrated variants - Optional: HTML dashboard via
predictleads-dashboardskill
Common pitfalls
- Megacaps in the lookalike pool: PredictLeads returns SAP/Microsoft/Oracle for B2B SaaS seeds. Filter manually before Phase 3.
- Crustdata
domainmismatch: search by company name as fallback when domain returns 0. - Personalization that flag-waves: "I saw your funding round" violates outbound rules. Reframe as category context.
Required env
PREDICTLEADS_API_KEY, PREDICTLEADS_API_TOKEN, CRUSTDATA_API_KEY in ~/.gtm-os/.env. See TEAM_SETUP.md.
Related skills
predictleads-signals— single-company ad-hocpredictleads-lookalikes— discovery only, no outreachpredictleads-dashboard— HTML viz of enriched signalsunipile-campaign— what runs the actual outreach after this skill drafts the variants
Other skills for the same job
Different authors, same problem. Matched on the words in the skill name, across every library in the catalogue except this one.
- prospect-pipeline-check by zime-ai · 14
- podcast-pipeline by ericosiu · 3,483
- sales-pipeline by ericosiu · 3,483
- short-form-pipeline by ericosiu · 3,483
- sales-prospect by zubair-trabzada · 1,093
- community-discovery by shawnpang · 317
- pipeline-reviewer by janskuba · 200
- discovery by louisblythe · 143
Need help setting it up?
This page tells you what prospect-discovery-pipeline does and what it needs. Cheetah builds the agent setup it runs inside: data, CRM, sequencing and the guardrails.
Book a call →The directory stays free. There is nothing gated behind this.