
Enrichment Design
- 43 installs
- 104 repo stars
- Updated July 1, 2026
- extruct-ai/gtm-skills
Helps with design & ui/ux tasks.
About
enrichment-design is a Claude Code skill for design & ui/ux. It helps solo builders move faster with AI-assisted coding.
- enrichment-design
- Design & UI/UX
- AI-coding skill
Enrichment Design by the numbers
- 43 all-time installs (skills.sh)
- Ranked #1,265 of 1,880 Design & UI/UX 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 enrichment-designAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 43 |
|---|---|
| repo stars | ★ 104 |
| Last updated | July 1, 2026 |
| Repository | extruct-ai/gtm-skills ↗ |
What it does
Helps with design & ui/ux tasks.
Files
Data Points Builder
Bridge the gap between research hypotheses and table enrichment. Define WHAT to research about each company before running enrichment.
When to Use
- After
market-researchhas produced a hypothesis set - Before
list-enrichment— this skill designs the columns, that skill runs them - When the user says "what should we research about these companies?"
Two Modes
Mode 1: Segmentation
Goal: Design columns that score or confirm hypothesis fit per company.
Input: Hypothesis set (from market-research or context file)
Process: 1. Read the hypothesis set 2. For each hypothesis, propose 1-2 columns that would confirm or deny fit 3. Discuss with user — refine, add, remove 4. Output final column_configs
Example: If hypothesis is "Database blind spot — 80-90% of targets invisible to standard tools":
- Column: "Data Infrastructure Maturity" (select: ["No CRM", "Basic CRM", "Full stack"])
- Column: "Digital Footprint Score" (grade: 1-5)
Mode 2: Personalization
Goal: Design columns that capture company-specific hooks for email personalization.
Input: Target list + what the user wants to personalize on
Process: 1. Ask what hooks matter for this campaign (leadership quotes, recent launches, hiring signals, tech stack, etc.) 2. Propose 2-4 columns with prompts 3. Discuss with user — refine 4. Output final column_configs
Example: For personalization hooks:
- Column: "Recent Product Launch" (text: describe any product launched in last 6 months)
- Column: "Leadership Public Statement" (text: find a public quote from CEO/CTO about [topic])
Interactive Column Design
Do NOT just generate columns silently. Walk through this with the user:
Step 1: Present the framework
Show the user the two modes and ask which applies (or both).
Step 2: Propose initial columns
Based on hypotheses or user input, propose 3-5 columns. For each, show:
Column: [name]
Type: [output_format]
Agent: [research_pro | llm]
Prompt: [the actual prompt text]
Why: [what this tells us for segmentation/personalization]Step 3: Refine together
Ask:
- "Any columns to add?"
- "Any to remove or merge?"
- "Should any prompts be more specific?"
Step 4: Confirm column budget
Guidance:
- 3-5 columns is the sweet spot
- 6-7 is acceptable if each serves a clear purpose
- 8+ adds noise — push back and suggest merging
Step 5: Output column_configs
Generate the final column configs as a JSON array ready for list-enrichment:
[
{
"kind": "agent",
"name": "Column Display Name",
"key": "column_key_snake_case",
"value": {
"agent_type": "research_pro",
"prompt": "Research prompt using {input} for domain...",
"output_format": "text"
}
}
]Column Design Guidelines
Agent Type Selection
| Data point type | Agent type | Why |
|---|---|---|
| Factual data from the web (funding, launches, news) | research_pro | Needs web research |
| Classification from company profile | llm | Profile data is enough |
| Nuanced judgment (maturity, fit score) | research_reasoning | Needs chain-of-thought |
| People/org structure | linkedin | LinkedIn-specific |
Output Format Selection
| Data point type | Format | When |
|---|---|---|
| Free-form research | text | Open-ended questions |
| Score/rating | grade | 1-5 scale assessments |
| Category | select | Mutually exclusive buckets |
| Multiple tags | multiselect | Non-exclusive tags |
| Structured data | json | Multiple related fields |
| Yes/no with evidence | json | {"match": bool, "evidence": str} |
Prompt Writing Tips
- Always include
{input}for the company domain - Be specific about output format in the prompt itself
- Include fallback: "If not found, return N/A" or "If unclear, return 'Unknown'"
- For
select/multiselect: list the labels in the prompt too - For hypothesis scoring: reference the specific hypothesis in the prompt
- Keep prompts under 200 words
Reference Library
See references/data-point-library.md for ~20 pre-built column configs organized by use case.
Output Handoff
After column design is complete: 1. Present the final column_configs JSON to the user 2. Tell the user: "These configs are ready for list-enrichment. Run that skill with your table ID and these columns." 3. If the user wants to run immediately, hand off to list-enrichment workflow
Data Point Library
Pre-built column configs organized by use case. Copy and customize for your campaign.
Segmentation Columns
Company Size & Stage
{
"kind": "agent", "name": "Employee Count Bucket", "key": "employee_bucket",
"value": {
"agent_type": "llm",
"prompt": "Based on the company profile for {input}, classify employee count into one of these buckets. Return ONLY the label.",
"output_format": "select",
"labels": ["1-10", "11-50", "51-200", "201-500", "500+"]
}
}{
"kind": "agent", "name": "Funding Stage", "key": "funding_stage",
"value": {
"agent_type": "research_pro",
"prompt": "Find the latest funding round for {input}. Return the stage name only (e.g., Seed, Series A, Series B). If bootstrapped or unknown, return 'Bootstrapped'. If public, return 'Public'.",
"output_format": "select",
"labels": ["Bootstrapped", "Seed", "Series A", "Series B", "Series C+", "Public"]
}
}Technology & Infrastructure
{
"kind": "agent", "name": "CRM Platform", "key": "crm_platform",
"value": {
"agent_type": "research_pro",
"prompt": "What CRM or sales platform does {input} use? Look for evidence in job postings, case studies, or tech stack databases. Return the platform name (e.g., Salesforce, HubSpot, Pipedrive). If unknown, return 'Unknown'.",
"output_format": "text"
}
}{
"kind": "agent", "name": "Tech Stack Maturity", "key": "tech_maturity",
"value": {
"agent_type": "research_reasoning",
"prompt": "Assess the technology maturity of {input}. Consider: do they have a modern website? Do they use cloud services? Do job postings mention modern tools? Rate 1 (minimal tech) to 5 (advanced).",
"output_format": "grade"
}
}Market Position
{
"kind": "agent", "name": "Geographic Coverage", "key": "geo_coverage",
"value": {
"agent_type": "research_pro",
"prompt": "How many locations, offices, or markets does {input} operate in? Classify as: Local (1 city), Regional (1 state/region), National (multiple states), International. Return ONLY the label.",
"output_format": "select",
"labels": ["Local", "Regional", "National", "International"]
}
}{
"kind": "agent", "name": "Primary Vertical", "key": "primary_vertical",
"value": {
"agent_type": "llm",
"prompt": "Based on the company profile for {input}, what is their primary industry vertical? Return a specific label, not a broad category. Examples: 'SaaS', 'Logistics', 'Healthcare', 'Manufacturing'. Return one label only.",
"output_format": "text"
}
}Personalization Columns
Leadership & Public Signals
{
"kind": "agent", "name": "CEO Public Statement", "key": "ceo_statement",
"value": {
"agent_type": "research_pro",
"prompt": "Find a recent public statement, interview, blog post, or LinkedIn post by the CEO or founder of {input}. Focus on their views about [TOPIC]. Return a 1-2 sentence summary with the source URL. If nothing found, return 'No public statements found'.",
"output_format": "text"
}
}{
"kind": "agent", "name": "Recent News", "key": "recent_news",
"value": {
"agent_type": "research_pro",
"prompt": "Find the most significant news about {input} from the last 6 months. Focus on: product launches, partnerships, funding, leadership changes, or expansion. Return a 1-sentence summary with date. If nothing found, return 'No recent news'.",
"output_format": "text"
}
}Hiring Signals
{
"kind": "agent", "name": "Key Hiring Signals", "key": "hiring_signals",
"value": {
"agent_type": "research_pro",
"prompt": "Check if {input} is currently hiring for roles related to [FUNCTION]. Look at their careers page and job boards. Return: role title(s) and what it signals about their priorities. If no relevant openings, return 'No relevant openings'.",
"output_format": "text"
}
}Competitive Context
{
"kind": "agent", "name": "Current Tools", "key": "current_tools",
"value": {
"agent_type": "research_pro",
"prompt": "What tools or platforms does {input} currently use for [FUNCTION]? Look in job postings, case studies, tech directories, and G2 reviews. Return tool names. If unknown, return 'Unknown'.",
"output_format": "text"
}
}Hypothesis Scoring Columns
Template: Binary Hypothesis Match
{
"kind": "agent", "name": "Hypothesis: [NAME]", "key": "hyp_[key]",
"value": {
"agent_type": "research_reasoning",
"prompt": "Evaluate whether {input} matches this hypothesis: '[HYPOTHESIS DESCRIPTION]'. Look for evidence that confirms or denies this. Return a JSON object.",
"output_format": "json",
"output_schema": {
"type": "object",
"properties": {
"match": {"type": "boolean"},
"confidence": {"type": "string", "enum": ["high", "medium", "low"]},
"evidence": {"type": "string"}
}
}
}
}Template: Hypothesis Fit Score
{
"kind": "agent", "name": "Fit: [HYPOTHESIS]", "key": "fit_[key]",
"value": {
"agent_type": "research_reasoning",
"prompt": "Rate how well {input} fits this hypothesis on a 1-5 scale: '[HYPOTHESIS]'. 1 = no fit, 3 = possible fit, 5 = strong fit. Consider: [SPECIFIC CRITERIA]. Return ONLY a number.",
"output_format": "grade"
}
}Combo Patterns
Segmentation + Personalization (5-column setup)
1. Primary Vertical (select) — segmentation 2. Company Size Bucket (select) — segmentation 3. Hypothesis Fit Score (grade) — segmentation 4. Recent News (text) — personalization 5. Leadership Statement (text) — personalization
Pure Segmentation (4-column setup)
1. Primary Vertical (select) 2. Tech Maturity (grade) 3. Geographic Coverage (select) 4. Hypothesis Match (json with match + evidence)
Pure Personalization (3-column setup)
1. CEO Public Statement (text) 2. Recent Product Launch (text) 3. Current Tools for [function] (text)