
List Segmentation
- 42 installs
- 104 repo stars
- Updated July 1, 2026
- extruct-ai/gtm-skills
Helps with ai & agent building tasks.
About
list-segmentation is a Claude Code skill for ai & agent building. It helps solo builders move faster with AI-assisted coding.
- list-segmentation
- AI & Agent Building
- AI-coding skill
List Segmentation by the numbers
- 42 all-time installs (skills.sh)
- Ranked #8,070 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
- Data as of Jul 31, 2026 (Skillselion catalog sync)
npx skills add https://github.com/extruct-ai/gtm-skills --skill list-segmentationAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 42 |
|---|---|
| repo stars | ★ 104 |
| Last updated | July 1, 2026 |
| Repository | extruct-ai/gtm-skills ↗ |
What it does
Helps with ai & agent building tasks.
Files
Segment and Tier
Take an enriched table + hypothesis set and produce a tiered, segmented list. This decides WHO gets which message and in what order.
Inputs
| 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 |
Extruct API Operations
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.
Workflow
Step 1: Load data
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:
- Number and short name
- Description with data points
- Best-fit company type
Step 2: Match companies to hypotheses
For each company row, evaluate which hypothesis fits best. Consider:
1. Enrichment data alignment — do the enrichment column values match the hypothesis's "best fit" description? 2. Signal strength — how many enrichment columns have useful data (not N/A)? 3. Specificity — does the company's profile match the hypothesis narrowly or broadly?
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"Step 3: Assign tiers
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):
- CEO/leadership made a public statement related to the hypothesis
- Recent news directly relevant to the pain point
- Hiring for roles that signal the hypothesis pain
- High hypothesis fit score from enrichment (grade 4-5)
Tier 3 signals (any of these):
- Most enrichment fields returned N/A
- No hypothesis match above threshold
- Company profile too generic to confidently segment
Step 4: Generate output
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_signal
Step 5: Review with user
Present summary stats:
- Total companies: N
- Tier 1: N (X%)
- Tier 2: N (X%)
- Tier 3: N (X%)
- Unmatched: N
Ask:
- "Does the tier distribution look right? (Typical: 10-20% Tier 1, 50-60% Tier 2, 20-30% Tier 3)"
- "Any companies that should move tiers?"
- "Ready to proceed to
email-generation?"
Reference
See references/tiering-framework.md for the detailed tiering decision matrix.
Tiering Framework
Detailed decision matrix for assigning companies to tiers.
Tier Decision Matrix
| Signal | Tier 1 | Tier 2 | Tier 3 |
|---|---|---|---|
| Hypothesis fit score (if grade column) | 4-5 | 2-3 | 1 or N/A |
| Enrichment fields populated | 4+ of 5 | 2-3 of 5 | 0-1 of 5 |
| Hook signal available | Yes (specific) | Generic only | None |
| Company profile depth | Rich description + recent data | Basic description | Minimal or stale |
| Vertical match to hypothesis | Exact | Adjacent | No match |
Scoring Formula (optional)
If you want a numeric score per company:
tier_score = (hypothesis_fit * 0.4) + (data_richness * 0.3) + (hook_available * 0.3)
Where:
- hypothesis_fit: 0-5 (from grade column or manual assessment)
- data_richness: 0-5 (count of populated fields / total fields * 5)
- hook_available: 0 (no hook), 3 (generic hook), 5 (specific hook)
Tier 1: score >= 3.5
Tier 2: score >= 2.0
Tier 3: score < 2.0Tier-Specific Actions
Tier 1: Full Personalization Pipeline
1. Run through email-generation with hypothesis + hook signal 2. Review each email via email-response-simulation (Perplexity persona research) 3. Iterate until satisfied 4. Upload to Instantly in a separate, high-touch campaign
Expected volume: 10-20% of list (20-50 companies) Email quality: Highly personalized P1 with specific hook
Tier 2: Templated with Hypothesis Variation
1. Run through email-generation with hypothesis only (no individual hooks) 2. Group by hypothesis — each group gets a slightly different P1 3. Spot-check 5-10 emails for quality 4. Upload to Instantly in main campaign
Expected volume: 50-60% of list (100-300 companies) Email quality: Hypothesis-personalized but not individually researched
Tier 3: Hold or Re-Process
Options: 1. Re-enrich: Run additional enrichment columns to fill gaps 2. Different campaign: Save for a broader, less-targeted campaign 3. Drop: If the company truly doesn't fit any hypothesis
Expected volume: 20-30% of list Email quality: Do not email until upgraded to Tier 2+
Common Tier Distribution Issues
| Issue | Fix |
|---|---|
| 80%+ in Tier 3 | Hypotheses don't match the list — re-run market-research or rebuild the list |
| 50%+ in Tier 1 | Tiering too lenient — tighten the hook signal requirement |
| 0% in Tier 1 | No personalization columns — run enrichment-design in personalization mode |
| Even split across all 3 | Usually correct — proceed |