icp-identification
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseICP Identification
ICP 识别
Research a company or idea, define the Ideal Customer Profile, and route to the right next step. This is the entry point for any "find me leads" or "map my market" request — it sits upstream of all lead-finding and TAM-building skills and ensures we understand the business, define the target, and pick the right approach before executing.
研究公司或创意,定义理想客户画像(ICP),并引导至正确的下一步。这是所有“帮我找潜在客户”或“绘制我的市场图谱”请求的入口——它位于所有潜在客户挖掘和TAM构建技能的上游,确保我们在执行前先了解业务、明确目标并选择正确的方法。
When to Auto-Load
自动启动场景
- User says "find me leads", "help me find prospects", "who should I sell to", or similar
- User provides a company URL and asks for leads/prospects
- User describes an idea/product and wants to find customers
- User asks "who is my ICP?" or "help me define my target market"
- User asks to "map my TAM", "size my market", or "build a target account list"
- 用户说“帮我找潜在客户”、“帮我寻找目标客户”、“我应该向谁销售”或类似表述
- 用户提供公司网址并请求寻找潜在客户/目标客户
- 用户描述某个创意/产品并希望找到客户
- 用户询问“我的ICP是谁?”或“帮我定义目标市场”
- 用户请求“绘制我的TAM图谱”、“测算我的市场规模”或“构建目标客户清单”
Phase 0: Gather Context
阶段0:收集上下文信息
When triggered, collect these inputs from the user:
- Company URL or describe your idea/product
- What does the product/service do? (skip if URL provided — we'll research)
- Who are your current customers? (if any — ask for specific company names, titles of buyers/champions, and how they found the product. These examples calibrate search filters far better than abstract descriptions.)
- What's your price point / deal size? (helps determine buyer seniority)
- Who is NOT a fit? — Ask about industries, company types, company sizes, or roles that are explicitly wrong for this product. Prompt with examples: "Are there industries that definitely don't work? Company sizes too small or too large? Titles that look right but never buy?" Even rough exclusions prevent noisy search results downstream.
If the user provides a company URL, research it using web tools before asking follow-up questions. Don't ask questions you can answer from the website.
Intake principle: Every answer here should help you populate a search filter (title, industry, headcount range, region) or an exclusion filter (titles to skip, industries to ignore, company types to avoid). If a user's answer is too vague to become a filter value, probe deeper. Don't ask generic strategy questions — ask questions that sharpen the search.
触发后,向用户收集以下输入信息:
- 公司网址 或描述你的创意/产品
- 产品/服务的功能是什么?(若提供了网址则跳过——我们会自行调研)
- 你当前的客户有哪些?(如果有的话——请提供具体的公司名称、采购者/支持者的职位,以及他们如何发现该产品。这些示例比抽象描述更能校准搜索筛选条件。)
- 你的定价区间/交易规模是多少?(有助于确定采购者的职级)
- 哪些客户不符合要求?——询问明确不适合该产品的行业、公司类型、公司规模或职位。可以给出示例提示:“是否存在完全不适用的行业?规模过小或过大的公司?看似合适但从未采购的职位?” 即使是粗略的排除条件,也能避免后续出现杂乱的搜索结果。
如果用户提供了公司网址,请先使用网络工具调研,再提出后续问题。不要询问可以从网站上找到答案的问题。
信息收集原则: 这里的每一个答案都应帮助你设置搜索筛选条件(职位、行业、员工数量范围、地区)或排除筛选条件(需跳过的职位、需忽略的行业、需排除的公司类型)。如果用户的回答过于模糊无法转化为筛选值,请进一步追问。不要问泛泛的策略问题——要问能精准化搜索的问题。
Phase 1: Research
阶段1:调研
Using web search and the company URL, investigate:
- Company research — What do they sell? Who do they sell to? Value proposition. Pricing model.
- Market analysis — What category/space? Market size signals. Growth stage.
- Competitor identification — Who are the top 3-5 competitors? How are they positioned?
- Buyer signals — Who buys this kind of product? What titles? What triggers a purchase?
Output: Synthesize findings into a brief (5-10 bullet points) and present to the user for validation. Example:
Research Summary:
- Company sells X to Y
- Main competitors: A, B, C
- Typical buyer: VP/Director level at mid-market companies
- Purchase triggers: scaling team, switching from legacy tool, new budget cycle
- Pricing suggests mid-market / enterprise buyer
Ask the user: "Does this match your understanding? Anything to correct or add?"
使用网络搜索和公司网址,调研以下内容:
- 公司调研——他们销售什么产品?销售对象是谁?价值主张是什么?定价模式是什么?
- 市场分析——属于什么品类/领域?市场规模信号?增长阶段?
- 竞争对手识别——Top 3-5竞争对手是谁?他们的定位如何?
- 采购者信号——谁会购买这类产品?什么职位?什么因素会触发采购?
输出: 将调研结果整理为简短的要点(5-10条),呈现给用户确认。示例:
调研摘要:
- 公司向Y群体销售X产品
- 主要竞争对手:A、B、C
- 典型采购者:中型公司的副总裁/总监级别
- 采购触发因素:团队扩张、更换传统工具、新预算周期
- 定价表明目标客户为中型/企业级买家
询问用户:“这与你的认知是否一致?有需要修正或补充的内容吗?”
Phase 2: Define ICP
阶段2:定义ICP
Based on research + user input, propose a structured ICP:
| Dimension | Recommendation | Reasoning |
|---|---|---|
| Job Titles | e.g., VP Sales, Head of Revenue Ops | Direct buyers of sales tools |
| Seniority | e.g., VP, Director | Budget authority at this deal size |
| Company Size | e.g., 51-200 employees | Sweet spot for this product |
| Industry | e.g., SaaS, FinTech | Highest product-market fit |
| Region | e.g., US, SF Bay Area | Current market focus |
| Signals | e.g., recently hired, posted about pain | Timing indicators |
Present as a table. Ask user to confirm, adjust, or refine. Iterate until they approve.
基于调研结果+用户输入,提出结构化的ICP:
| 维度 | 建议 | 理由 |
|---|---|---|
| 职位 | 例如:销售副总裁、营收运营主管 | 销售工具的直接采购者 |
| 职级 | 例如:副总裁、总监 | 该交易规模下拥有预算决策权 |
| 公司规模 | 例如:51-200名员工 | 该产品的最佳客户群体 |
| 行业 | 例如:SaaS、金融科技 | 产品-市场契合度最高 |
| 地区 | 例如:美国、旧金山湾区 | 当前市场聚焦区域 |
| 信号 | 例如:近期招聘、发布相关痛点内容 | 采购时机指标 |
以表格形式呈现。请用户确认、调整或细化。反复迭代直至用户认可。
Exclusion Criteria (Equally Important)
排除条件(同样重要)
Define what to filter OUT. These map directly to "not in" / exclusion parameters in search tools:
| Dimension | Exclude | Reasoning |
|---|---|---|
| Titles to exclude | e.g., Intern, Coordinator, Assistant, Student | No budget authority or decision power |
| Industries to exclude | e.g., Government, Education, Non-profit | Product doesn't serve these verticals |
| Company types to exclude | e.g., Agencies, consultancies, sole proprietors | Not a fit for the product model |
| Company size to exclude | e.g., 1-10 employees, 10,000+ | Too small to need it / too large to buy it |
| Specific companies to exclude | e.g., existing customers, competitors, partners | Already in pipeline or not appropriate |
Present exclusions alongside the inclusion table. Ask user to confirm both.
Important: The ICP definition becomes the input context for all downstream skills. Be specific — vague ICPs produce vague leads.
Search precision warning: Downstream tools (Crustdata, Apollo) match on the exact title strings, industry tags, and keywords you pass them. Overly broad or stuffed filters (e.g., 15 keyword tags) return noisy results. Each filter value should be specific and intentional. When in doubt, use fewer, more precise values and let exclusions do the narrowing.
定义需要过滤掉的对象。这些直接对应搜索工具中的“排除”参数:
| 维度 | 排除对象 | 理由 |
|---|---|---|
| 需排除的职位 | 例如:实习生、协调员、助理、学生 | 无预算决策权 |
| 需排除的行业 | 例如:政府、教育、非营利组织 | 产品无法服务这些垂直领域 |
| 需排除的公司类型 | 例如:代理机构、咨询公司、个体经营者 | 不符合产品模式 |
| 需排除的公司规模 | 例如:1-10名员工、10000名以上员工 | 规模过小不需要/规模过大不会采购 |
| 需排除的特定公司 | 例如:现有客户、竞争对手、合作伙伴 | 已在客户管道中或不适合作为目标 |
将排除条件与纳入条件表格一同呈现。请用户确认两者。
重要提示: ICP定义将成为所有下游技能的输入上下文。请确保内容具体——模糊的ICP会产生模糊的潜在客户。
搜索精度警告: 下游工具(Crustdata、Apollo)会完全匹配你传入的职位字符串、行业标签和关键词。过于宽泛或堆砌的筛选条件(例如15个关键词标签)会返回杂乱的结果。每个筛选值都应具体且有针对性。若有疑问,请使用更少、更精准的筛选值,通过排除条件来缩小范围。
Phase 3: Choose Path — TAM or Leads?
阶段3:选择路径——TAM图谱还是潜在客户?
Once ICP is locked, ask the user:
"Now that we have the ICP defined, would you like to:
- Map your TAM — Build a scored Total Addressable Market: discover all companies matching your ICP, score and tier them, and build a persona watchlist for the best-fit accounts. This is the strategic, market-first approach.
- Find leads/prospects now — Go straight to finding individual people to contact. This is the tactical, results-now approach.
TAM mapping is best when you want a full picture of your market, ongoing signal monitoring, and a systematic account-based approach. Lead finding is best when you need contacts to reach out to immediately."
ICP确定后,询问用户:
“现在我们已经定义了ICP,你希望:
- 绘制你的TAM图谱——构建一个经过评分的总潜在市场:发现所有符合你ICP的公司,进行评分和分级,并为最匹配的客户构建角色观察列表。这是一种战略性的、以市场为先的方法。
- 立即寻找潜在客户——直接找到可联系的个人。这是一种战术性的、快速出结果的方法。*
当你想要全面了解市场、持续监控信号并采用系统化的基于客户的方法时,TAM图谱绘制是最佳选择。当你需要立即获取可联系的客户时,潜在客户开发是最佳选择。”
Path A: Map the TAM → tam-builder
tam-builder路径A:绘制TAM图谱 → tam-builder
tam-builderIf the user chooses TAM mapping, don't jump straight into the full build. Walk through a sizing + confirmation gate first:
CRITICAL: No database writes without explicit user approval. The must never upsert to Supabase until the user has reviewed sample results and said "go." This prevents polluting the database with unwanted entries that are hard to clean up.
tam-builder如果用户选择TAM图谱绘制,不要直接进入完整构建流程。先完成规模测算+确认环节:
关键规则:未经用户明确批准,不得写入数据库。 在用户查看样本结果并确认“开始”之前,绝对不能向Supabase插入或更新数据。这可以避免数据库被不必要的条目污染,而这些条目很难清理。
tam-builderStep 1: Preview the TAM universe
步骤1:预览TAM范围
Run with the flag to get a total company count without touching the database:
tam-builder--previewbash
python3 skills/capabilities/tam-builder/scripts/tam_builder.py \
--config <config>.json --mode build --previewPresent the count to the user along with cost/resource context:
"Based on your ICP filters, Apollo found ~X companies in your TAM universe. Here's what a full build would look like:
- Apollo API credits: ~Y pages of company search (100 companies/page) + persona lookups for Tier 1-2 companies
- Supabase rows: up to X company records + estimated persona records
- Time: roughly Z minutes for the full build
Before committing, let me run a sample so you can see how the scoring and results look."
运行带参数的,获取公司总数但不触碰数据库:
--previewtam-builderbash
python3 skills/capabilities/tam-builder/scripts/tam_builder.py \
--config <config>.json --mode build --preview将数量及成本/资源上下文呈现给用户:
“基于你的ICP筛选条件,Apollo在你的TAM范围内找到了约X家公司。完整构建的情况如下:
- Apollo API点数: 约Y页公司搜索结果(每页100家公司)+ 对1-2级客户的角色调研
- Supabase行数: 最多X条公司记录 + 预估的角色记录
- 时间: 完整构建大约需要Z分钟
在正式开始之前,我先运行一个样本,让你了解评分和结果的样子。”
Step 2: Run a sample (NO database writes)
步骤2:运行样本(不写入数据库)
Always run a sample before any database writes:
bash
python3 skills/capabilities/tam-builder/scripts/tam_builder.py \
--config <config>.json --mode build --sample --testThis searches Apollo (1 page, ~100 companies), scores them in-memory only, and prints:
- Tier distribution (how many Tier 1 / 2 / 3)
- Top Tier 1 companies with scores
- Sample Tier 2 companies
No data is written to Supabase. Present the output to the user and ask:
"Here's what the sample looks like — [tier distribution + example companies]. Does this look right? Would you like to:
- Proceed with the full build — upsert all ~X companies to Supabase
- Limit the build — cap at a specific number of companies
- Adjust filters — tweak the ICP filters and re-sample "
If the user wants to adjust filters and re-sample, run again. Multiple re-samples are free — nothing touches the database until the user approves.
--sample --test在写入数据库之前,务必先运行样本:
bash
python3 skills/capabilities/tam-builder/scripts/tam_builder.py \
--config <config>.json --mode build --sample --test这会在Apollo中搜索(1页,约100家公司),仅在内存中进行评分,并输出:
- 分级分布(1级/2级/3级的数量)
- 评分最高的1级公司示例
- 2级公司样本
不会向Supabase写入任何数据。 将输出结果呈现给用户并询问:
“这是样本结果——[分级分布 + 公司示例]。看起来是否符合预期?你希望:
- 开始完整构建——将约X家公司插入/更新到Supabase
- 限制构建规模——设置公司数量上限
- 调整筛选条件——修改ICP筛选条件并重新运行样本 ”
如果用户希望调整筛选条件并重新运行样本,请再次执行。多次重新运行样本是免费的——直到用户批准,才会触碰数据库。
--sample --testStep 3: Execute the build (only after explicit approval)
步骤3:执行构建(仅在明确批准后)
Once the user confirms, run in the agreed scope (full or limited) without :
tam-builder--samplebash
python3 skills/capabilities/tam-builder/scripts/tam_builder.py \
--config <config>.json --mode buildNever pass on a first build. The script's built-in confirmation prompts are an additional safety net.
--yesAfter the build completes, summarize results and explain what comes next:
- — Monitor TAM companies for buying signals (headcount changes, funding, job postings, LinkedIn activity)
signal-scanner - or
cold-email-outreach— Reach out to Tier 1-2 personas when signals firelinkedin-outreach - The full chain:
tam-builder → signal-scanner → cold-email-outreach
When to recommend TAM path:
- User wants a systematic, account-based approach
- Market is well-defined but user doesn't know which companies are in it
- User plans to run ongoing outbound (not a one-shot campaign)
- User wants to prioritize accounts by fit before reaching out
- User asks about "market sizing", "target account list", or "account-based"
用户确认后,按照约定的范围(完整或受限)运行,不添加参数:
tam-builder--samplebash
python3 skills/capabilities/tam-builder/scripts/tam_builder.py \
--config <config>.json --mode build首次构建时切勿使用参数。 脚本内置的确认提示是额外的安全保障。
--yes构建完成后,总结结果并说明后续流程:
- ——监控TAM内公司的采购信号(员工数量变化、融资、招聘信息、LinkedIn动态)
signal-scanner - 或
cold-email-outreach——当信号触发时,联系1-2级角色linkedin-outreach - 完整流程:
tam-builder → signal-scanner → cold-email-outreach
推荐选择TAM路径的场景:
- 用户希望采用系统化的、基于客户的方法
- 市场定义清晰,但用户不知道其中包含哪些公司
- 用户计划开展持续的 outbound 营销(而非一次性活动)
- 用户希望在联系前根据匹配度对客户进行优先级排序
- 用户询问“市场规模测算”、“目标客户清单”或“基于客户的营销”
Path B: Find Leads/Prospects → Lead-Finding Skills
路径B:寻找潜在客户 → 潜在客户开发技能
If the user chooses lead finding, present ranked strategies based on what's available in the skill graph:
| # | Strategy | Skill Used | Best For | Effort |
|---|---|---|---|---|
| 1 | Database search — Search people DB by title, industry, region, company size | | High volume, broad ICP | Low |
| 2 | Pain language — Find people posting about problems your product solves | | Warm leads with expressed need | Medium |
| 3 | Competitor audiences — Find people engaging with competitor content | | Leads already in-market | Medium |
| 4 | KOL audiences — Find leads from industry influencer audiences | | Niche, high-quality leads | Medium |
| 5 | Hiring signals — Find companies hiring roles your product replaces/supports | | Companies with budget & urgency | Medium |
| 6 | Event attendees — Find leads from industry events | | Engaged, in-market leads | Low |
| 7 | Apollo database search — Search Apollo's 210M+ contact database (free search, paid enrichment) | | Broadest coverage, cost-controlled enrichment | Low |
Recommendation logic:
- Early-stage / broad ICP → Start with database search (volume) + pain language (warmth)
- Established with known competitors → Competitor audiences + database search
- Niche market → KOL audiences + event attendees
- High urgency / budget signals matter → Hiring signals + database search
Recommend 1-2 strategies based on the ICP and company stage. Ask user to pick which to execute.
如果用户选择潜在客户开发,根据技能图谱中的可用选项,呈现排名策略:
| # | 策略 | 使用技能 | 最佳适用场景 | 实施难度 |
|---|---|---|---|---|
| 1 | 数据库搜索——按职位、行业、地区、公司规模搜索人员数据库 | | 高数量、宽泛ICP | 低 |
| 2 | 痛点关键词搜索——寻找发布过产品可解决的痛点内容的用户 | | 明确表达需求的高意向潜在客户 | 中 |
| 3 | 竞争对手受众——寻找与竞争对手内容互动的用户 | | 已进入市场的潜在客户 | 中 |
| 4 | KOL受众——从行业意见领袖的受众中寻找潜在客户 | | 细分领域、高质量潜在客户 | 中 |
| 5 | 招聘信号——寻找正在招聘产品可替代/支持的职位的公司 | | 有预算和采购紧迫性的公司 | 中 |
| 6 | 活动参与者——从行业活动中寻找潜在客户 | | 积极参与、已进入市场的潜在客户 | 低 |
| 7 | Apollo数据库搜索——搜索Apollo的2.1亿+联系人数据库(搜索免费,数据 enrichment 付费) | | 覆盖范围最广,成本可控的数据 enrichment | 低 |
推荐逻辑:
- 早期阶段/宽泛ICP → 从数据库搜索(高数量)+ 痛点关键词搜索(高意向)开始
- 已建立业务且有明确竞争对手 → 竞争对手受众 + 数据库搜索
- 细分市场 → KOL受众 + 活动参与者
- 高紧迫性/预算信号重要 → 招聘信号 + 数据库搜索
根据ICP和公司阶段推荐1-2种策略。请用户选择要执行的策略。
Phase 4: Hand Off
阶段4:交接
Once user selects their path and strategy(ies):
- Load the corresponding skill's
SKILL.md - Pass the ICP definition as context — titles, industries, regions, company size, signals
- Begin that skill's Phase 0 (intake) with ICP already populated — don't re-ask questions the ICP already answers
- If multiple strategies selected, execute sequentially — complete one before starting the next
用户选择路径和策略后:
- 加载对应技能的
SKILL.md - 传递ICP定义作为上下文——职位、行业、地区、公司规模、信号
- 启动该技能的阶段0(信息收集),并预先填充ICP——不要重复询问ICP已涵盖的问题
- 如果选择了多种策略,按顺序执行——完成一个后再开始下一个
Handoff format
交接格式
When transitioning to a downstream skill, carry forward:
ICP Context (from icp-identification):
Include:
- Titles: [list]
- Seniority: [list]
- Company size: [range]
- Industries: [list]
- Region: [list]
- Signals: [list]
- Product: [what the user sells]
- Competitors: [identified competitors]
Exclude:
- Titles to exclude: [list]
- Industries to exclude: [list]
- Company types to exclude: [list]
- Company size to exclude: [ranges]
- Companies to exclude: [specific names, if any]This ensures downstream skills skip redundant intake questions and start executing immediately. Both inclusion and exclusion criteria must be passed — exclusions are what prevent noisy search results.
切换到下游技能时,需传递以下内容:
ICP上下文(来自icp-identification):
包含:
- 职位:[列表]
- 职级:[列表]
- 公司规模:[范围]
- 行业:[列表]
- 地区:[列表]
- 信号:[列表]
- 产品:[用户销售的产品]
- 竞争对手:[已识别的竞争对手]
排除:
- 需排除的职位:[列表]
- 需排除的行业:[列表]
- 需排除的公司类型:[列表]
- 需排除的公司规模:[范围]
- 需排除的公司:[特定名称(如有)]这确保下游技能跳过冗余的信息收集问题,直接开始执行。必须同时传递纳入和排除条件——排除条件是避免杂乱搜索结果的关键。