Systems Lab

Agent skill

gtmos-leads-icp-lookalikes

Build a target account list from the customers you already win with: enrich the seeds, find similar companies, drop what fails the ICP or is already in the CRM, and rank the rest.

activeReaches the webInstructions only1,035 words

Filed under Prospecting and list building.

From ay-automate/gtmos-skills · 107 skill entries · 0 · pushed 2026-11-02

What it does when it runs

Build a target account list from the customers you already win with: enrich the seeds, find similar companies, drop what fails the ICP or is already in the CRM, and rank the rest. With GTM OS connected it takes seeds from won deals, quotes and runs find.lookalikes and enrich.company through the governed broker, dedupes against existing accounts, and ranks with the Score engine's signed ICP-fit model instead of a hand-made score. Use for \"find companies like our top customers\", \"lookalike accounts\", \"build an ICP list from these seeds\", \"expand my account list\".

Automated analysis of the skill and the 0 files bundled beside it. A skill’s own description is written to be selected by an agent, so it describes the job and not the dependencies.

Keys and connectors you must supply
None found.
Hosts it reaches
  • api.looot.ai
Tool permissions it declares
No allowed-tools in the frontmatter. It only issues instructions, so there is nothing to bound.
Actions present in the files
None. Instructions only.

Ask about gtmos-leads-icp-lookalikes

Opens your assistant with this page's recorded context. Check the linked sources before relying on it.

Is this safe to install?ClaudeChatGPT
Adapt it to my stackClaudeChatGPT
What else do I need for it to workClaudeChatGPT
Rather ask a human? Talk to Cheetah
git clone --depth 1 --filter=blob:none --sparse https://github.com/ay-automate/gtmos-skills.git /tmp/gtmos-skills
git -C /tmp/gtmos-skills sparse-checkout set "skills/gtmos-leads-icp-lookalikes"
mkdir -p ~/.claude/skills/gtmos-leads-icp-lookalikes
cp -R "/tmp/gtmos-skills/skills/gtmos-leads-icp-lookalikes/." ~/.claude/skills/gtmos-leads-icp-lookalikes/

Picked up without a restart. A project skill of the same name is shadowed by your personal one. For one repository only, swap ~/.claude/skills for .claude/skills. Claude Code docs ↗

Or take the whole library

This repo ships a .claude-plugin manifest, so Claude Code can install all 107 skills at once. Plugin skills are invoked as /<plugin>:<skill>, so they never collide with your own.

/plugin marketplace add ay-automate/gtmos-skills
/plugin

The folder is the same in every client that implements the format — 46 of them — so if yours is not above, only the destination changes.

Reproduced in full from ay-automate/gtmos-skills/blob/86780d2f545cdc0a1de971917aa04b41bb0b3ccd/skills/gtmos-leads-icp-lookalikes/SKILL.md, which is licensed MIT (skill frontmatter). 1,035 words, 10 headings.

ICP list from lookalikes

Part of GTM OS Skills. Adapted from gtm-icp-lookalike-list in loootai/gtm-skills (MIT, Copyright (c) 2026 looot). Changed for GTM OS: the operating section below (seeds from won customers, quoted acquisition, scoring by the signed ICP model), rewritten cross-references. Notices: THIRD-PARTY-NOTICES.md (installed beside the skills as THIRD-PARTY-NOTICES.md).

With GTM OS connected

Rules (GTMOS-RULES.md). Read policy.get_dry_mode first; in dry mode every effect stops at a draft. E-class operations are proposed and a different person approves them; never approve your own proposal. Numbers come only from operation results, named with the operation. Claims about results, customers or metrics must be backed by active proof from proof.list.

Spend. Quote first (capability.quote, or estimate: true), show the user the total, and run only after a yes that covers exactly that run; pass the quoted amount as the run's cap. The operations marked spends inline below are never granted to GTM OS pack agents: a person runs them, or you quote and hand the run over.

1. Seeds and filters from the org. Best customers come from won deals (records.list {objectType: "gtm.deal", ...} filtered to won, or money.revenue {groupBy: "account"} Q for the accounts that pay most), not from logos the user admires. Hard filters come from definition.segment, definition.customer_type and the ICP-fit model (config.get {kind: "definition.scoring_model", key: "icp_fit"}), and definition.suppression_rule lists who never goes on a list.

2. Quote, then find. capability.quote {capability: "find.lookalikes", args: {domain}} per seed and capability.quote {capability: "enrich.company", ...} per candidate give the total. Show it; on a yes run capability.acquire (spends inline) with an idempotencyKey per seed. A proposal instead of data means a ceiling or budget was hit: report the approval id.

