00-gtm-router
Plan and run the full API-first GTM chain - the orchestrator (step 00) that turns an ICP description plus optional budget, volume, and urgency into the right…
Seed-based B2B company discovery via the Prospeo company-lookalike API. Use when the user has example companies and wants more like them - "find companies similar to X", "companies like Stripe and HubSpot", "lookalikes of these domains", "we closed these 20 logos, find more",
$ npx -y skills add Zevenue/headless-gtm --skill 01-prospeo-lookalike --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/01-prospeo-lookalikeContext preview
The summary Claude sees to decide when to auto-load this skill.
Seed-based B2B company discovery via the Prospeo company-lookalike API. Use when the user has example companies and wants more like them - "find companies similar to X", "companies like Stripe and HubSpot", "lookalikes of these domains", "we closed these 20 logos, find more",
name: 01-prospeo-lookalike description: > Seed-based B2B company discovery via the Prospeo company-lookalike API. Use when the user has example companies and wants more like them - "find companies similar to X", "companies like Stripe and HubSpot", "lookalikes of these domains", "we closed these 20 logos, find more", "expand this seed list", or hands over closed-won accounts / a competitor / a customer list and wants similar firmographic matches. Turns seed domains or an ICP description into a ranked list of similar companies, and can also hand a pattern-built ICP to prospeo-discover for a broader search.
Turn seed companies (domains, an ICP description, or "similar to X") into similar companies via Prospeo's `company_lookalike` filter (33-filter, 30M+ company database). Two ways to finish:
tier. The lookalike filter runs *alone* - no ICP stacking - so you get a full list, not single digits.
it to [`01-prospeo-discover`](../01-prospeo-discover/SKILL.md) for a broad firmographic search.
Discovery (skill 01) deliberately treats lookalike as a throwaway pattern-finder and drops it before its real search. This skill is the opposite - here the lookalike matches are a first-class deliverable.
1. Collect the seed(s) - domains, named companies, or an ICP paragraph - and pick the mode. 2. Resolve seeds to what the API needs (domain string, company IDs, or `icp_text`). 3. Run the lookalike search, present the ranked matches with the similarity tier. 4. Offer the next step: export the list (Mode 1) or build an ICP and route to discovery (Mode 2).
Credits are real money: each search page costs 1 credit; account and suggestion calls are free. Guard spend, especially on export.
Auth reads from environment variables. Nothing is hardcoded.
Only needed when exporting.
The curl examples use `$PROSPEO_API_KEY` as the key. **A `.env` file is not visible to curl** - load it into the shell first, in the same command as the call, or curl sends an empty `X-KEY` header and the API returns a confusing auth error instead of a missing-key one:
set -a; [ -f .env ] && . ./.env; set +a curl -s -H "X-KEY: $PROSPEO_API_KEY" https://api.prospeo.io/account-information
Check `$PROSPEO_API_KEY` is non-empty before the first paid call. The Python scripts under `scripts/` read `.env` themselves and need no such prelude.
Base URL: https://api.prospeo.io Auth header: X-KEY: $PROSPEO_API_KEY Content-Type: application/json
Three endpoints:
The one body-shape rule that breaks searches when you get it wrong: filters go inside a `"filters": {}` wrapper, and `"page"` is a sibling of `"filters"`, not inside it.
curl -s -X POST "https://api.prospeo.io/search-company" \
-H "X-KEY: $PROSPEO_API_KEY" -H "Content-Type: application/json" \
-d '{"filters": {"company_lookalike": { ... }}, "page": 1}'Full curl formats, the search-suggestions key table, and the formats to avoid live in `references/api-curl.md` - read it before resolving values for the first time in a session.
Do this silently before prompting the user. Don't narrate it or show step numbers.
**Plan and credits.** Call `GET /account-information` and read `current_plan` and `remaining_credits` from the `response` object. Store them.
**Lookalike needs Starter or higher.** `company_lookalike` is filter #22, gated to **Starter+** (see `references/plan-filter-map.md`). On the **Free** plan it is unavailable - if the account is Free, say so up front and stop, rather than assembling a search that will fail:
> Lookalike needs a Starter plan or higher; this account is on Free. I can still build a list from an ICP > description with `01-prospeo-discover` instead.
If `remaining_credits` is under 10, tell the user their balance and that each page costs 1 credit before spending anything.
**Enum cache.** Read `references/prospeo-enums.json` and check `last_updated`. If it's missing or older than 21 days, refresh it with `references/enum-refresh.md`; otherwise use the cached values. You only need enums when the user layers ICP constraints (industry, size, etc.) onto the lookalike or when you build the Mode 2 ICP. Technologies (4,946) and locations resolve at runtime via `search-suggestions`.
Then present a clean prompt and wait for input.
Prospeo Lookalike ready.
Plan: {plan} | Credits: {credits}
Give me the seed companies you want to find matches for - domains, names, or a short
description of the ideal company.The lookalike filter takes exactly ONE mode per call. Pick by what the user gave you:
| What the user gave | Mode | How to build it | |---|---|---| | One domain ("similar to hubspot.com") | **domain** | `{"domain": "hubspot.com"}` - no lookup needed | | Multiple domains / named companies | **company_oids** | Resolve each to a Prospeo company ID first, then `{"company_oids": [...]}` | | A paragraph describing the ideal company | **icp_text** | `{"icp_text": "..."}` (max 5,000 chars) - no lookup needed |
**Resolving multiple domains to company IDs** (1 credit each): search `company.websites.include` for each domain, read the company ID off the result, collect the IDs. Full detail and the exact response field
GTM without the SaaS layer. An outbound pipeline built as agent skills for Claude Code and Codex: describe an ICP in plain English and the chain takes it from company discovery to verified, signal-ranked contacts - every step running on raw vendor APIs, not
Plan and run the full API-first GTM chain - the orchestrator (step 00) that turns an ICP description plus optional budget, volume, and urgency into the right…
The qualification gate of the GTM chain - judges every discovered company against the client's ICP before any paid enrichment, so credits are spent only on…
B2B company discovery and list building via the Prospeo search API. Use when the user wants to find companies from an ICP, build a prospect or TAM list, search…
Find local-business (SMB) prospects via Google Maps using the Apify Compass actor. Use for Zevenue Step-2 Discovery (Vertical) when the ICP is Maps-addressable…
Scrapes a company website into clean, page-typed markdown using Firecrawl map + scrape + extract. Triggers on: "scrape this company", "read their website",…
Enriches company domains with structured signals from CrustData - funding rounds, headcount growth, department growth, and recent hires. Use when the user…