agentsclimarketplace

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

Install
npx -y skills add vivekkhimani/gtm-tools-template --skill gtm-company-enrichment

Assembled 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

InputRequiredSource
Company CSVYesCompany Search output or user-provided
ICP definitionYescontext/icp.md or user prompt

Two Phases

Phase 1: Data Enrichment

Add structured company data. Choose provider based on what's available:

ProviderData PointsInput neededCostNotes
PB SN ScraperFull SN profile: headcount by dept, growth metrics, revenue range, industry, locationSN company URLFree (SN account)Most comprehensive
Parallel Task GroupCustom fields via web researchCompany name + domain~$0.025–0.05/rowFlexible output schema. Ask which processor
SimilarWeb via ApifyMonthly traffic, traffic sourcesDomainApify creditsActor: curious_coder/similarweb-scraper
FirecrawlWebsite content, tech stack signalsDomainFirecrawl creditsScrape + extract
SerpAPIDomain from company nameCompany nameSerpAPI creditsGoogle search → extract domain
Pipe0 company dataTBD — not yet testedDomainTBDCheck 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

  1. Read company rows (status=new, or all unscored)
  2. Load ICP definition from context/icp.md
  3. LLM scores each company → icp_score (0–100) + icp_rationale
  4. Write score back to CSV
  5. 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.md with 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 >= 70
  • website not empty
  • type in [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)

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.