agentsclimarketplace

Anysite crm lookalikes

Skill anysiteio/agent-skills/skills/anysite-crm-lookalikes

Derive the actual ICP from the CRM's closed-won/best customers and find lookalike companies with anysite bulk search (LinkedIn company DB, Crunchbase filters), scored and deduplicated against the CRM. Use when the user asks to find companies like their best customers, expand the target list, derive their real ICP from data, or seed a prospecting campaign. Requires an active CRM connection with some won/customer records.From its SKILL.md

Install
npx -y skills add anysiteio/agent-skills --skill anysite-crm-lookalikes

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

  • 19 stars19 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.

SKILL.md

4.4 KB, as published. Nobody here has run it

CRM Lookalikes

Your real ICP is written in your closed-won list, not in your pitch deck. Extract the pattern, then search 70M+ companies for more of it.

Works for PEOPLE too, not only companies: search_sql_users has a lookalike graph — similar_to: [<best customer contact aliases>] (tight) / also_viewed (loose) plus normal filters. Same discipline: the user confirms the seed set, candidates get scored.

Flow

1. Collect the seed set

crm_query_records(object_type="companies", list_id=<customers list> | search=...,
                  properties=[record_id, name, domain, industry, <size/stage if mapped>])

Need the user's help to identify "best": a customers list, a lifecycle/status field, or an explicit pick of 10–30 names. Fewer than ~8 seeds → warn that the pattern will be weak.

2. Profile the seeds

Resolve each seed to structured firmographics — exact verification is mandatory on every resolve (the website search is substring match and can return only look-alike domains; a wrong seed poisons the whole ICP pattern downstream):

execute linkedin/search/search_sql_companies {website: "seed1.com", count: 5}   # per seed
# batched variant allowed, but: any seed without an exact match must be re-queried
# individually. query_cache filters the WHOLE cached set; `limit` (default 10) caps only
# how many rows come back — pass one when a batch should return more than 10 matches.
query_cache {conditions: [{"field": "website", "op": "=", "value": "seed1.com"}], limit: 50}

A seed with no exact website match is NOT dropped yet — resolve it via the site itself (webparser/parse {url, extract_minimal: true} → top-level title + own linkedin.com/company URL in links[] → linkedin/company), or via crunchbase → contacts.linkedin_url. Only a seed that survives neither is excluded from profiling, and say which ones. Plus crunchbase/company for stage/funding on a subset (venture-relevant seeds only). Derive the pattern in-session and SHOW it:

Industries: X (60%), Y (25%) · Size: 11-200 dominant · Geo: US+UK 80%
Stage: seed-B · Common traits: has API docs page, hiring in data roles, ...

Build the size band from employee_count, never from employee_count_range — the two can contradict each other in one record (verified: employee_count: 1465 with employee_count_range: "201-500"), and a wrong band here propagates into every search below. Bucket the exact counts yourself.

The user confirms/edits the pattern — it's their ICP, the data only proposes it.

3. Search for lookalikes

  • execute linkedin/search/search_sql_companies — industry_name/keywords DSL from the pattern, employee_count band, country filter, count up to 1000.
  • execute crunchbase/db/db_search — when stage matters (last_funding_type, last_funding_date_after); crunchbase/search live for hiring: true or shares_investors_with: [<seed investors>] (a strong hidden-similarity filter).
  • Niche supplements per pattern: yc/search/search_companies (early-stage), builtin (US tech hubs), producthunt (product-led).

Search wide, profile narrow: the searches themselves are cheap even at count 1000, but do NOT enrich every candidate — score on the fields the search already returned, and fetch extra evidence (crunchbase lookups etc.) only for the top ~50. State the credit estimate before any per-candidate enrichment.

4. Score and dedup

Score candidates against the confirmed pattern (same rubric discipline as anysite-crm-score — weighted criteria, evidence per company, no guessed values). Dedup against the CRM by domain (crm_query_records) — existing accounts drop out or get flagged "already in CRM, unworked".

5. Hand off

Output: top-N table (name, domain, why-it-matches, score) + the confirmed ICP pattern for reuse. Pushing to CRM → anysite-crm-prospect (its dedup/create/working-list rules apply); finding people at these companies → same skill. This skill itself writes nothing.

Keep looking

Skills are one crate of 627,801. 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.