← Files Cargo CLIARCHIVED FILE
skills/cargo-gtm/provider-playbooks/cargo.md
7.82 KB · Sep 30, 2026 · 23:14 UTC
---
provider: cargo
category: enrichment (native firmographic + signal intelligence)
last-reviewed: 2026-04-27
---
# cargo (native)
Cargo's proprietary enrichment layer. **22 credits-based actions covering firmographics, technographics, funding, ratings, financial metrics, intent signals, and prospect details.** Cheap (most actions 0.5–1 credit) and the canonical source for firmographic data on companies cargo's catalog already covers.
## When to reach for cargo (vs other providers)
- ✅ **Firmographics on a known company**: `enrichBusinessFirmographics` (0.5) — first stop, cheapest comprehensive firmographic action in catalog.
- ✅ **Dedup / canonical-id lookup**: `matchBusiness` / `matchProspect` (0.5) — get a stable `business_id` / `prospect_id` for downstream enrichment.
- ✅ **Multi-axis signals on the same company**: when you want firmographics + funding + technographics + ratings, batch them all against the same `business_id` — cheapest path.
- ✅ **Prospect catalog browsing**: `fetchProspects` / `fetchBusinesses` for "give me companies in country X with size band Y" without going through a third party.
- ❌ **Discovery outside cargo's catalog**: if `matchBusiness` returns no match, fall back to `waterfall.enrichCompany` (1 cred) or `peopleDataLabs.enrichCompany` (3 cred).
## Credits-based actions — Business
| Action | Cost | What it returns |
|---|---|---|
| `matchBusiness` | 0.5 | Resolve a company (by `name`, `domain`) to a cargo `business_id`. **Run this first for any business enrichment.** |
| `enrichBusinessFirmographics` | 0.5 | Industry, size, geo, founded year, headquarters, etc. |
| `enrichBusinessFinancialMetrics` | 0.5 | Revenue band, growth, financial health markers. |
| `enrichBusinessFundingAndAcquisitions` | 0.5 | Funding rounds, investors, M&A history. |
| `enrichBusinessTechnographics` | 1 | Tech stack: languages, frameworks, SaaS apps, infrastructure. |
| `enrichBusinessChallenges` | 1 | Stated business challenges scraped from public material. |
| `enrichBusinessCompetitiveLandscape` | 1 | Named competitors. |
| `enrichBusinessLinkedinPosts` | 2 | Recent LinkedIn posts from the company page. |
| `enrichBusinessRatingsByEmployees` | 1 | Glassdoor-style employee ratings. |
| `enrichBusinessStrategicInsights` | 1 | High-level strategic narrative. |
| `enrichBusinessWebsiteKeywords` | 0.5 | Keywords scraped from the company website. |
| `enrichBusinessWebsiteChanges` | 1 | Recent website / messaging changes. |
| `enrichBusinessWorkforceTrends` | 1 | Headcount trend over time. |
| `fetchBusinesses` | 0.5 | Catalog-style search by `country_code`, `region_country_code`, `company_size`, `company_revenue`, `google_category`, `naics_category`, `linkedin`. |
| `fetchBusinessEvents` | 0.5 | Events on a known business (`event_types`, `timestamp_from`). Useful for "what happened at this company recently?" signal queries. |
| `fetchBusinessStatistics` | 1 | Aggregated statistics across the catalog filter. |
## Credits-based actions — Prospect
| Action | Cost | What it returns |
|---|---|---|
| `matchProspect` | 0.5 | Resolve a person (by `email`, `phone_number`, `full_name + company_name`, `linkedin`) to a cargo `prospect_id`. **Run this first for any person enrichment.** |
| `enrichProspectDetails` | 2 | Title, role, location, contact details. |
| `enrichProspectLinkedinProfile` | 2 | Full LinkedIn profile snapshot (work history, education, skills). |
| `enrichProspectLinkedinPosts` | 2 | Recent LinkedIn posts authored by the prospect. |
| `fetchProspects` | 0.5 | Catalog-style search by `business_id`, `job_level`, `job_department`, `job_title`, geo. |
| `fetchProspectEvents` | 0.5 | Events on a known prospect (`event_types`, `timestamp_from`). Job changes, posts, role changes. |
## Patterns
### Pattern A — Firmographics on a domain list (cheapest)
```bash
# Step 1 — match domains to business_ids
cargo-ai orchestration action execute-batch \
--action '{"kind":"connector","integrationSlug":"cargo","actionSlug":"matchBusiness"}' \
--records '[{"domain":"acme.com"},{"domain":"globex.com"}]' \
--wait-until-finished
# Step 2 — enrich firmographics on the matched IDs
cargo-ai orchestration action execute-batch \
--action '{"kind":"connector","integrationSlug":"cargo","actionSlug":"enrichBusinessFirmographics"}' \
--records '[{"business_id":"<uuid>"},{"business_id":"<uuid>"}]' \
--wait-until-finished
```
### Pattern B — Multi-axis enrichment on a single company
Run several enrichBusiness* actions in parallel (each independent batch):
```bash
for slug in enrichBusinessFirmographics enrichBusinessFundingAndAcquisitions enrichBusinessTechnographics; do
cargo-ai orchestration action execute \
--action "$(jq -nc --arg s "$slug" '{kind:"connector",integrationSlug:"cargo",actionSlug:$s}')" \
--data '{"business_id":"<uuid>"}' \
--wait-until-finished &
done
wait
```
### Pattern C — Prospect events monitoring
```bash
# Get the last 30 days of events (job changes, posts) for a prospect
cargo-ai orchestration action execute \
--action '{"kind":"connector","integrationSlug":"cargo","actionSlug":"fetchProspectEvents"}' \
--data '{
"prospect_id":"<uuid>",
"event_types":["job_change","linkedin_post"],
"timestamp_from":"2026-03-27T00:00:00Z"
}' \
--wait-until-finished
```
## Common pitfalls
- **Always run `matchBusiness` / `matchProspect` first.** All other cargo enrichments take a `business_id` / `prospect_id`, not a domain or email. Skipping the match step → "missing required field" errors.
- **`matchBusiness` won't match every domain.** For generic names ("acme" without context), or very small / private companies, the match may return null. Use the fallback chain (waterfall → peopleDataLabs).
- **Don't run all 12 enrich actions per company.** Pick the 2–4 that map to your ICP signals. Running everything is 11 credits per company, mostly wasted.
- **Cost adds up at scale.** For 500 companies × 4 enrichments × 1 credit average = 2,000 credits. Sample on 10 first to validate the data is what you need before fanning out.
## Anti-patterns
- **Domains/emails where IDs are required.** Every `enrichBusiness*`/`enrichProspect*` action takes `business_id`/`prospect_id` from a prior `match*` call — passing `domain` or `email` directly is the most common cargo-native failure.
- **The "enrich everything" reflex.** 12 business enrich actions exist; a task needs 2–4. Pick by which ICP signal the task actually scores on, and name that choice in the plan's assumptions ([`../references/cost-discipline.md`](../references/cost-discipline.md) §1).
## Position in the waterfall
**First rung for all enrichment** (match + firmographics at 0.5 each is unbeatable when the company is in-catalog). Unmatched rows fall to `waterfall.enrich*`, then `peopleDataLabs.enrich*`. If `matchBusiness` misses heavily on the pilot (niche/SMB-heavy segments), demote cargo native and lead with waterfall for that batch.
## Recurring use
- **Scheduled monitor:** `fetchProspectEvents` / `fetchBusinessEvents` are the native signal feed — set `timestamp_from` to the previous run's timestamp so each pull bills only the new window (Pattern C). Cadence defaults: job changes → every 2 weeks, funding events → weekly ([`../recipes/save-as-play.md`](../recipes/save-as-play.md)).
- **In-play gate:** `matchBusiness` / `matchProspect` only where `business_id` / `prospect_id` is still empty — the matched ID is stable and never needs re-resolving; each `enrichBusiness*` / `enrichProspect*` node only where its own target columns are empty.
- **Stable firmographics:** `enrichBusiness*` output barely moves month to month — scheduled re-enrichment mostly re-bills unchanged data; reserve recurring pulls for the event actions above.
## Action shape
`{"kind":"connector","integrationSlug":"cargo","actionSlug":"<slug>"}`. **No `connectorUuid` in `config`** — single workspace connector resolves automatically.
SHA-256: f3834e578382400559041c6a6bb81d9b267cce2a45107e9692dba3a457d9dc1c