Open-Source Cold Email & Warmup Platform
Warmbly is the open-source platform for cold email: warm your mailboxes, send campaigns, and triage every reply. Run it on our cloud or self-host the whole thing.
Cargo is GTM infrastructure for coding agents: Data models, Tools, Plays, and Context your team and your agents run on. Build in the app, via API, CLI, or Claude and Cursor.
MarketingTypeScript · JavaScriptGitHub @getcargohqOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Standalone Cargo GTM agent skills — one job each. Find leads, enrich contacts, verify emails, track signals.
Translation pending
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
25 agent skills, each with one routed job. No account required to read them, and a new
Cargo account starts with 100 free credits, no card.
Each skill also installs on its own, when you want exactly one and nothing else:Read the full README ↗45 agent skills for B2B go-to-market work, each with one routed job. Some run once, in a turn: find the emails, score the list, brief me on this account. Others deploy a pipeline that keeps doing that job after the session ends.
npx skills add getcargohq/gtm-skills --all # all 41
npx skills add getcargohq/gtm-skills/<skill-name> # exactly one
cargo-ai project add cookbook/<skill-name> # a pipeline, into your Cargo project
Pipelines install through cargo-ai project instead of skills add: each one carries resources
that have to land in your project's resources folder (the one its cargo.json names) while the
procedure goes to your skills folder, and only the CLI knows how to split them.
Every skill page shows a line to say to your agent and an illustrative result. The tables below
are generated from each SKILL.md, so they never drift from what the skill actually does.
The pipelines are listed in stage order — Context, Fundamentals, Signals, Engagement, Operations, CRM — and that order is the recommendation. Start anywhere: every pipeline installs and works on its own. After one is set up, an agent suggests the earliest pipelines not set up yet.
Rebuild what you already have: mapped column by column, priced before it runs, kept as code.
| Skill | Does | Try saying |
|---|---|---|
clay-to-cargo | Rebuild a Clay table on Cargo — map every Clay enrichment column to its provider action, price the run before it happens, and keep the result as version-controlled code instead of a spreadsheet. | “Rebuild our "Inbound enrichment" Clay table on Cargo — here's the ClayMate JSON export.” |
apollo-to-cargo | Rebuild an Apollo list on Cargo and price the two side by side before you move anything. | “Before our Apollo renewal, compare it with Cargo on 20 rows from apollo-q3-export.csv.” |
zoominfo-to-cargo | Rebuild a ZoomInfo list on Cargo and measure the coverage you actually lose or gain before the renewal. | “Our ZoomInfo renewal is next month — measure what we'd lose on 20 rows from zi-export.csv.” |
Sourcing: who exists, who fits, and who sits on the buying committee.
| Skill | Does | Try saying |
|---|---|---|
find-b2b-leads | Find B2B leads by job title, company, and keyword, and return them as a structured list. | “Find 25 VPs of Sales at US software companies and give me their LinkedIn URLs.” |
build-tam-list | Build a total addressable market list of companies filtered by industry, headcount, and geography. | “Size the market of US fintech companies with 50–500 employees and give me the first 100.” |
extract-sales-navigator-search | Extract a Sales Navigator search that is bigger than one extraction can hold: count it, split it under the cap, merge the pieces back to the fewest searches, and load them into a handful of models, for accounts (1,000 per search) or people (2,500 per search). | “Extract every software company with 51–200 employees in the US from Sales Navigator.” |
find-stakeholders | Find the buying committee at a target account — every stakeholder matching a set of titles, seniorities, and departments. | “Who's on the buying committee at northwind.example — VP and above in Sales, Marketing, Ops and Finance?” |
find-portfolio-companies | Find every portfolio company of an investor or accelerator, then the people inside them. | “Pull every portfolio company of Harbor Point Ventures so I can ask the partners for warm intros.” |
Resolve identity, enrich it, and make sure the address is deliverable before you send.
| Skill | Does | Try saying |
|---|---|---|
find-linkedin-url | Resolve a person's LinkedIn profile URL from their name and company, with an identity-validation gate that rejects wrong matches. | “These 25 customer champions in champions.csv have no LinkedIn URL — find the right profile for each.” |
enrich-linkedin-profile | Turn a LinkedIn profile URL into a full person profile plus a verified work email in a single call. | “I have LinkedIn URLs for the 60 people who registered for our roundtable — get me their current role and a work email.” |
find-work-email | Find a verified work email address from a person's name and company domain. | “Find work emails for the 40 people in webinar-attendees.csv — first name, last name and company domain are all there.” |
verify-email-list | Verify a list of email addresses so you stop sending to bounces. | “Check the 200 addresses in q3-newsletter-optins.csv before tomorrow's send and tell me which to drop.” |
enrich-company-data | Enrich a list of companies with firmographics — industry, size, geography, founding year, and headquarters. | “Add industry, headcount and HQ to the 300 domains in accounts-export.csv.” |
waterfall-enrichment | Cascade one lookup through several vendors in priority order, so a row the first source misses falls through to the next instead of being lost. | “Run the 20 contacts in through the waterfall and verify every email before I import them.” |
Buying signals: someone moved, someone raised, someone started hiring for the thing you sell.
| Skill | Does | Try saying |
|---|---|---|
track-job-changes | Detect which of your contacts have changed jobs, and where they went. | “Check whether any of the 30 champions from last year's closed-won deals have changed jobs.” |
track-funding-rounds | Track which companies recently raised funding, with round, amount, and investors. | “Which of the 50 accounts in tier-a.csv raised money recently, and from whom?” |
find-companies-using-tech | Find companies by the technology they run or the roles they are hiring for. | “Which software companies run Snowflake and posted a Data Engineer role in the last 60 days?” |
monitor-buying-signals | Watch a list of target accounts for the public events that mean someone is in market — hiring for the role you sell into, saying something new, or turning up in a detection feed, each with a date and a link. | “Watch our 20 open-opportunity accounts and tell me which started hiring RevOps in the last 30 days.” |
Rank a list against your profile, then understand the one account before you walk into the call.
| Skill | Does | Try saying |
|---|---|---|
score-leads | Score a list of companies against your ideal customer profile and rank them — every row gets a number, the reason behind it, and a tier, so the bottom of the list can be dropped before anyone spends time on it. | “Score the 20 companies in webinar-accounts.csv against our ICP: 50–500 employees, B2B software, US or UK, competitors out.” |
research-account | Research one company and its public website before a meeting and hand back a briefing — what it does, what it publicly says is hard right now, and who it names as competition, each line traceable to where it came from. | “I have a discovery call with Fabrikam tomorrow — we sell data-pipeline monitoring. Brief me.” |
Deployed pipelines that keep context/ current: every recorded call, your website and the news, and won and lost deals.
| Skill | Does | Try saying |
|---|---|---|
call-capture | Turn your recorded calls into a go-to-market knowledge base: each recorded call is collected every morning, scribed into a log entry, and, once a claim repeats, promoted into context, as one pull request against your go-to-market repo. Nine recorders ship; a tenth is one adapter file. | “Every morning, pull yesterday's Gong calls into this repo as log entries and open one pull request with anything worth adding to our context.” |
web-capture | Keep your company context current from your website and competitors' pages: each Monday your site, competitors' pages and news about both land in context/ as one pull request; the first run seeds positioning, offerings, an inferred ICP with a disqualifier, competitors, clients and proof, and every later run adds a dated note of what changed, never editing an existing file. | “Every Monday, read our website, our competitors' pricing and changelog pages, and the news about all of us, and keep context/ current.” |
win-loss-review | Run a monthly win-loss review of your CRM's closed deals, landed in context/ as one pull request: the ICP verified against won versus lost with a disqualifier, dated insights with counts and denominators, objections from recorded lost reasons, and a client file per closed-won account; a five-line Slack digest says what changed. Never edits a persona, nor the ICP after the first pass. | “Every month, read what our HubSpot won and lost deals say, verify the ICP, and post the digest to #gtm-context.” |
Deployed pipelines that build the base: the account universe, a standing score on every account, the website, and keeping it readable by AI agents.
| Skill | Does | Try saying |
|---|---|---|
tam-building | Build your total addressable market (TAM) list and stand it up as a deployed model in Cargo: your ICP, read from your context (or drafted from your website and customer stories), becomes an AI Ark company search setting industries, company size and countries, sized for free before it bills, and lands as one model other pipelines read. | “Source every B2B software company in the US and the UK with 20 to 500 employees from AI Ark, using the ICP in our context repo.” |
account-scoring | Score every account against your ICP on a schedule: a deployed agent tiers each company in a Cargo model (tam-building's, or your CRM companies) A / B / C / disqualified against the ICP and rubric in workspace context, and the tier, a two-sentence reason and evidence are written onto the row and, optionally, the matching HubSpot or Salesforce company. New companies are tiered hourly; the book is re-scored weekly or on any window set. | “Tier every company in our TAM against the ICP and the rubric in our context repo, and keep new ones tiered as they land.” |
website-building | Build and host your company website on your own domain with Cargo: a statically exported Next.js app, one defineApp with its www hostname, and a defineDomain that publishes the records and forwards the apex, changed only through reviewed pull requests. | “Build our company website on Cargo from our brand guide and serve it on www.fabrikam.example. Our DNS is hosted elsewhere.” |
website-auditing | Keep your site usable by AI agents: once a week Ora audits how agents discover, read and use your domain and up to three rival domains, one pull request applies the fixes your site source can make, and one Slack digest reports the Ora score and what moved. | “Every Monday, tell #web-team how agent-ready www.fabrikam.example is, and open a PR with the fixes.” |
Deployed pipelines that watch the market for the moment to reach out: who just took a role you sell to, which public conversations are worth joining, who is on your site, and which accounts are ready now.
| Skill | Does | Try saying |
|---|---|---|
new-hire-detection | Get a Slack alert when a decision-maker joins a company in your ICP: a Sales Navigator job-change search watches your market for people who just took a role you sell to, an agent qualifies each one's new company against your ICP, and fits are posted with verdict and links. | “Every time a new VP Sales or head of RevOps starts at a US software company with 51 to 500 people, post it in #new-hires.” |
social-listening | Find the LinkedIn conversations worth joining every week: each Monday the week's public LinkedIn posts about the problem you solve are judged against your ICP, and one Slack digest lists the posts worth joining and the commenters who look like buyers, each with a link. | “Every Monday, tell #gtm-signals which LinkedIn conversations about lead routing are worth joining.” |
visitor-identification | Identify which companies visit your website and what they read: Snitcher identifies the organisation behind each visit, two Cargo models keep the visiting companies and their sessions current, and the site loads the tracker only after a visitor accepts it. | “Show us which companies visit www.fabrikam.example, and only track visitors who accept.” |
readiness-scoring | Keep a sales readiness score on every account that rises with each fresh signal and falls on its own as signals age: rounds, job postings, demo requests and any other account event land in Unify Account Events, each event decays with a half-life per signal type, the sum lands as a score on Unify Accounts every hour, and accounts crossing your line are posted to Slack once. | “Score our accounts by recent engagement so older signals count for less, and ping #sales-ready when one heats up.” |
Deployed pipelines that hold the conversation: every demo request answered on the page, and an agent answering every lead who replies.
| Skill | Does | Try saying |
|---|---|---|
inbound-qualification | Qualify and route inbound demo requests from your website form: each submission runs a Cargo tool that identifies the company by work email, qualifies it against your ICP, lands the account and contact in the shared models, posts it to Slack, and answers with a booking link or a thank-you; an optional play then tiers and summarises each qualified contact. | “Add a demo form to www.fabrikam.example: qualified companies get our booking link, the rest a thank-you, and the sales channel hears about every request.” |
agentic-engagement | Deploy an AI agent that holds email conversations with leads from a mailbox your workspace owns: a sending domain, a mailbox, native sendEmail and listEmailEvents on the agent, a native email trigger on reply and unsubscribe, and a heartbeat that checks thread status when nothing inbound happened. | “Give our jordan@ mailbox an agent that answers leads who reply to my first emails, and checks quiet threads once for a single follow-up.” |
Deployed pipelines that run the team: the daily recap, a brief before every external meeting, every promise made on a call, a weekly nudge on deals gone quiet, the weekly plan, the pipelines the goal still needs, a morning check for anything broken, the week's LinkedIn drafts, and one agent everyone can ask.
| Skill | Does | Try saying |
|---|---|---|
standup | Post a daily go-to-market standup to Slack: every evening the day's go-to-market work is recapped into the cadence log and a digest is posted to Slack, as one reviewable pull request against your go-to-market repo. | “Every weekday at 6pm, recap what moved on our GTM initiatives into the repo and post the digest to #gtm-daily.” |
meeting-prep | Post a Slack card for every external meeting the moment it is booked on anyone's Google Calendar: who is joining, the open deal, the line that mattered last time, one recent public event, and an opener grounded in your positioning, with reschedules and cancellations threaded under it. | “Brief the team in #sales-prep whenever anyone books a meeting with someone outside the company.” |
next-step-tracker | Track the next steps promised on sales calls and flag the overdue ones in Slack: every weekday morning each commitment made on a recorded call, by your team or the customer, is read from the call log, recorded once, closed when the activity log shows it was kept, and flagged once it falls due or goes overdue. | “Every weekday morning, tell #deal-desk which promises from our calls are due or overdue.” |
stalled-deal-nudge | Flag stalled deals and nudge each rep with a drafted follow-up: every Monday each rep gets one Slack digest of their open deals that went quiet, with how long since the last logged activity, the line that activity left off on, why the deal is worth a touch now, and a follow-up drafted for them to send. | “Every Monday, tell each rep which of their open deals went quiet and draft the follow-up.” |
weekly-planning | Decide what the go-to-market team works on this week: every Monday last week's work is ranked against active initiatives, declared infra, and live runs, as one reviewable pull request per initiative, or one workspace pull request when there are none. |
Deployed pipelines that keep an existing CRM in step with the engine: records filled, duplicate-free, and customers flagged before renewal.
| Skill | Does | Try saying |
|---|---|---|
crm-enrichment | Clean up and enrich a messy CRM: fill the missing identifiers on accounts and contacts first (LinkedIn, domain, email), write them back into blank fields only, then deduplicate on those identifiers with crm-deduplication. Keeps records filled and refreshes them when they go stale. | “Keep our HubSpot contacts filled: find the missing email or LinkedIn profile, then fill job title, but never overwrite a value a rep already entered.” |
crm-deduplication | Deduplicate CRM accounts and contacts and keep them duplicate-free: audit company and person identity, run recurring deduplication plays directly on CRM models, merge safe exact matches, and route uncertain clusters to manual review. | “Merge duplicate HubSpot companies automatically only when the LinkedIn company ID matches, and send everything else to #crm-hygiene for a human to approve.” |
expansion-signals | Find which customers are ready to expand before renewal: weekly, customers nearing renewal are judged for an expansion moment (won-deal cadence and last price, events such as funding, hiring, a new leader), with the signal and reason written onto the account and posted as one Slack digest. | “Every Monday, flag which customers near renewal are ready to expand and post the digest to #cs-weekly.” |
agentic-engagement, enrich-linkedin-profile, find-b2b-leads, find-companies-using-tech, find-linkedin-url, find-work-email; also enrich-company-data, extract-sales-navigator-search, find-portfolio-companies, find-stakeholders, inbound-qualification, meeting-prep, monitor-buying-signals, , , , , , , , , , Each pipeline folder is self-contained, with its own models, connectors and folders, so your agent
reconciles it with whatever your project already declares. More are coming (contact-sourcing,
signal-based-tam, ai-sdr, rep-cockpit, …). Each one lands here once its skill is written.
The same 45 skills also install as one native plugin. Take this route when you want all of them
and two things skills add cannot give you:
hooks/approve-cli.sh)
auto-approves safe cargo-ai calls (reads, queries, runs and batches). Login, token minting,
report egress and any remove/delete still ask. It can only allow, never override a deny rule.cli-version pins and keeps the session titled.Claude Code (≥ v2.1.154):
/plugin marketplace add getcargohq/gtm-skills
/plugin install cargo@gtm
Codex:
codex plugin marketplace add getcargohq/gtm-skills
# then install "Cargo GTM" from the Plugins menu
Cursor: open Customize in the sidebar, add the getcargohq/gtm-skills marketplace, then
install the Cargo GTM plugin.
Pick one channel. The plugin and skills add both register the skills, so using both gives you
duplicates (plugin copies are namespaced cargo:<skill>).
These are slices of the full Cargo skills pack: 17
skills covering the whole CLI, with recipes, provider playbooks and cost discipline built in. If you
install the pack you don't need these, because each one here defers to cargo-gtm when it is
present.
npx skills add getcargohq/cargo-skills
The markdown is the source, and the copy is meant to be iterated on. Slugs, prices, personas and examples are checked in CI. CONTRIBUTING.md covers what is enforced, how to add a skill, and how the toolchain stays current.
event-leads.csv| “Every Monday morning, check last week's runs against our initiatives and open one pull request per initiative saying what to do next.” |
goal-coverage | Find what your goal needs that the workspace has not built: once a week a deployed agent reads the company goal, takes stock of every play, agent, model and connector in the workspace, and suggests at most five missing pipelines from the published catalog, each opened with what it noticed ("thousands of accounts, none scored"), as a pull request you can decline lines in and a Slack post. | “Every week, look at our goal and what we have running, and tell us which pipelines we are missing.” |
workspace-health | Know the morning something breaks: a deployed agent reads the last 24 hours of the workspace against the week before and posts to Slack only what is wrong and new: failing runs grouped by cause, a lost connector, a play that stopped, runs that succeed and write nothing, a spend spike, a stuck batch. Mondays it posts the week: still open, cleared, all clear. | “Every morning, check our Cargo workspace and tell me in Slack if anything broke.” |
linkedin-content | Draft LinkedIn posts every week from your own proof points: each Monday three post drafts for one author land in your go-to-market repo as one pull request, built only from what context/ and the cadence log already say, each with its hook and the files it draws on; nothing is ever published. | “Every Monday, draft three LinkedIn posts for our CEO, Dana Ruiz, from what's in context/.” |
ask-cargo | Ask your go-to-market repo and workspace anything from Slack: one agent the whole team @mentions answers from context, cadence and live runs, turns change requests into pull requests, captures a thread worth keeping into the cadence log and context, and hands work to the other deployed agents only after a go in the thread. | “Put one agent in our #gtm Slack channel that answers from this repo, opens a pull request for any edit, and runs nothing until someone says go.” |
new-hire-detectionfind-portfolio-companies, find-stakeholders, meeting-prep, monitor-buying-signals, next-step-tracker, research-account, stalled-deal-nudge, track-funding-rounds, track-job-changes; also call-capture, enrich-linkedin-profile, expansion-signalsaccount-scoring, apollo-to-cargo, ask-cargo, build-tam-list, crm-deduplication, crm-enrichment, enrich-company-data, expansion-signals, extract-sales-navigator-search, new-hire-detection, readiness-scoring, score-leads, tam-building, waterfall-enrichment, win-loss-review, workspace-health, zoominfo-to-cargo; also call-capture, clay-to-cargo, find-linkedin-url, find-work-email, goal-coverage, stalled-deal-nudge, standup, verify-email-list, web-capture, weekly-planningcall-capture, goal-coverage, standup, weekly-planning; also account-scoring, ask-cargo, build-tam-list, linkedin-content, meeting-prep, next-step-tracker, stalled-deal-nudge, tam-building, win-loss-review, zoominfo-to-cargoinbound-qualification, linkedin-content, social-listening, verify-email-list, visitor-identification, website-auditing, website-building; also find-companies-using-tech, web-captureclay-to-cargo, web-capture; also account-scoring, agentic-engagement, apollo-to-cargo, ask-cargo, crm-deduplication, crm-enrichment, extract-sales-navigator-search, goal-coverage, inbound-qualification, new-hire-detection, readiness-scoring, tam-building, visitor-identification, waterfall-enrichment, website-auditing, website-building, win-loss-review, workspace-health