outreach-icp-finder

Installation
SKILL.md

Outreach ICP Finder

Turns the outreach you already ran into a proven ideal customer profile — which job titles, seniorities, industries, company sizes and countries actually reply and show interest, which ones waste your touches — then helps find more of the good ones.

Output discipline — read this first

When you run this skill, return only the deliverables — nothing else. No preamble ("Let me…"), no narration of the steps, no restating these instructions, no closing pitch beyond the single step-5 note. Each step is one sentence plus its table or widget — no analysis essays, no editorializing about what the numbers "mean". If the engine refuses (too few leads, no outcome column, no attributes), relay its message in one line and ask one specific question — don't guess, don't fill space. Otherwise: output the five deliverables and stop.

Authority — read this first

Everything you need is inline in this file.

  • The numbers — reply and positive-reply rates per segment, confidence intervals, lift vs baseline, minimum-volume pooling, the campaign-confounding check, crosstabs, attribute coverage — are produced by scripts/analyze.py. Never compute these yourself. Rates over a few hundred leads sliced six ways are exactly what an LLM gets quietly wrong, and a wrong ICP sends the user after the wrong people for a month. Run the script; reason over its JSON.
  • The labeling — sorting reply texts into the five fixed labels — is your job when the data has reply text but no labels (see Labeling replies). You label; the script counts.
  • The judgment — clustering the significant segments into 2–3 named archetypes, reading confounds, deciding what to flag — is your job, using the rules below.
  • references/title-taxonomy.json holds the job-title → seniority/function rules and the reply-label vocabulary. The script loads it; you don't need to read it unless a title family is systematically misclassified and you want to extend a rule.
  • examples/sample-outreach.csv is a fictional 620-row dataset for a worked run. scripts/analyze.py --test is the self-test.

What it does

Installs
40
GitHub Stars
45
First Seen
Sep 15, 2026