3. Drop before you pay. Merge candidates, drop the seeds, existing accounts (records.search by domain) and anything failing a hard filter before enriching, exactly as the method says.

4. Create and score. Create the kept candidates with canon.edit_many {objectType: "gtm.account", items: [{values}]} D (identity resolution matches existing accounts; from an agent key the creates are proposed for a person to approve), fill firmographics with enrichment.enrich_accounts {ids, estimate: true} then a run on a yes (spends inline), and score them with score.score_account. Rank with score.list_ranked {subjectType: "gtm.account"} and quote the engine's band and reasons (score.explain_subject) as the "why" column. Keep the upstream point system only as the "similar to" evidence; the org's signed model is the score.

Without GTM OS

Run the workflow below on looot directly: connect the looot MCP server (https://api.looot.ai/mcp) or use the looot skill in this repository. Searching and inspecting are free; runs are paid from the prepaid looot balance. Show the user the endpoint and its price, and run only after a yes.


The method below is looot's gtm-icp-lookalike-list workflow. Job ids are looot's; prices are the cheapest live provider in the public looot catalog on 2026-10-08 and the live price wins. With GTM OS connected, run the same steps through the operations above.

Starts from 1 to 5 seed companies the user already wins with, finds similar companies, enriches every candidate and scores it against a profile built from the seeds. The output is a ranked account list with the reason each account is on it.

Ask for these inputs

  • 1 to 5 seed domains (best customers, not logos they admire).
  • How many accounts they want (default 50).
  • Hard filters: countries, employee range, industries to exclude, existing customers to drop (a CSV or a list of domains).

Steps and prices

Prices are the cheapest live provider in the public looot catalog on 2026-10-08. The provider looot routes to can cost more; inspect shows the live price.

#Job idInputPrice on 2026-10-08
1company.enricheach seed domainfrom $0.0019 per call
2company.similareach seed domainfrom $0.0089 per call or $0.0019 per result
3company.search (optional)filters built from step 1 (industry, size, country)from $0.0089 per call or $0.00036 per result
4company.enricheach candidate domainfrom $0.0019 per call

Expected total for 50 accounts: about $0.05 for the seeds, $0.10 to $0.40 for similar-company searches, $0.10 for enrichment. Under $1 with the cheapest providers.

Quote before you run

  1. Work out the number of runs: seeds × 2, plus one enrichment per candidate. Multiply by the prices above or by costPerSuccessUsd from search_catalog.
  2. Tell the user the total and the balance, then wait for a yes. More than 100 runs: wait for an explicit yes.
  3. Cap each run with fallback.maxCostUsd (0.05 is enough for every step here).

Run it

run {"endpointId": "job:company.similar", "input": {"domain": "stripe.com"}, "idempotencyKey": "icp-<list>-similar-stripe.com", "fallback": {"maxAttempts": 3, "maxCostUsd": 0.05}}

Inspect company.similar and company.search once before the first run: some providers take a domain, others a name or filter fields, and live input names win over this file.

Then:

  1. Build the profile from the seeds: shared industry, employee range, country, business model (B2B or B2C), and any tech that all seeds share.
  2. Merge candidates from all seeds, drop duplicates by domain, drop the seeds, existing customers and anything failing a hard filter. Do this before step 4 so you do not pay to enrich accounts you will drop.
  3. Enrich what is left, then score: +2 same industry, +2 employee range within the seeds' range, +1 same country, +1 named by two or more seeds' similar lists. Keep the top N.

Output format

A CSV the user can import, plus a short summary:

rank,domain,name,industry,employees,country,score,why,similar_to
1,example.com,Example Inc,Fintech,180,US,6,"same industry, size in range, similar to 2 seeds","stripe.com;adyen.com"

Summary lines: seeds used, candidates found, dropped by filter (with counts per reason), kept, total actualCost.

Cost and stop rules

  • Never enrich a candidate twice. Keep a map of domain to result for the whole session.
  • Two failures on a step: stop that step and report it.
  • Report actualCost per step and in total.

When not to use this skill

  • The user already has a list and wants to filter it by tools they use: gtmos-leads-tech-stack.
  • One company: gtmos-research-account.

Other skills for the same job

Different authors, same problem. Matched on the words in the skill name, across every library in the catalogue except this one.

Need help setting it up?

This page tells you what gtmos-leads-icp-lookalikes does and what it needs. Cheetah builds the agent setup it runs inside: data, CRM, sequencing and the guardrails.

Book a call →

The directory stays free. There is nothing gated behind this.

Build my GTM engine

Tell us what you want to improve. Fedor reviews the workflow and replies by email when there is a useful fit.

Fedor reviews every request personally. If there is a useful fit, he will reply by email.