Gtm company enrichment
Skill vivekkhimani/gtm-tools-template/.agents/skills/gtm-company-enrichment
Agent-first GTM operating manual template: positioning, lead pipeline, outreach, playbooks, investor materials + 22 agent skills
npx -y skills add vivekkhimani/gtm-tools-template --skill gtm-company-enrichmentAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Enrich a company list with structured data and score against ICP. Phase 1: data enrichment (PhantomBuster SN, Parallel Task Group, SimilarWeb, Firecrawl, SerpAPI). Phase 2: ICP scoring via LLM (icp_score 0-100, optional gate ≥70). Use after company-search and before signal-search. Also triggers on "enrich companies", "ICP scoring", "score companies".
SKILL.md
6.4 KB, as published. Nobody here has run it
Company Enrichment
Enrich a company list with structured data and score against ICP. Returns enriched CSV + ICP scores.
Read .agents/skills/_shared/conventions.md before executing.
When to Use
- After
company-search— raw list needs domains, revenue, headcount, etc. - Before
signal-search— ICP scoring determines which companies to invest signal credits on - Before
people-search— enriched domains required for most people search providers
Inputs
| Input | Required | Source |
|---|---|---|
| Company CSV | Yes | Company Search output or user-provided |
| ICP definition | Yes | context/icp.md or user prompt |
Two Phases
Phase 1: Data Enrichment
Add structured company data. Choose provider based on what's available:
| Provider | Data Points | Input needed | Cost | Notes |
|---|---|---|---|---|
| PB SN Scraper | Full SN profile: headcount by dept, growth metrics, revenue range, industry, location | SN company URL | Free (SN account) | Most comprehensive |
| Parallel Task Group | Custom fields via web research | Company name + domain | ~$0.025–0.05/row | Flexible output schema. Ask which processor |
| SimilarWeb via Apify | Monthly traffic, traffic sources | Domain | Apify credits | Actor: curious_coder/similarweb-scraper |
| Firecrawl | Website content, tech stack signals | Domain | Firecrawl credits | Scrape + extract |
| SerpAPI | Domain from company name | Company name | SerpAPI credits | Google search → extract domain |
| Pipe0 company data | TBD — not yet tested | Domain | TBD | Check pipe0 catalog |
Ask the user which provider to use. Default: PB SN Scraper if SN URLs available, otherwise Parallel Task Group.
Phase 2: ICP Scoring
Score enriched companies against client ICP definition.
Phase 1 Execution
PhantomBuster SN Account Scraper
Agent: Sales Navigator Account Scraper (config key: PB_AGENT_SN_ACCOUNT in _shared/local.md, or look up via PhantomBuster MCP)
Read _shared/phantombuster.md for the full API pattern. Use the /phantombuster skill to generate the script:
/phantombuster "Sales Navigator Account Scraper" -- scrape SN company data from <csv_file>, column <sn_url_column>
Input: SN company URLs (one per row in CSV) Output per company: name, industry, headcount by dept, location, LinkedIn URL, SN URL, revenue range, growth metrics (6m / 1y / 2y), median tenure
Parallel Task Group (Custom Enrichment)
Endpoint: POST https://api.parallel.ai/v1/tasks
Auth: x-api-key: $PARALLEL_API_KEY
Always ask which processor to use: core, core2x, pro, ultra
Design an output schema matching the data points needed for ICP scoring. Example:
{
"company_website": {"type": "string"},
"linkedin_company_url": {"type": "string"},
"estimated_revenue": {"type": "string"},
"employee_count": {"type": "integer"},
"industry": {"type": "string"},
"founded_year": {"type": "integer"},
"tech_stack_indicators": {"type": "array", "items": {"type": "string"}}
}
Always include company_website and linkedin_company_url in the schema.
Check latest docs via context7 (libraryName: parallel-web).
SimilarWeb via Apify
Actor: curious_coder/similarweb-scraper
Env var: APIFY_API_KEY
Input: list of domains Output: monthly visits, traffic sources, bounce rate, pages per visit
Output
Write to csv/intermediate/companies_enriched.csv. Preserve all original columns, add enrichment columns.
Phase 2: ICP Scoring
How It Works
- Read company rows (status=new, or all unscored)
- Load ICP definition from
context/icp.md - LLM scores each company →
icp_score(0–100) +icp_rationale - Write score back to CSV
- Process in batches (~10–20 companies per loop)
LLM: Ask the user which model to use (any LLM with structured output / JSON mode works).
Input Fields Used for Scoring
From the enriched company data:
- name, industry, description, employee count, location, website, LinkedIn URL
- Revenue (min/max), department headcounts (engineering, sales, ops, IT, BD, marketing)
- Growth metrics (6m, 1y, 2y), median tenure, year founded
ICP Scoring Prompt
The LLM receives each company row + the ICP definition and returns a structured score.
Output schema per company:
{
"icp_score": 85,
"icp_rationale": "DACH-based B2B SaaS company in target revenue range. Experiencing rapid growth with lean tech team, indicating clear need for external automation support rather than in-house development."
}
Per-Client Customization
- ICP doc: Maintain
context/icp.mdwith the client's ICP definition — industry, size, location, revenue, tech profile, exclusions - Score threshold: Adjust the gate based on selectivity (default: ≥70). The gate is optional — useful for credit savings on downstream steps, not a hard requirement.
Optional Gate for Next Step (Signal Search)
To save credits on downstream signal-search, gate by:
icp_score >= 70websitenot emptytypein [Startup, Scaleup] (if type field available)
Skip the gate if you want to score signals on the full enriched set.
Output
Write to csv/intermediate/companies_scored.csv with added columns:
icp_score, icp_rationale, scoring_status
All original + enrichment columns preserved.
Full Output
Updated CSV with all columns:
company_name, company_domain, company_linkedin_url,
company_industry, company_hq_location, company_hq_country,
company_employee_count, company_employee_range,
revenue_range, growth_6m, growth_1y, growth_2y,
headcount_engineering, headcount_sales, headcount_operations, headcount_IT,
icp_score, icp_rationale, enrichment_source
What's Missing (To Document)
- Pipe0 company data pipe: test and document endpoint
- Parallel Task Group for company enrichment: test with specific output schema
- SimilarWeb via Apify: document the full actor setup and output field mapping
- LLM API integration patterns for standalone ICP scoring (outside orchestration platforms)