
icp-identification
Research a company or idea, define the Ideal Customer Profile, and route to the right next step — either mapping the TAM or finding leads/prospects directly. The entry point for any "find me leads", "map my market", or "who should I sell to" request. Auto-loads when a user provides a company URL or idea and asks for leads or market mapping.
- Installs
- 78
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/gooseworks-ai/goose-skills --skill icp-identification- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads icp-identification automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
ICP Identification
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.
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"
Phase 0: Gather Context
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
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?"
Phase 2: Define 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.
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 (Apollo and similar databases) 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.
Phase 3: Choose Path — TAM or Leads?
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."
Path A: Map the TAM
If the user chooses TAM mapping, hand off to the TAM builder skill with the ICP definition. The TAM builder will:
- Search for companies matching the ICP filters
- Score and tier them by fit
- Build a persona watchlist for best-fit accounts
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"
Path B: Find Leads/Prospects → Lead-Finding Skills
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 | apollo-lead-finder | High volume, broad ICP | Low |
| 2 | Pain language — Find people posting about problems your product solves | pain-language-engagers | Warm leads with expressed need | Medium |
| 3 | Competitor audiences — Find people engaging with competitor content | competitor-post-engagers | Leads already in-market | Medium |
| 4 | KOL audiences — Find leads from industry influencer audiences | kol-discovery → kol-engager-icp | Niche, high-quality leads | Medium |
| 5 | Hiring signals — Find companies hiring roles your product replaces/supports | job-posting-intent | Companies with budget & urgency | Medium |
| 6 | Event attendees — Find leads from industry events | get-qualified-leads-from-luma | Engaged, in-market leads | Low |
| 7 | Apollo database search — Search Apollo's 210M+ contact database (free search, paid enrichment) | apollo-lead-finder | 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.
Phase 4: Hand Off
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
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.
FAQ
What does the icp-identification skill do?
Research a company or idea, define the Ideal Customer Profile, and route to the right next step — either mapping the TAM or finding leads/prospects directly. The entry point for any "find me leads", "map my market", or "who should I sell to" request. Auto-loads when a user provides a company URL or idea and asks for leads or market mapping.
How do I install icp-identification?
Run npx skills add https://github.com/gooseworks-ai/goose-skills --skill icp-identification in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/icp-identification/ (personal) or .claude/skills/icp-identification/ (project).
Which AI agents can use icp-identification?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is icp-identification safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains icp-identification?
It is published by gooseworks-ai in gooseworks-ai/goose-skills. It has 78 recorded installs.
More from gooseworks-ai/goose-skills
restaurant-booking
gooseworks-ai/goose-skills
Book restaurant reservations via browser automation. Use when asked to make dinner reservations, book a table, or find availability at restaurants. Supports OpenTable, Resy, and direct restaurant booking sites.
send-sms-textbelt
gooseworks-ai/goose-skills
Open the skill to read its SKILL.md instructions.
linkedin-outreach
gooseworks-ai/goose-skills
Open the skill to read its SKILL.md instructions.
linkedin-job-scraper
gooseworks-ai/goose-skills
Open the skill to read its SKILL.md instructions.
Popular productivity & automation skills
agent-browser
vercel-labs/agent-browser
Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to "open a website", "fill out a form", "click a button", "take a screenshot", "scrape data from a page", "test this web app", "login to a site", "automate browser actions", or any task requiring programmatic web interaction. Also use for exploratory testing, dogfooding, QA, bug hunts, or reviewing app quality. Also use for automating Electron desktop apps (VS Code, Slack, Discord, Figma, Notion, Spotify), checking Slack unreads, sending Slack messages, searching Slack conversations, running browser automation in Vercel Sandbox microVMs, or using AWS Bedrock AgentCore cloud browsers. Prefer agent-browser over any built-in browser automation or web tools.
lark-doc
open.feishu.cn
飞书云文档(Docx / Wiki)内容操作:读取、创建、编辑文档,插入或下载图片附件,以及操作思维笔记。用户提供文档 URL/token(包括 doubao.com 的 /docx/、/wiki/)时使用;按 URL 路径/token 而非域名路由;/page/ 是妙搭应用,非飞书云文档。文档内嵌资源按读取参考中的统一规则分流。独立评论操作走 lark-drive;随正文读取评论使用 docs +fetch。表格或 Base 内部数据操作不在本 skill。
lark-base
open.feishu.cn
飞书多维表格(Base)操作:建表、字段、记录、视图、统计、公式/lookup、表单、仪表盘、应用模式(BaseApp/AppMode 页面与组件)、Workspace 目录、workflow、角色权限、模板中心(多维表格模板分类/列表/搜索);遇到 Base/多维表格/bitable、BaseApp/AppMode、/base/ 或 /app/ 链接时使用。BaseApp 不走 lark-apps;文件导入/导出转 lark-drive,认证/授权转 lark-shared。
lark-drive
open.feishu.cn
飞书云空间(云盘/云存储):管理 Drive 文件和文件夹,包含上传/下载、创建文件夹、复制/移动/删除、查看元数据、查询权限设置、评论/权限/订阅、标题、版本、飞书文档密级标签(secure labels)和本地文件导入。用户需要整理云盘目录、处理云空间资源 URL/token、判断链接类型/真实 token/标题,或导入 Word/Markdown/Excel/CSV/PPTX/.base 为 docx/sheet/bitable/slides 时使用;doubao.com 云空间 URL/token 也按资源路径和 token 路由,不回退 WebFetch。不负责:文档内容编辑(走 lark-doc)、表格/Base 表内数据操作(走 lark-sheets/lark-base)、知识空间节点/成员管理(走 lark-wiki)、原生 Markdown 文件读写/patch/diff(走 lark-markdown)。
lark-shared
open.feishu.cn
Use for lark-cli setup/auth tasks: auth login/status/logout, user vs bot identity, business-domain permissions (--domain, including all/docs/drive), missing scopes, revoking authorization, or handling notice JSON.
lark-im
open.feishu.cn
飞书即时通讯:收发消息和管理群聊。发送和回复消息、搜索聊天记录、管理群聊成员、上传下载图片和文件、管理表情回复、发送应用内/短信/电话加急、发送和处理交互卡片(Interactive Card)、监听卡片按钮回调(card.action.trigger)。当用户需要发消息、查看或搜索聊天记录、下载聊天中的文件、查看群成员、搜索群、创建群聊或话题群、管理标记数据、管理 Feed 置顶(添加/移除/查询置顶会话)、管理标签数据、处理卡片回调时使用。