mirror of
https://github.com/getcargohq/cargo-skills.git
synced 2026-09-14 19:17:15 +08:00
bf23619313
* Stop documenting the first-party enrichment provider
Its playbook, its 21 priced actions, and every recipe step that led with it
are removed. Each one now leads with the rung the pack already named as its
fallback, so nothing here is invented — the replacements were sitting in
stage-action-map.md and alternatives.md the whole time.
The substitutions:
firmographics aiArk.enrichCompany (0.01) -> companyEnrich (0.25) -> waterfall (1)
person aiArk.enrichPerson (0.1) -> waterfall.enrichContact (2)
funding enrichCrm.getFunding (1), now the catalog's only one
technographics builtwith.getDomainSummary (free) -> enrichDomain (1)
dedupe free storage query against the workspace's own models
That last line is the one worth reading twice. The match actions existed to
mint an id the other actions required; every replacement keys on the domain
or a LinkedIn URL, so a step that cost 0.5/record now costs nothing.
The event feed has no replacement and the recipes say so. fetchBusinessEvents
took a timestamp_from and nothing else in the catalog does, so funding-watch,
re-engagement and lost-deal-revival are rewritten as a diff: re-pull, compare
against the stored round date, keep what moved. Cadence becomes the only cost
dial, which is why funding-watch's default drops from daily to weekly.
Every credit budget was recomputed rather than relabelled:
build-tam 2,955 -> 2,210 (500 companies + 1,500 contacts)
prospecting P2 821 -> 107 (200 verified prospects)
icp-discovery 602 -> 204 (200 deals)
context bootstrap 3 -> 1
Catalog counts now follow the generated data file rather than the older
hand-kept figure: 136 integrations, 176 credits-based actions of 513.
Also bumps the CLI pin 1.0.66 -> 1.0.78.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019wkwbhrEoE5KW9A1CKBmcA
* Fix the three generated artifacts the removal invalidated
CI caught what the local lint could not: skills-lint.mjs is only one of five
checks, and the other four all had something to say.
llms.txt was stale — it is generated from the skill descriptions, and
cargo-gtm's dropped a provider from its roster.
The codex package build enforces override version == upstream version, so
bumping only .github/package-overrides/cargo-quickstart.SKILL.md to 1.0.3 broke
it. The guard exists to stop the override silently shipping last month's demo,
so the fix is to bump both, not to revert the override.
That build also patches literal source strings at package time, and one anchor
ran through a line this branch rewrote:
snitcher.searchSessions (0 cred) -> cargo.matchProspect
snitcher.searchSessions (0 cred) -> aiArk.reverseLookup (0.05)
The edit strips the visitor-de-anonymisation path from the packaged skill, so a
silent miss would have shipped it. Re-anchored, and every other PACKAGE_EDITS
find string verified against the tree — 1 broken, now 0.
Also drops the packaged cargo-connection description from 138 integrations to
136, matching the repo.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019wkwbhrEoE5KW9A1CKBmcA
* Say where revenue went, and that employee ratings went nowhere
Removing the provider took two data points off the map without replacing the
map entry, which is the failure mode this recipe's own feasibility gate exists
to prevent: an attribute that quietly stops being answerable reads the same as
one nobody asked for.
They are not the same case, so they get different rows.
Revenue and NAICS survive. companyEnrich.enrichByDomain (0.25) returns them in
the same call as firmographics, employees, funding and socials — so it fills
several rows at once and the row says that, because the per-account arithmetic
in step 4 gets it wrong otherwise.
Employee ratings have no successor at any price. Nothing credits-based in the
catalog returns Glassdoor-style employer reputation. The row says none, and
says to report it as a research note rather than substituting a scrape that
reads like the real thing — which is the recipe's stated position on valuable
attributes with no obtainable source, applied to itself.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019wkwbhrEoE5KW9A1CKBmcA
* Fix the data-flow breaks the provider swap left behind
Bugbot found eight, all real, and verifying them turned up five more. The
pattern in every case is the same: I replaced an action but left the code that
consumed its output reading the old response shape, so the step still runs,
still bills, and quietly returns nothing.
Response-shape breaks:
funding-watch Pattern A still filtered funding_rounds[].announced_date
while Pattern B read lastFundingDate. The 90-day select
matched nothing, so the primary path returned an empty
list after a paid pull.
re-engagement Step 5 read .results[] and .events[] from a file step 3
now writes as a bare array. Funding branch always empty.
lost-deal-revival Step 4 read .events[0] and expected a deal_id that
getFunding does not return. Step 3b now carries deal_id
through, which is the only place it exists.
Wrong-source breaks:
re-engagement The diff read last_funding_round_at off the Contacts
segment. It is a Companies column, so the stored date was
always empty and every account re-flagged every week. Now
queries the Companies model, and fans the company-level
signal back out to contacts, since step 5 unions on email.
build-tam Step 4 keyed searchLeads on .linkedinId from the
aiArk.enrichCompany output. No enrichment action returns a
Sales Navigator accountId. Now carried from the sourcing
step, with an explicit gate for rows that have none.
guide snitcher.searchSessions identifies a COMPANY; I had
chained it into aiArk.reverseLookup, which needs an email
or phone. Its own playbook says to route identified
domains through the enrich chain.
Budget break:
prospecting P2 step 5 ran FullEnrich over every lead while the budget
quoted the residue. 200 credits against 60. P1 had the
gate; P2 did not.
Pre-existing, fixed because the fixes above sit inside them:
icp-discovery [.[] | {domain}] over storage query execute output, which
is {rows: [...]}. Enriched one null domain, not 200.
jq inputs[N] `inputs` is a generator, not an array, so the union
expressions in re-engagement and lost-deal-revival errored
out. Slurped to [inputs] as $in.
Every rewritten jq expression was run against fixtures rather than eyeballed.
Also five provider mentions the sweep missed, because they wrote it as bare
`cargo` with a price rather than cargo.actionName: societeInfo, snitcher,
enrichCrm, linkedin, oceanio, apolloio, rocketreach.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019wkwbhrEoE5KW9A1CKBmcA
* Make funding-watch Pattern B stand on its own
It re-pulled two hardcoded example domains and then diffed them against
/tmp/targets.json, a Pattern A artifact. Run Pattern B alone and the slurp
fails; run both and it compares a fresh pull of one set against stored dates
for a different set, so the "new round" filter cannot fire correctly either way.
Both sides of a diff have to come from the same query. Now they do: one storage
read supplies the domains to pull *and* the stored dates to compare against, so
the sets align by construction and the pattern has no cross-dependency.
Also states what a missing stored date means — it compares against "" and always
passes, which is right on a first run and is exactly why the write-back step is
not optional. Without it every run is a first run and the watch re-flags the
whole segment forever.
Verified against fixtures: an account whose round moved is kept, one whose
stored date already matches is dropped, one with no stored date passes.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019wkwbhrEoE5KW9A1CKBmcA
* Route the questions people ask but the map never answered (#124)
Measured instead of guessed. Of the 176 credits-based actions, 148 were
reachable from a routing surface — the stage map, the phase guides,
alternatives.md, a recipe. The other 28 were reachable only from their own
provider playbook, which is findable if you already know which provider to
open. That is the wrong way round.
The worst of it: headcount had no section at all. It is the most-asked company
attribute and the first row of the custom-datapoints feasibility gate, and not
one of the four salesNavigator.find* actions appeared anywhere in the stage map.
New section carries all four, plus the only historical series
(companyEnrich.getWorkforce), plus linkedin.findCustomHeadcount for the roles
the fixed buckets don't have, plus the companyId prerequisite that quietly
turns a 0.25 action into 0.30 on a list that arrived without one.
"Who works at this domain" was not a documented question either. It is not the
same as searching a population by title, and it has two answers at very
different prices. New section, with the trap stated: looping hunter.searchDomain
to build a list is the pitfall its own playbook warns about.
Also adds rocketreach, mixrank and societeInfo to Enrich/Sourcing —
societeInfo reaches French registry data (NAF code, collective agreement,
filed accounts) that nothing else in the catalog does — and gives Hiring intent
a second index at the same price.
154/176 now. The remaining 22 stay unrouted on purpose, and the CHANGELOG says
why for each: the four LinkedIn engagement actions would undercut the
acceptable-use refusal to batch-blast them, three natives belong to other
skills, searchLeadsLegacy costs 300x its replacement, and the rest are finer
grain on an already-routed surface rather than separate questions.
One thing the build caught: adding aiArk.analyzePersonality re-introduced a
term the codex package deliberately strips, since the directory rejected
person-level inference. Kept for the channels that carry it, with matching
PACKAGE_EDITS so the package still removes it. Dropped the forager rung rather
than add machinery for a last-resort action priced 20x above its own chain.
All 67 anchors verified.
Claude-Session: https://claude.ai/code/session_019wkwbhrEoE5KW9A1CKBmcA
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
146 lines
35 KiB
Plaintext
146 lines
35 KiB
Plaintext
# Cargo Agent Skills
|
||
|
||
> 19 agent skills that teach AI coding agents the Cargo CLI — sourcing, enrichment, verification, signal monitoring, workflow orchestration, workspace-as-code (CDK), diagnostics, and billing for GTM automation on [Cargo](https://getcargo.ai).
|
||
|
||
## Install
|
||
|
||
Paste into Claude Code, Codex, or Cursor:
|
||
|
||
```
|
||
Install Cargo by following every step in https://api.getcargo.io/agent-install.txt
|
||
```
|
||
|
||
Or manually:
|
||
|
||
```bash
|
||
npx skills add getcargohq/cargo-skills
|
||
npm install -g @cargo-ai/cli
|
||
cargo-ai login --email you@company.com # emailed code, no browser; creates the account on first use
|
||
```
|
||
|
||
A new account starts with **100 free credits, no card** — roughly 5,000 leads sourced or 1,000 verified-email enrichments. The two-minute quickstart demo spends about 0.5 of them, so an agent can install, sign the user up, and return a real deliverable in one turn.
|
||
|
||
## Skills
|
||
|
||
- [cargo](https://github.com/getcargohq/cargo-skills/blob/main/cargo/SKILL.md): Router for the Cargo CLI skill bundle — load first for anything Cargo, and whenever a task spans two Cargo domains. Explains what each skill owns, declarative workspace-as-code (cargo-cdk) vs the imperative CLI, the UUID and slug flow between skills, async polling of runs and batches, end-to-end use cases, and the gotchas that fail silently (`conjonction` spelling, run vs batch, model-uuid vs segment-uuid). Triggers: \"set up Cargo\", \"what can Cargo do\", \"which Cargo skill\", \"bootstrap my workspace\", \"I have a Cargo account\", \"cargo-ai …\", or any `cargo-ai` command whose domain you are unsure of. Skip when: the task obviously belongs to one skill — load that skill directly.
|
||
- [cargo-quickstart](https://github.com/getcargohq/cargo-skills/blob/main/cargo-quickstart/SKILL.md): Guided first-run demo for Cargo — one persona question to 25 real leads with a cost receipt in under two minutes, ending by saving the pull as a recurring play. Triggers: \"show me what Cargo can do\", \"give me a demo\", \"take me on a tour\", \"quickstart\", \"getting started with Cargo\", \"I just installed Cargo\", \"my workspace is empty\", \"does this actually work\". Skip when: the user has a real job to run (build a list, enrich a CSV, find emails) — use cargo-gtm; when they want CLI reference or routing — use the cargo router skill.
|
||
- [cargo-gtm](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/SKILL.md): Do business-to-business go-to-market work on Cargo — research accounts and buying committees, enrich and verify B2B contact records from licensed data providers, score and qualify leads, draft permission-based outreach for the user's own sequencer, sync to CRM, and monitor buying signals. Consent basis, suppression lists, and volume limits gate every step that touches a person (`references/acceptable-use.md`); bulk unsolicited messaging, purchased or scraped lists, and consumer targeting are refused. Triggers: \"build me a list of\", \"find 50 <title> at <segment>\", \"who works at\", \"find work emails for these accounts\", \"enrich this CSV\", \"verify these emails\", \"build a TAM\", \"who fits our ICP\", \"who actually buys from us\", \"what data points should we collect on accounts\", \"our outbound is reaching the wrong people\", \"score these leads\", \"write a first-touch email\", \"push these to my CRM\", \"who changed jobs\", \"who just raised funding\", \"companies using <tech>\", \"who is hiring <role>\", \"find the buying committee\", \"portfolio companies of <investor>\", \"upload this audience to Google/Meta/LinkedIn ads\". Providers: aiArk, anthropic, apolloio, bouncer, brightData, builtwith, cleon1, companyEnrich, contactOut, datagma, dropcontact, enrichCrm, enrichley, enrowio, exa, findyMail, firecrawl, forager, FullEnrich, g2, gemini, hunter, icypeas, kitt, leadMagic, linkedin, linkup, mixrank, neverBounce, oceanio, openAi, parallel, peopleDataLabs, perplexity, piloterr, prospeo, proxycurl, reverseContact, rocketreach, salesNavigator, serper, sillage, snitcher, societeInfo, theirStack, theSwarm, waterfall, x, zeroBounce. Reads phase guides, recipes, and per-provider playbooks before any paid call. Skip when: a run already happened and misbehaved — use cargo-diagnostics.
|
||
- [cargo-ai](https://github.com/getcargohq/cargo-skills/blob/main/cargo-ai/SKILL.md): Build and configure AI agents inside Cargo — create an agent, choose its model and temperature, write its prompt, attach knowledge for retrieval (RAG), connect MCP tool servers, manage memories, and deploy releases. Triggers: \"create an agent\", \"make an agent that\", \"give the agent our docs\", \"attach this knowledge base\", \"attach this library to the agent\", \"add resources to the agent release\", \"connect an MCP server\", \"expose our tools as an MCP server\", \"use Cargo from Claude Desktop or ChatGPT\", \"change the agent model\", \"what does the agent remember\", \"deploy the agent\", \"the agent is answering wrong\". Skip when: uploading the knowledge files themselves — use cargo-content; sending the agent a message or running it over records — use cargo-orchestration.
|
||
- [cargo-analytics](https://github.com/getcargohq/cargo-skills/blob/main/cargo-analytics/SKILL.md): Get data out of Cargo and measure what ran — download a run output, export a segment or model to CSV or JSON, and pull run and batch success and error counts. Triggers: \"download the results\", \"export this to CSV\", \"give me the file\", \"how many succeeded\", \"what is my error rate\", \"send me the enriched list\", \"get the output of that run\", \"how many records did it write\". Skip when: asking why something failed or where credits went — use cargo-diagnostics; asking about credits, plans, or invoices — use cargo-billing.
|
||
- [cargo-billing](https://github.com/getcargohq/cargo-skills/blob/main/cargo-billing/SKILL.md): Understand what Cargo is costing — remaining credits, usage broken down by workflow, connector, or agent, subscription state, and invoice history. Triggers: \"how many credits do I have left\", \"what did that cost\", \"why is my bill so high\", \"am I about to run out\", \"will this fit in our budget\", \"show me my invoices\", \"how much have I spent this month\", \"what plan am I on\", \"what do I get for free\", \"how many free credits\", \"can I afford this run\", \"add a card\", \"update my payment method\", \"why was my card declined\". Needs a token with admin access. Skip when: attributing spend to specific nodes or cutting a play cost — use cargo-diagnostics.
|
||
- [cargo-cdk](https://github.com/getcargohq/cargo-skills/blob/main/cargo-cdk/SKILL.md): Manage a whole Cargo workspace as code — declare connectors, models, plays, tools, agents, MCP servers, segments, context, folders, files, workers, and apps in TypeScript, then reconcile them with `cargo-ai cdk` (init → types → plan → deploy), the way you would run Pulumi or the AWS CDK. Triggers: \"as code\", \"in git\", \"version-controlled\", \"reproducible\", \"Terraform for Cargo\", \"set up a whole workspace\", \"staging and production\", \"deploy from CI\", \"review this in a PR\", \"cargo.state.json\", \"scaffold from a template\", \"is there a cookbook for this\", \"start from a cookbook\". Skills with a CDK example (TAM building, account scoring, contact sourcing, routing, AI SDR, rep cockpit) live in gtm-skills; menu in references/cookbooks.md. Skip when: it is a one-off operation, a read, or an ad-hoc query — use the matching capability skill.
|
||
- [cargo-connection](https://github.com/getcargohq/cargo-skills/blob/main/cargo-connection/SKILL.md): Connect Cargo to an external system and find out what it can do — authenticate connectors, browse the integration catalog, and resolve the `connectorUuid` and `actionSlug` a workflow node needs. Triggers: \"connect my HubSpot\", \"is Salesforce connected\", \"what integrations do you support\", \"can Cargo talk to <tool>\", \"what actions does <provider> have\", \"I need the connector UUID\", \"set up the API key for\", \"it is asking for credentials again\", \"why is this connector failing auth\", \"list my connectors\". Integrations: amplemarket, amplitude, attio, bigQuery, calendly, closecom, contrast, csv, customerio, dbt, emailBison, expandi, googleAds, googleSheets, heyReach, http, hubspot, hubspotMcp, instantly, instantlyV2, intercom, jira, kitt, lemlist, lgm, linkedinAds, linkedinMatchedAudience, livestorm, manus, marketo, metabase, microsoftTeams, mixpanel, netsuite, netsuiteSoap, notionMcp, octave, onesignal, outreach, pipedrive, postgresql, redshift, resend, rift, salesforce, salesforceMcp, salesloft, Sendgrid, sillage, slack, smartlead, snowflake, sql, stripe, and 82 more. Skip when: choosing between enrichment providers for a GTM job — use cargo-gtm and its provider playbooks.
|
||
- [cargo-content](https://github.com/getcargohq/cargo-skills/blob/main/cargo-content/SKILL.md): Manage the knowledge a Cargo workspace holds — upload files (PDF, CSV, text), rename and organize them, and build native or connector-backed libraries that sync from an external source, so agents can retrieve them (RAG). Triggers: \"upload this PDF\", \"add these docs as knowledge\", \"build a knowledge base\", \"sync our help center into Cargo\", \"what files are in the workspace\", \"index this folder\", \"attach our pricing sheet\". Skip when: wiring the file or library into an agent — use cargo-ai; uploading a CSV that drives a batch run — that is a workspace-management file upload.
|
||
- [cargo-context](https://github.com/getcargohq/cargo-skills/blob/main/cargo-context/SKILL.md): Read and write the workspace GTM knowledge base — the git-backed repository of markdown describing ICPs, personas, plays, proof points, objections, competitors, and signals — plus its runtime sandbox and typed knowledge graph. Triggers: \"document our ICP\", \"write up this persona\", \"what is our positioning\", \"add a battlecard\", \"capture this objection\", \"what do we know about <segment>\", \"update our context\", \"what is in the context repo\", \"who do we sell to\". Skip when: discovering who actually buys from you by analyzing won/lost data — that is cargo-gtm (this skill writes the conclusion down, it does not derive it); storing structured records rather than prose — use cargo-storage; attaching documents to an agent for RAG — use cargo-content.
|
||
- [cargo-diagnostics](https://github.com/getcargohq/cargo-skills/blob/main/cargo-diagnostics/SKILL.md): Explain what a Cargo run or batch actually did, after the fact — trace one run node by node, draw the graph it executed with the failing step marked, sweep a batch or play for errors grouped by root cause, and attribute credit spend down to the node and the provider. Triggers: \"why did this fail\", \"it succeeded but the output is wrong\", \"half my rows are empty\", \"why is this column blank\", \"what broke in this batch\", \"why did that cost so much\", \"which node is burning credits\", \"it worked yesterday\", \"these results look wrong\", \"it went down the wrong path\", \"this step never ran\", \"show me what the run did\". Skip when: setting up an alert for next time — use cargo-observability; just downloading the data — use cargo-analytics.
|
||
- [cargo-hosting](https://github.com/getcargohq/cargo-skills/blob/main/cargo-hosting/SKILL.md): Put something on the internet from Cargo — Vite single-page apps served at https://<slug>.cargo.app and serverless edge workers that answer HTTP requests, plus the deployments that build and promote them. Triggers: \"build me a dashboard for this\", \"host this app\", \"give me a URL to share\", \"deploy this\", \"I need a webhook endpoint\", \"make it live\", \"promote to production\", \"put it on cargo.app\", \"ship a UI for my team\". Skip when: the app or worker should be declared as committed workspace code — use cargo-cdk.
|
||
- [cargo-mailbox-management](https://github.com/getcargohq/cargo-skills/blob/main/cargo-mailbox-management/SKILL.md): Send mail from inboxes Cargo owns — provision mailboxes on a sending domain, run provider warm-up and the 5→40/day send ramp, deliver with the `sendEmail` action, and read back threads, replies, delivery events, and the workspace suppression list. Triggers: \"set up a sending mailbox\", \"provision inboxes for outbound\", \"warm up this mailbox\", \"how many sends do I have left today\", \"send this from Cargo\", \"did they reply\", \"who unsubscribed\", \"suppress this recipient\", \"take me off your list\", \"never email them again\", \"what do mailboxes cost\", \"my mailbox is stuck pending\". A mailbox is a recurring monthly credit charge, and every send is gated on basis, suppression, and relevance. Skip when: writing the copy or building the audience — use cargo-gtm; the mailbox belongs in git — use cargo-cdk.
|
||
- [cargo-mcp](https://github.com/getcargohq/cargo-skills/blob/main/cargo-mcp/SKILL.md): Drive Cargo from its hosted MCP server at https://mcp.getcargo.io/mcp — connect a client, discover and price an action, run it over one record or a batch, poll it, and read workspace models, with no CLI install. Also when to call an MCP tool instead of shelling out to `cargo-ai`. Triggers: \"connect Cargo to Claude Desktop\", \"add Cargo to ChatGPT\", \"Cargo MCP server\", \"mcp.getcargo.io\", \"use Cargo without installing anything\", \"which Cargo tool do I call\", \"search_actions\", \"execute_action_batch\", \"MCP server is showing the wrong workspace\". Tools: whoami, search_actions, get_action_schema, execute_action, execute_action_batch, get_run, query_models. Skip when: you have a shell and the job is a workflow, a CDK deploy, warehouse SQL, or a mailbox — use the CLI skills; when publishing an MCP server out of your own workspace or attaching one to a Cargo agent — use cargo-ai.
|
||
- [cargo-observability](https://github.com/getcargohq/cargo-skills/blob/main/cargo-observability/SKILL.md): Watch a Cargo workspace and get told when something breaks — scheduled threshold alerts over workflow telemetry (spans, runs, records), a storage model freshness or row count, or any SQL query, firing a connector, tool, or agent when a metric breaches. Triggers: \"alert me when\", \"notify me if\", \"let me know when the error rate\", \"monitor this workflow\", \"tell me if the sync stops\", \"warn me before I run out of credits\", \"dead man’s switch\", \"is this still running\", \"set up monitoring\", plus listing, previewing, editing, and reviewing an alert firing history. Skip when: diagnosing something that already went wrong — use cargo-diagnostics.
|
||
- [cargo-orchestration](https://github.com/getcargohq/cargo-skills/blob/main/cargo-orchestration/SKILL.md): Make Cargo actually run something, or show what it would run — execute one connector action, run a multi-step workflow, trigger a batch across a whole segment or model, message an AI agent, build or edit a node graph, draw a workflow, tool or play as a diagram, and query the runtime tables (runs, batches, spans, records) with SQL. Triggers: \"run this on all my contacts\", \"execute the action\", \"kick off a batch\", \"build a workflow\", \"schedule a play\", \"make it run every morning\", \"ask the agent\", \"show me the workflow\", \"what does this tool do\", \"visualize this play\", \"draw the graph\", \"explain this workflow\", \"how many runs failed today\", \"what is the output schema for this action\", \"add a step that\". Skip when: explaining why a run misbehaved — use cargo-diagnostics; downloading result files — use cargo-analytics; committing the workflow as code — use cargo-cdk.
|
||
- [cargo-segmentation](https://github.com/getcargohq/cargo-skills/blob/main/cargo-segmentation/SKILL.md): Define and use segments — named, saved filters over a Cargo model that become the audience for a batch run, a play trigger, or an export. Triggers: \"build a segment of\", \"filter my contacts where\", \"who matches this criteria\", \"save this as a list\", \"how many companies match\", \"the Closed-Won segment\", \"everyone who has not been emailed\", \"target only accounts that\", \"what is in this segment\", \"narrow this down to\". Filter JSON uses `conjonction` (not `conjunction`) — misspelling it fails silently. Skip when: running something over the segment — use cargo-orchestration; exporting its rows — use cargo-analytics; ad-hoc SQL over the model — use cargo-storage.
|
||
- [cargo-storage](https://github.com/getcargohq/cargo-skills/blob/main/cargo-storage/SKILL.md): Work with the data inside a Cargo workspace — models (Companies, Contacts, Deals…), datasets, columns, relationships, records, and SQL over workspace storage. Triggers: \"what models do I have\", \"show me the schema\", \"add a column for\", \"how many contacts do I have\", \"SELECT … FROM\", \"query my companies table\", \"join contacts to companies\", \"what is the DDL\", \"set up a webhook-fed model\", \"where does this field live\", \"import this into a model\", \"unify these models\", \"merge duplicate accounts\", \"link contacts to companies\", \"set up a relationship between\". Skip when: querying run or batch telemetry rather than business data — use cargo-orchestration; naming a reusable filtered audience — use cargo-segmentation.
|
||
- [cargo-workspace-management](https://github.com/getcargohq/cargo-skills/blob/main/cargo-workspace-management/SKILL.md): Administer a Cargo workspace and talk back to the Cargo team — invite and manage members, mint and rotate API tokens, organize plays, tools, and agents into folders, inspect roles, upload batch input files, and file reports. Triggers: \"invite my teammate\", \"create an API token for CI\", \"who has access\", \"organize these into folders\", \"rotate that token\", \"upload this CSV for a batch\" — and for feedback: \"report this bug to Cargo\", \"send feedback to the Cargo team\", \"this CLI command is broken\", \"share this session with Cargo\", \"request a feature\". Most commands need a token with admin access. Skip when: the question is about credits, plans, or invoices — use cargo-billing.
|
||
|
||
## Recipes
|
||
|
||
Step-by-step playbooks for a specific job. An agent loads the parent skill, then follows the matching recipe as its execution plan.
|
||
|
||
- [account-expansion](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/recipes/account-expansion.md): Use this recipe when the user wants to multi-thread existing customers — find additional buyers, champions, or budget-holders within accounts they already sell to.
|
||
- [ads-audience-activation](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/recipes/ads-audience-activation.md): Use this recipe when the user wants to turn a Cargo segment into a paid-media targeting audience: Google Ads Customer Match or LinkedIn Matched Audiences.
|
||
- [build-tam](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/recipes/build-tam.md): Use when: the user wants a Total Addressable Market list of companies (and optionally contacts at those companies) matching ICP criteria.
|
||
- [clay-to-cargo](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/recipes/clay-to-cargo.md): Use this recipe when the user is moving off Clay specifically: a table (or a set of them) whose enrichment columns have to keep working, at a cost they can compare, with the result reviewable instead of clicked.
|
||
- [custom-datapoints](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/recipes/custom-datapoints.md): Use this recipe when the user asks which fields they should be collecting, not how to fill a field they have already named.
|
||
- [funding-watch](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/recipes/funding-watch.md): Use this recipe when the user wants to identify or monitor companies that recently raised funding.
|
||
- [icp-discovery](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/recipes/icp-discovery.md): Use this recipe when the user wants to discover their real ICP from conversion data, not from gut feel.
|
||
- [import-gtm-data](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/recipes/import-gtm-data.md): Use this recipe when the user arrives with GTM data built elsewhere — spreadsheet exports, CRM dumps, lists from another data tool — and wants it living in Cargo: rows in models, recurring enrichments as plays, prompt…
|
||
- [job-change-monitoring](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/recipes/job-change-monitoring.md): Use this recipe when the user wants to detect job changes among a list of contacts.
|
||
- [linkedin-url-lookup](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/recipes/linkedin-url-lookup.md): Use when: the user has a name and company (or email) and needs the correct LinkedIn profile URL.
|
||
- [lost-deal-revival](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/recipes/lost-deal-revival.md): Use this recipe when the user wants to systematically revisit Closed-Lost CRM deals and only re-engage the ones where the original lost-reason is no longer relevant.
|
||
- [outreach-activation](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/recipes/outreach-activation.md): Use this recipe when the user has a signal-driven segment ready (recent fundraise, job change, tech intent, ICP-fit accounts, etc.) and wants to turn it into send-ready outreach — enriched contacts, LLM-personalized v…
|
||
- [portfolio-prospecting](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/recipes/portfolio-prospecting.md): Use this recipe when the user wants to prospect into the portfolio of a specific investor or accelerator.
|
||
- [prospecting](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/recipes/prospecting.md): Use when: the user states an end-to-end sourcing goal — find people matching a description, enrich them, verify emails, and prepare them for outreach.
|
||
- [re-engagement](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/recipes/re-engagement.md): Use this recipe when the user wants to systematically wake up cold contacts — old prospects, unresponsive leads, dormant opportunities — but only when a meaningful signal makes outreach worthwhile.
|
||
- [review-and-iterate](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/recipes/review-and-iterate.md): Use this recipe when a run produced output that needs human judgment before it can be trusted or sent, and that judgment should improve the next run rather than evaporate.
|
||
- [save-as-play](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/recipes/save-as-play.md): Convert whatever was just run ad-hoc (a search, an enrichment chain, a signal pull) into a scheduled, always-on workflow in the workspace.
|
||
- [source-planning](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/recipes/source-planning.md): Use this recipe when the user asks a research or list-building question whose answer source is not obvious, and the wrong first guess is expensive.
|
||
- [tech-intent](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/recipes/tech-intent.md): Use this recipe when the user wants to find or prioritize companies based on what they use (tech stack) or what they're hiring for (role intent).
|
||
- [add-connector-and-model](https://github.com/getcargohq/cargo-skills/blob/main/cargo-cdk/recipes/add-connector-and-model.md): Use when the user wants a new data source plus a model built from it, managed
|
||
- [build-an-agent](https://github.com/getcargohq/cargo-skills/blob/main/cargo-cdk/recipes/build-an-agent.md): Use when the user wants an AI agent with a data model, a tool, and an LLM
|
||
- [deploy-from-ci](https://github.com/getcargohq/cargo-skills/blob/main/cargo-cdk/recipes/deploy-from-ci.md): Use when the user wants cargo-ai cdk deploy to run non-interactively — on
|
||
- [migrate-existing-workspace](https://github.com/getcargohq/cargo-skills/blob/main/cargo-cdk/recipes/migrate-existing-workspace.md): Use when a workspace already has live resources (built in the UI or the
|
||
- [scaffold-a-workspace](https://github.com/getcargohq/cargo-skills/blob/main/cargo-cdk/recipes/scaffold-a-workspace.md): Use when the user wants to stand up a new Cargo workspace as code,
|
||
|
||
## Provider playbooks
|
||
|
||
Per-provider action slugs, config shapes, credit costs, cost traps, and recurring-use cadence. Read the playbook before calling a paid action from that provider.
|
||
|
||
- [aiArk](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/provider-playbooks/aiArk.md): LinkedIn-anchored people/company data with an unusually cheap enrich-and-email combo, a personality-analysis action nothing else in the catalog has, and per-record search that bills at the bottom of the catalog.
|
||
- [anthropic](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/provider-playbooks/anthropic.md): Claude through a single instruct action — the default judgment-tier LLM of the pack: the prompt library (../references/prompt-library/index.md) is written against it.
|
||
- [apolloio](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/provider-playbooks/apolloio.md): Apollo-anchored person and organization enrichment.
|
||
- [bouncer](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/provider-playbooks/bouncer.md): Dedicated email verification.
|
||
- [brightData](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/provider-playbooks/brightData.md): Six actions, all shaped identically: hand one profile URL, get that account's public profile back.
|
||
- [builtwith](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/provider-playbooks/builtwith.md): A domain's technology stack.
|
||
- [cleon1](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/provider-playbooks/cleon1.md): Premium phone finder — the most expensive phone rung in the catalog at 15 credits, the last resort after every cheaper rung (prospeo 3 → FullEnrich 6 → waterfall 7 → datagma 8) has missed (../references/stage-action-m…
|
||
- [companyEnrich](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/provider-playbooks/companyEnrich.md): Budget company enrichment.
|
||
- [contactOut](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/provider-playbooks/contactOut.md): LinkedIn-URL-anchored contact info — emails and phones from a profile URL, plus a filter-based people/company search.
|
||
- [datagma](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/provider-playbooks/datagma.md): Contact-info finder: one mid-tier email action and two premium phone actions.
|
||
- [dropcontact](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/provider-playbooks/dropcontact.md): The French/EU tier of the find-email waterfall.
|
||
- [enrichCrm](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/provider-playbooks/enrichCrm.md): Flat-rate generalist: four actions, all 1 credit fixed — person enrichment, email finding, company enrichment, and funding data.
|
||
- [enrichley](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/provider-playbooks/enrichley.md): Dedicated email verification.
|
||
- [enrowio](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/provider-playbooks/enrowio.md): Email finder + verifier pair.
|
||
- [exa](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/provider-playbooks/exa.md): One action: semantic web search with a category filter and five search modes.
|
||
- [findyMail](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/provider-playbooks/findyMail.md): Mid-tier email finder with a phone lookup and a verify on the side.
|
||
- [firecrawl](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/provider-playbooks/firecrawl.md): Web scraping, crawling, and web search at 0.05 credits per item — the default web-research provider for the personalization and niche-research stages.
|
||
- [forager](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/provider-playbooks/forager.md): Contact-info lookup keyed exclusively on LinkedIn URL — three actions, one input field each.
|
||
- [FullEnrich](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/provider-playbooks/FullEnrich.md): Premium contact-detail provider.
|
||
- [g2](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/provider-playbooks/g2.md): Software-review data from G2, in two surfaces: an action (enrichProduct, 1) that pulls one product's reviews/ratings/specs, and an extractor (fetchProducts, 1) that syncs the product list of G2 categories into a model…
|
||
- [gemini](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/provider-playbooks/gemini.md): Gemini models through a single instruct action — the cheap high-throughput tier: Flash models run at 0.01–0.05 credits per 1,000-token package with a 15,000 calls/min rate limit (highest in the LLM catalog), plus opti…
|
||
- [hunter](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/provider-playbooks/hunter.md): Mid-tier email finder.
|
||
- [icypeas](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/provider-playbooks/icypeas.md): The cheap tier of the contact stack, three ways: verifyEmail at 0.01 is the cheapest verification in the entire catalog (10× cheaper than the waterfall.verifyEmail default), findEmail at 0.1 is the cheap last resort o…
|
||
- [kitt](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/provider-playbooks/kitt.md): Dedicated email verification — one action, 0.05 credits, half the price of the priority-stack default waterfall.verifyEmail (0.1) and 5× the price of the catalog floor icypeas.verifyEmail (0.01).
|
||
- [leadMagic](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/provider-playbooks/leadMagic.md): Mid-tier email finder whose hits come pre-annotated: findEmail (0.5) returns a status field, full MX diagnostics (provider, security gateway, records), and bonus company firmographics in the same payload.
|
||
- [linkedin](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/provider-playbooks/linkedin.md): LinkedIn page-level enrichment, URL resolution, and activity signals.
|
||
- [linkup](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/provider-playbooks/linkup.md): Natural-language web research with synthesized answers.
|
||
- [mixrank](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/provider-playbooks/mixrank.md): Premium person/company enrichment — two actions, both 4 credits, the most expensive general enrichers in the catalog (above peopleDataLabs at 3, waterfall.enrichContact at 2, waterfall.enrichCompany at 1).
|
||
- [neverBounce](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/provider-playbooks/neverBounce.md): Dedicated email verification.
|
||
- [oceanio](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/provider-playbooks/oceanio.md): Mid-tier company/people search and enrichment — four actions, all 1 credit.
|
||
- [openAi](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/provider-playbooks/openAi.md): GPT models through a single instruct action — the cheapest bulk-LLM tier in the catalog: the nano models run at 0.006 credits per 1,000-token package, 33× cheaper than anthropic's cheapest tier (0.2).
|
||
- [parallel](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/provider-playbooks/parallel.md): Web search, page extraction, and agentic research tasks that return a schema you define.
|
||
- [peopleDataLabs](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/provider-playbooks/peopleDataLabs.md): Heavyweight people / company database.
|
||
- [perplexity](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/provider-playbooks/perplexity.md): Web-grounded LLM through a single instruct action — every model has live internet access (per the schema: "All models have access to internet").
|
||
- [piloterr](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/provider-playbooks/piloterr.md): Ultra-cheap sourcing surfaces, both priced at 0.01: an action (getG2ProductInfo) that scrapes one G2 product page (reviews, ratings, pricing plans, specs), and an extractor (fetchCompanies, 0.01 per item) that syncs f…
|
||
- [prospeo](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/provider-playbooks/prospeo.md): Contact-lookup specialist whose standout is the cheapest landline/DID phone finder in the priority stack — findPhone (3) sits ahead of FullEnrich.findPhone (6) and waterfall.findPhone (7), behind the mobile-only aiArk…
|
||
- [proxycurl](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/provider-playbooks/proxycurl.md): Two actions over LinkedIn-derived data: enrich (1 credit fixed) and search (1 credit per item returned).
|
||
- [reverseContact](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/provider-playbooks/reverseContact.md): LinkedIn-anchored reverse lookups.
|
||
- [rocketreach](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/provider-playbooks/rocketreach.md): Single-action person lookup: lookupPerson (1 credit) resolves a person and their company from flexible identifiers — name + employer, LinkedIn URL, email, or a US healthcare NPI number — returning contact channels (em…
|
||
- [salesNavigator](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/provider-playbooks/salesNavigator.md): LinkedIn-anchored search for accounts and leads.
|
||
- [serper](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/provider-playbooks/serper.md): Google search results and Google Places, 0.05 credits fixed per query (up to 100 records per call).
|
||
- [sillage](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/provider-playbooks/sillage.md): Signal detections pushed into a Cargo model, read back with one action.
|
||
- [snitcher](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/provider-playbooks/snitcher.md): Website-visitor identification (catalog subcategory: websiteVisit) — a signal source, not an enrichment rung.
|
||
- [societeInfo](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/provider-playbooks/societeInfo.md): French-market company and contact data, anchored on the official registry: registration numbers, NAF activity codes, juridical forms, conventions collectives, filed financials (minSales / minProfits).
|
||
- [theirStack](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/provider-playbooks/theirStack.md): Tech-stack and jobs-posted intent signals.
|
||
- [theSwarm](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/provider-playbooks/theSwarm.md): Warm-intro path discovery — two actions, both 2 credits, scoring the relationships between your company and a target company or person.
|
||
- [waterfall](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/provider-playbooks/waterfall.md): Multi-source enrichment with built-in fallback across multiple underlying providers.
|
||
- [x](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/provider-playbooks/x.md): Fourteen actions over public X data: profiles, posts, replies, followers, and search.
|
||
- [zeroBounce](https://github.com/getcargohq/cargo-skills/blob/main/cargo-gtm/provider-playbooks/zeroBounce.md): Dedicated email verification.
|
||
|
||
## Single-job skills
|
||
|
||
Want one job rather than the whole bundle? [`getcargohq/gtm-skills`](https://github.com/getcargohq/gtm-skills) packages twelve of these outcomes as standalone skills, named after the job — `find-work-email`, `find-b2b-leads`, `enrich-linkedin-profile`, `find-stakeholders`, `track-job-changes`, `verify-email-list`, and more. Each installs on its own and runs inside the 100 free credits.
|
||
|
||
```bash
|
||
npx skills add getcargohq/gtm-skills/<skill-name>
|
||
```
|
||
|
||
Install those **or** this pack, not both: each standalone skill defers to `cargo-gtm` when the pack is present, so routing stays unambiguous.
|
||
|
||
## Documentation
|
||
|
||
- [Cargo](https://getcargo.ai)
|
||
- [Cargo API docs](https://docs.getcargo.ai/api-reference/introduction)
|
||
- [GitHub repository](https://github.com/getcargohq/cargo-skills)
|
||
- [Standalone GTM skills, run-once and worked CDK examples](https://github.com/getcargohq/gtm-skills)
|
||
|
||
<!-- Generated by .github/scripts/generate-llms-txt.ts — do not edit by hand. -->
|