Activated Cloud
← App Store

Ideal Customer Profile

Activated Cloud✓ Officialactivated/ideal-customer-profile

No ratings yet4 installsv1.0.0Updated Oct 6, 2026● Unknown

Free · MIT

About

Builds or refreshes the ideal customer profile and buyer personas from the owner's own won, lost and churned deals: fit criteria, disqualifiers, buying triggers, personas and an account fit score with tiers. Use when the team needs to decide who to sell to, before building lists or writing outreach. Not for finding the actual companies and contacts (use prospect-list-building) or researching one account (use account-research).

Sales

Documentation

From SKILL.md · v1.0.0 · what the agent reads when it loads this skill2 files: SKILL.md, references/icp-template.md

Ideal Customer Profile

You turn the owner's real sales history into a short, testable definition of the companies most likely to buy, stay and grow, plus the people inside them who decide. The standard: every criterion is backed by the owner's own data or labelled as a hypothesis, every criterion can be checked from public information, and the profile says clearly who to walk away from.

When to use

  • "Who should we be selling to?" or "Write our ICP."
  • "Our win rate is falling, are we chasing the wrong companies?"
  • Before a new outbound push, a new market, or a new product line.
  • "Build a lead scoring model" or "tier our target accounts."
  • Every 6 months, or after roughly 20 new closed deals, to refresh.

What you need

  • Closed deals from the CRM for the last 12 to 24 months: won, lost and (if the owner has recurring revenue) churned or contracted customers.
    • Source: the CRM as a connected app (HubSpot, Salesforce, Pipedrive, Attio), or a CSV export from the owner.
    • If neither exists, use clarify to ask for the 10 best and 5 worst customers and why.
  • For each deal, as many of: company, website, industry, employee count, country, deal value, sales cycle in days, lead source, products bought, outcome, loss or churn reason, renewal and expansion history.
  • 20 to 30 minutes of the owner's view (via clarify): who they love working with, who was painful, who they never want again.
  • What the product actually does and does not do, so you do not profile buyers it cannot serve.

Method

  1. Set up the work. Create a todo list with the steps below. Save the raw export to a working folder with write_file and never edit the original.
  2. Check you have enough data.
    • Under 20 won deals means patterns are weak. Say so.
    • Build a hypothesis ICP from the owner interview and the best 10 customers, labelled "hypothesis, validate after the next 20 deals".
    • Do not dress small numbers up as findings.
  3. Define "best customer" before looking at attributes. Use execute_code to score each won customer. A good default:
    • retained or renewed;
    • deal value at or above the median;
    • sales cycle at or below the median;
    • where known, expanded or low support load. The top quartile on this score is your "best" group. Biggest logo is not the same as best customer.
  4. Enrich missing attributes from public sources only: the company website, its careers page, public filings, press releases and the business's own LinkedIn page viewed in the agent's browser. Record the source URL for every value you add. Mark unknowns as unknown; never guess.
  5. Find the attributes that separate best customers from the rest. For each attribute value (for example "industry = logistics", "50 to 200 employees", "uses Shopify", "came via referral") compute:
    • coverage = share of best customers with it;
    • lift = coverage in best / coverage across all opportunities (won and lost);
    • churn lift = share among churned / share among all customers (and loss lift the same way for lost deals). Decision rules:
    • ICP criterion: lift at least 1.5 and coverage at least 30 percent.
    • Disqualifier: churn lift or loss lift at least 1.5, with at least 5 cases behind it.
    • Lead to watch: fewer than 5 cases; report the raw count, not a rule. Show the counts, not only percentages. A worked example is in references/icp-template.md.
  6. Look for triggers, not only static traits. Read won-deal notes and first emails for the event that started the conversation:
    • new funding, acquisition or expansion to a new country;
    • a new leader in the buying role;
    • hiring for a specific role;
    • a migration, re-platforming or failed incumbent;
    • a regulation or contract deadline. Triggers make outreach timely. Keep the ones that appear in at least 3 won deals, with their typical window (for example "first 90 days in role").
  7. Write the buying committee personas. For each role that appears in won deals (economic buyer, champion, day-to-day user, technical evaluator, procurement or finance, likely blocker) write:
    • goals and the numbers they are judged on;
    • the pain in their words (quote call notes where you can);
    • what they fear about change, and the objections they raise;
    • where they look for information;
    • the job titles that map to the role.
  8. Build the fit score. Turn the criteria into a 0 to 100 score with explicit weights (template in references/icp-template.md).
    • Keep fit (who they are) separate from intent (what they are doing now); score intent 0 to 3 from fresh triggers.
    • Suggested tiers: A at 70 or more, B at 45 to 69, C below 45.
    • Any disqualifier forces "do not pursue" regardless of score.
  9. Back-test the score. Score the last 50 or more closed opportunities with execute_code.
    • Win rate and average deal value should rise from tier C to tier A.
    • If tier A does not win clearly more often than tier C, the weights are wrong: adjust, re-test, and report what you changed.
  10. Pressure-test with people. Share the draft with the owner and use ask_teammate to ask the sales manager or account manager two questions: "Name a great customer this profile would have excluded" and "Name a bad one it would have let in." Fix or explain each case.
  11. Publish and remember. Write the final document, put the one-screen summary on a show_card, and save the criteria, tiers and date to memory so list building and outreach use the same definition.

Output

A document named ICP - <company> - <date> with the structure in references/icp-template.md:

  • A two-sentence ICP statement.
  • Criteria table: must-have, strong signal, disqualifier, each with evidence (counts and lift) and how to verify it from public data.
  • Trigger list with examples from won deals.
  • Persona sheets, one per buying role.
  • Fit score weights, tier thresholds and back-test results.
  • Open questions and a "validate by" date for anything labelled hypothesis.

Keep the summary to one page; detail goes in appendices.

Checks before you finish

  • Every criterion has a number behind it or is labelled hypothesis.
  • Every criterion can be checked by a researcher from public sources in under 5 minutes.
  • At least two disqualifiers are listed, or you have said why there are none.
  • The back-test table is included and tier A beats tier C on win rate.
  • No individual's personal data appears in the document beyond job titles and anonymised quotes.
  • The owner has seen the draft before it is saved as the team's working ICP.

Pitfalls

  • Profiling everyone. "B2B companies with 10 to 10,000 employees" excludes nobody and helps nobody. Narrow until a researcher could reject most companies quickly.
  • Copying the aspirational logo list. The ICP describes who buys and stays, not who the owner wishes bought.
  • Ignoring losses and churn. The disqualifiers are often worth more than the criteria. A segment that signs fast and churns in 6 months is not ideal.
  • Confusing personas with the ICP. The ICP picks companies; personas pick people inside them. Keep both.
  • Unverifiable criteria. "Values innovation" cannot be checked. Replace it with an observable proxy, such as "has a product team" or "ships releases monthly".
  • Mixing fit and intent. A perfect-fit company with no trigger is a nurture target, not a hot lead. Score them separately.
  • Stating benchmarks from memory. If you cite an outside figure, find it with web_search, name the source and date, or leave it out.

See also: prospect-list-building, account-research, win-loss-analysis.

Versions

v1.0.0currentOct 6, 2026

Listed from the source repository.

Reviews

No reviews yet. Be the first.

Write a review