agentleFS
NadavShanun-designNadavShanun-design/opengtm/skills/ideal-customer-profile/SKILL.md

ideal-customer-profile

Skill4 starsChanged 29 days agoMITView on GitHub

Use when defining or sharpening an Ideal Customer Profile (ICP), buyer personas, account scoring and tiering, or trigger events before building a target list. Covers deriving the ICP from best existing customers, firmographic / technographic / behavioral / intent signals, a weighted scorecard, anti-ICP exclusions, and turning the ICP into concrete prospecting filters.

10 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use brainstorm-experiments-existing, prioritize-assumptions and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • skytiger6724Skill

    brainstorm-experiments-existing

    Design experiments to test assumptions for an existing product — prototypes, A/B tests, spikes, and other low-effort validation methods. Use when validating assumptions, testing feature ideas cheaply, or planning product experiments.

    Also in 6 projects that use this

  • skytiger6724Skill

    prioritize-assumptions

    Prioritize assumptions using an Impact × Risk matrix and suggest experiments for each. Use when triaging a list of assumptions, deciding what to test first, or applying the assumption prioritization canvas.

    Also in 6 projects that use this

  • 45ckSkill

    pestle-analysis

    Also in 6 projects that use this

  • launchapp-devSkill

    interview-script

    Create a structured user interview script with warm-up, core exploration, and wrap-up sections. Use when preparing for user research interviews to ensure consistent, insightful conversations.

    Also in 8 projects that use this

  • miovragSkill

    strategy-red-team

    Red-team a PRD, roadmap, or strategy by attacking its load-bearing assumptions before reality does. Steelmans then attacks each claim, ranks failure modes by impact × likelihood × cheapness-to-test, and returns the cheapest test and kill criteria for each. Use when stress-testing a plan, pressure-testing a strategy, challenging assumptions, or preparing a doc for executive review.

    Also in 4 projects that use this

  • +7 more from skytiger6724

The file

We split this skill into the rules it gives an agent

4 rules. 0 are common, 4 are distinctive, and 0 are very specific to this project.

  • 0

    Common

    Most of the 10 edited versions we read keep these.

  • 4

    Distinctive

    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
  1. Distinctive:

    Core move: don't invent the ICP - *derive it from your best customers.*

    line 21
  2. Distinctive:

    Write the pattern as explicit, filterable criteria.

    line 27
  3. Distinctive:

    Do keep it to 3-6 attributes you can actually filter on.

    line 80
  4. Distinctive:

    No anti-ICP, so junk and competitors flood the list.

    line 88

“Common” is measured: kept by at least 6 in 10 of the 10 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Ideal Customer Profile (ICP)

Overview

An ICP describes the company most likely to buy fast, succeed, and stay. A persona describes the people inside it you talk to. TAM is the whole market; the ICP is the sharp slice you actually go after. Get the ICP wrong and every downstream dollar of sourcing, copy, and sending is aimed at the wrong target.

Core move: don't invent the ICP - derive it from your best customers.

Derive it from reality

  1. List your 10-20 best accounts (fast close, high retention, expansion, referrals).
  2. Find what they share that your worst accounts don't.
  3. Write the pattern as explicit, filterable criteria. If you can't filter on it, it's not yet an ICP attribute - make it concrete.

Signal types

TypeExamples
Firmographicindustry/vertical, employee count, revenue, geography, business model (B2B/B2C), funding stage
Technographictools in their stack, cloud provider, CMS, competitor product installed
Behavioralhiring for a role, launched a product, opened an office, website activity
Intentresearching your category, visiting pricing pages, G2 category activity

Trigger events (why now)

The strongest outbound rides a recent change. Watch for: new funding, a new executive in the buyer's seat, a relevant new hire wave, M&A, a product launch, a public pain (outage, bad review, compliance deadline), or a competitor switch. A trigger turns a cold email into a timely, relevant one.

The weighted scorecard

Score each account so sourcing and sending go to the best first.

Score = Σ (signal_weight × signal_match)

Example weights (tune to your data):
  Employee count in 50-500 ....... 25
  Target industry ................ 20
  Uses complementary tool X ...... 15
  Hiring for relevant role ....... 15
  Intent signal in category ...... 15
  In target geography ............ 10

Tiers:  A = 80-100 (hit now)   B = 50-79 (nurture)   C = <50 (skip for now)

Anti-ICP (who to exclude)

Just as important as who to target. Write exclusions explicitly: too small to afford you, wrong region/regulatory regime, a segment that churns, students/ job-seekers, competitors, free-email-only domains, industries you can't serve. Exclusions keep your list clean and your deliverability safe.

Turn the ICP into prospecting filters

The deliverable isn't a paragraph - it's a search spec: title keywords + seniority, headcount range, industry codes, geos, technologies, and the trigger(s) to prioritize. That spec is what a sourcing tool (or Chronos) runs.

Do / Don't

  • Do base the ICP on retention and expansion, not just closed-won.
  • Do keep it to 3-6 attributes you can actually filter on.
  • Don't confuse "anyone who could use it" (TAM) with "who buys best" (ICP).
  • Don't let the ICP go stale - re-derive it every quarter from new wins/churns.

Common mistakes

  • An ICP so broad it excludes no one (then every list is noise).
  • Persona attributes (job title) with no company attributes, or vice versa.
  • No anti-ICP, so junk and competitors flood the list.
  • Scoring on vanity signals (brand you recognize) over predictive ones.

Go live with Chronos (optional)

  • geo_analyze_website - infer a first-draft ICP straight from the user's site.
  • geo_search_contacts - run the ICP as live filters to pull real matching people.
  • geo_enrich_contact - fill firmo/technographic fields to score accounts.
  • geo_get_database / geo_add_database_item - store the ICP so every campaign reuses it.

Connect in ~30s → CONNECT-CHRONOS.md. Free, no card.

See also: positioning-and-messaging, lead-sourcing-and-enrichment, account-research.

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.