From gtm-skills
Segments enriched company lists by hypothesis fit and assigns tiers (1-3) based on data richness and signal strength for targeted email campaigns.
How this skill is triggered — by the user, by Claude, or both
Slash command
/gtm-skills:list-segmentationThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Take an enriched table + hypothesis set and produce a tiered, segmented list. This decides WHO gets which message and in what order.
Take an enriched table + hypothesis set and produce a tiered, segmented list. This decides WHO gets which message and in what order.
| Input | Source | Required |
|---|---|---|
| Enriched table | Extruct table ID (after list-enrichment) | yes |
| Hypothesis set | claude-code-gtm/context/{vertical-slug}/hypothesis_set.md or context file | yes |
| Context file | claude-code-gtm/context/{company}_context.md | recommended |
This skill delegates all Extruct API calls to the extruct-api skill.
For all Extruct API operations, read and follow the instructions in skills/extruct-api/SKILL.md.
The only Extruct operation in this skill is fetching enriched table data. Everything else is pure reasoning.
Use the extruct-api skill to fetch enriched table data. Parse all rows and their enrichment column values.
Read the hypothesis set file. Parse each hypothesis into:
For each company row, evaluate which hypothesis fits best. Consider:
Assign each company ONE primary hypothesis. If multiple fit, pick the strongest signal.
Decision framework:
For each company:
1. Read all enrichment values
2. For each hypothesis:
- Does the company's vertical/industry match the "best fit"?
- Do enrichment values confirm the hypothesis pain point?
- Is there a specific data point that makes this hypothesis resonate?
3. Pick the hypothesis with the strongest evidence
4. If no hypothesis fits well, mark as "Unmatched"
Three tiers based on fit strength and data richness:
| Tier | Criteria | Action |
|---|---|---|
| Tier 1 | Strong hypothesis fit + data-rich (3+ enrichment fields populated) + clear hook signal | Personalized email via email-response-simulation review |
| Tier 2 | Medium hypothesis fit OR data-rich but no clear hook | Standard templated email via email-generation |
| Tier 3 | Weak fit OR missing data (2+ fields N/A) OR unmatched hypothesis | Hold for re-enrichment or different campaign |
Tier 1 signals (any of these):
Tier 3 signals (any of these):
Output a segmented list in two formats:
Markdown table (for review):
## Segmented List: [Campaign Name]
### Tier 1 — [N] companies (personalized outreach)
| Company | Domain | Hypothesis | Tier Rationale | Hook Signal |
|---------|--------|-----------|----------------|-------------|
| [name] | [domain] | #[N] [name] | [why this tier] | [specific hook] |
### Tier 2 — [N] companies (templated outreach)
| Company | Domain | Hypothesis | Tier Rationale |
|---------|--------|-----------|----------------|
| [name] | [domain] | #[N] [name] | [why this tier] |
### Tier 3 — [N] companies (hold/re-enrich)
| Company | Domain | Issue |
|---------|--------|-------|
| [name] | [domain] | [what's missing] |
CSV (for email-generation):
Save to claude-code-gtm/csv/input/{campaign-slug}/segmented_list.csv with columns:
company_name, domain, tier, hypothesis_number, hypothesis_name, tier_rationale, hook_signalPresent summary stats:
Ask:
email-generation?"See references/tiering-framework.md for the detailed tiering decision matrix.
npx claudepluginhub extruct-ai/gtm-skills --plugin gtm-skillsBuilds targeted company lists for outbound campaigns using Extruct. Use for ICP matching, prospect list creation, competitive research, and lookalike searches.
Classify companies into Ideal Customer Profile (ICP) tiers based on firmographic data (industry + employee count). Creates a custom property via API and 4 classification workflows in HubSpot UI.
Builds targeted company and contact lists using Common Room Prospector for net-new prospects or existing accounts with signals. Clarifies object types and refines iteratively.