Overview
Take an enriched Extruct table and a hypothesis set, then segment companies by hypothesis fit and assign tiers based on data richness and signal strength. Outputs a tiered, segmented list ready for email generation.When to Use
Trigger this skill when you need to:- Segment companies by hypothesis fit
- Tier companies for prioritization
- Prioritize your list for outreach
- Determine which companies get personalized emails
- Decide messaging order and depth
Inputs
Extruct table ID from the
list-enrichment skill containing company data with enrichment columnsPath to hypothesis set file:
claude-code-gtm/context/{vertical-slug}/hypothesis_set.mdCompany context file:
claude-code-gtm/context/{company}_context.md (recommended for better segmentation)Environment Setup
Verify API Token
The skill checks for
EXTRUCT_API_TOKEN environment variable. If missing, you’ll be prompted to provide your Extruct API token.Workflow
Load Data
Fetch enriched table data via
GET /tables/{table_id}/data and parse all rows with their enrichment column values.Read the hypothesis set file and parse each hypothesis into:- Number and short name
- Description with data points
- Best-fit company type
Match Companies to Hypotheses
For each company row, evaluate which hypothesis fits best by considering:
- Enrichment data alignment — Do the enrichment column values match the hypothesis’s “best fit” description?
- Signal strength — How many enrichment columns have useful data (not N/A)?
- Specificity — Does the company’s profile match the hypothesis narrowly or broadly?
Decision Framework
Decision Framework
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)
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)
Tier 3 Signals (any of these)
- Most enrichment fields returned N/A
- No hypothesis match above threshold
- Company profile too generic to confidently segment
Generate Output
Output a segmented list in two formats:Markdown table (for review):CSV (for email-generation):Saved 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
Review with User
Present summary stats:
- Total companies: N
- Tier 1: N (X%)
- Tier 2: N (X%)
- Tier 3: N (X%)
- Unmatched: N
- “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?”
Tiering Framework
Scoring Formula
Optional numeric scoring for systematic tier assignment:
Tier Decision Matrix
| Signal | Tier 1 | Tier 2 | Tier 3 |
|---|---|---|---|
| Hypothesis fit score | 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 | Exact | Adjacent | No match |
Output Actions by Tier
Tier 1: Full Personalization Pipeline
Tier 1: Full Personalization Pipeline
Expected volume: 10-20% of list (20-50 companies)Email quality: Highly personalized P1 with specific hookProcess:
- Run through
email-generationwith hypothesis + hook signal - Review each email via
email-response-simulation(persona research) - Iterate until satisfied
- Upload to sequencer in a separate, high-touch campaign
Tier 2: Templated with Hypothesis Variation
Tier 2: Templated with Hypothesis Variation
Expected volume: 50-60% of list (100-300 companies)Email quality: Hypothesis-personalized but not individually researchedProcess:
- Run through
email-generationwith hypothesis only (no individual hooks) - Group by hypothesis — each group gets a slightly different P1
- Spot-check 5-10 emails for quality
- Upload to sequencer in main campaign
Tier 3: Hold or Re-Process
Tier 3: Hold or Re-Process
Expected volume: 20-30% of listEmail quality: Do not email until upgraded to Tier 2+Options:
- Re-enrich: Run additional enrichment columns to fill gaps
- Different campaign: Save for a broader, less-targeted campaign
- Drop: If the company truly doesn’t fit any hypothesis
Troubleshooting Tier Distribution
API Reference
Fetch Table Data
Next Steps
After segmentation is complete:- Tier 1 companies →
people-search→email-search→email-generation→email-response-simulation - Tier 2 companies →
people-search→email-search→email-generation - Tier 3 companies → Hold or re-run
list-enrichment