> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getcargo.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Cargo

> Source, match, enrich, and monitor businesses and prospects with Cargo's native B2B data.

Cargo ships with a built-in **Cargo** data connector — a managed B2B dataset of companies and people you can use directly inside any workflow. Use it to source target lists, match inbound records against firmographic data, enrich businesses and prospects across 13+ dimensions (firmographics, technographics, financials, hiring trends, intent, and more), and listen in real time for buying signals like funding rounds, role changes, or new product launches.

<Info>
  Because the Cargo connector is built into the platform, there is **nothing to
  authenticate** — usage is metered in [Cargo
  credits](/get-started/purchase-credits).
</Info>

## How to set up Cargo

The Cargo connector is available in every workspace by default. To use it:

<Steps>
  <Step title="Add the connector">
    Open **Settings → Integrations**, click **Add connection**, and select
    **Cargo**. No API key is required.
  </Step>

  <Step title="Use it in a workflow">
    Choose **Cargo** from the node catalog inside a **Play**, **Tool**, or
    **Agent**, then pick one of the actions or extractors below.
  </Step>
</Steps>

<Tip>
  Cargo actions are credit-metered (see the [credits
  overview](/get-started/purchase-credits)). Caching is enabled, so re-running
  an action on the same input will not consume additional credits.
</Tip>

***

## Concepts

The Cargo dataset is organised around two core entities, each identified by a stable ID returned by the matching/sourcing actions:

| Entity       | ID            | What it represents                                                                 |
| ------------ | ------------- | ---------------------------------------------------------------------------------- |
| **Business** | `business_id` | A company record (domain, firmographics, technographics, hiring, intent, events…). |
| **Prospect** | `prospect_id` | A person record (LinkedIn profile, role, contact info, career events…).            |

The typical flow is:

1. **Match** an inbound record (domain, email, LinkedIn URL, name) → get a `business_id` or `prospect_id`.
2. **Enrich** that ID with one or more enrichment actions to pull in firmographics, technographics, funding, intent, etc.
3. **Listen** for events on the matched record to trigger Plays when something changes.

Alternatively, use **Fetch** actions and extractors to **source** new businesses or prospects from scratch based on ICP filters.

***

## Sourcing actions

Use these actions to discover new accounts and contacts that match your ICP.

### Fetch businesses

Search the Cargo dataset for companies that match a set of ICP filters and return up to 100 matches. Useful inside Plays or Agents that need to dynamically pull a working list.

**Configuration**

| Field                                  | Description                                              |
| -------------------------------------- | -------------------------------------------------------- |
| **Country code**                       | Filter by country (e.g. `US`, `GB`, `FR`)                |
| **Region country code**                | Filter by region + country (e.g. `CA-US`)                |
| **City region country**                | Filter by city, region, country                          |
| **Company size**                       | Headcount band (`1-10`, `11-50`, …, `10001+`)            |
| **Company revenue**                    | Revenue band (`0-500K`, `500K-1M`, …, `10T+`)            |
| **Company age**                        | Years in business (`0-3`, `3-6`, `6-10`, `10-20`, `20+`) |
| **Number of locations**                | Physical location count                                  |
| **Google / NAICS / LinkedIn category** | Industry classifications                                 |
| **Company tech stack tech / category** | Specific technologies or stack categories                |
| **Website keywords**                   | Keywords found on the company website                    |
| **Company name**                       | Filter by name                                           |
| **Limit**                              | Records to return (1–100, default 25)                    |

<Tip>
  For larger sourcing jobs that should feed a **Model**, use the [Fetch
  businesses extractor](#fetch-businesses-extractor) instead — it paginates
  through up to 60,000 records.
</Tip>

### Fetch prospects

Search the Cargo dataset for people matching a set of ICP filters and return up to 100 prospects.

**Configuration**

| Field                                  | Description                                              |
| -------------------------------------- | -------------------------------------------------------- |
| **Business ID**                        | Restrict to prospects at specific companies              |
| **Job level**                          | Seniority (`C-Level`, `VP`, `Director`, …)               |
| **Job department**                     | Department (Engineering, Sales, Marketing, …)            |
| **Job title**                          | Free-form title filter                                   |
| **Country / region / city**            | Prospect location filters                                |
| **Company country / region**           | Company location filters                                 |
| **Company size / revenue**             | Firmographic filters on the prospect's company           |
| **Company name**                       | Filter by company name                                   |
| **Google / NAICS / LinkedIn category** | Industry filters on the prospect's company               |
| **Total experience months**            | Range filter (`gte` / `lte`) for total career experience |
| **Current role months**                | Range filter for tenure in current role                  |
| **Has email**                          | Only prospects with a known email                        |
| **Has phone number**                   | Only prospects with a known phone number                 |
| **Limit**                              | Records to return (1–100, default 25)                    |

### Fetch business statistics

Return aggregate counts (total companies, by size, by industry, by tech stack, etc.) for any combination of the same firmographic filters used in **Fetch businesses**. Useful to size a market before sourcing.

***

## Matching actions

Use matching actions to resolve external records into Cargo IDs so you can chain enrichment actions.

### Match business

Find a `business_id` from a company name and/or domain.

**Configuration**

| Field      | Description                                            |
| ---------- | ------------------------------------------------------ |
| **Name**   | Company name to match (optional if domain is provided) |
| **Domain** | Company domain/website (optional if name is provided)  |

Returns `✅ Match` with the matched business object, or `❌ No match` when no record was found.

### Match prospect

Find a `prospect_id` from any combination of identifiers.

**Configuration**

| Field            | Description                     |
| ---------------- | ------------------------------- |
| **Email**        | Prospect's email                |
| **Phone number** | Prospect's phone number         |
| **Full name**    | Prospect's full name            |
| **Company name** | Helps disambiguate common names |
| **LinkedIn URL** | Prospect's LinkedIn profile URL |

<Tip>
  Provide as many identifiers as you have — match accuracy increases with more
  signals. LinkedIn URL is the strongest single signal.
</Tip>

***

## Business enrichment actions

All business enrichment actions take a `business_id` (from [Match business](#match-business) or [Fetch businesses](#fetch-businesses)) and return the corresponding enrichment payload.

| Action                                       | What it returns                                           |
| -------------------------------------------- | --------------------------------------------------------- |
| **Enrich business firmographics**            | Headcount, revenue, location, industry codes, description |
| **Enrich business technographics**           | Technologies in the company's stack, by category          |
| **Enrich business financial metrics**        | Public financial metrics (revenue, growth, etc.)          |
| **Enrich business funding and acquisitions** | Funding rounds, investors, M\&A history                   |
| **Enrich business workforce trends**         | Hiring/attrition signals by department                    |
| **Enrich business ratings by employees**     | Glassdoor-style employee sentiment                        |
| **Enrich business strategic insights**       | AI-generated company strategy summary                     |
| **Enrich business challenges**               | Top business challenges and pain points                   |
| **Enrich business competitive landscape**    | Competitors and category positioning                      |
| **Enrich business LinkedIn posts**           | Recent posts from the company page                        |
| **Enrich business website keywords**         | Keywords / SEO terms ranked on the company site           |
| **Enrich business website changes**          | Recent changes detected on the company website            |
| **Enrich business Bombora intent topics**    | Bombora B2B research intent surge data                    |

**Enrich business Bombora intent topics** also accepts:

| Field             | Description                                                                     |
| ----------------- | ------------------------------------------------------------------------------- |
| **Intent topics** | List of `category: topic` filters. Include ≥ 12 topics for meaningful coverage. |
| **Minimum score** | Minimum composite intent score threshold (must be > 60, default 60).            |

***

## Prospect enrichment actions

All prospect enrichment actions take a `prospect_id` (from [Match prospect](#match-prospect) or [Fetch prospects](#fetch-prospects)).

| Action                               | What it returns                                              |
| ------------------------------------ | ------------------------------------------------------------ |
| **Enrich prospect details**          | Contact info (emails, phone numbers) for the prospect        |
| **Enrich prospect LinkedIn profile** | Structured LinkedIn profile (experience, education, skills…) |
| **Enrich prospect LinkedIn posts**   | Recent posts and reactions from the prospect's profile       |

***

## Event actions

Pull historical signals on demand for a single business or prospect.

### Fetch business events

Return business events that happened on or after a given timestamp.

**Configuration**

| Field              | Description                                                                     |
| ------------------ | ------------------------------------------------------------------------------- |
| **Business ID**    | The business to fetch events for                                                |
| **Event types**    | One or more event types (see [Business event types](#business-event-types))     |
| **Timestamp from** | ISO 8601 timestamp — only events from this date onwards are returned (optional) |

### Fetch prospect events

Same as above, scoped to a prospect.

**Configuration**

| Field              | Description                                                                           |
| ------------------ | ------------------------------------------------------------------------------------- |
| **Prospect ID**    | The prospect to fetch events for                                                      |
| **Event types**    | `prospect_changed_role`, `prospect_changed_company`, `prospect_job_start_anniversary` |
| **Timestamp from** | ISO 8601 timestamp (optional)                                                         |

***

## Extractors

Extractors sync data from Cargo into a **Model**, where it can power Plays, segments, and CRM syncs. They come in two flavours:

* **Fetch** extractors run paginated, on-demand pulls of records that match a filter.
* **Listen** extractors enroll a set of records and stream **new events** into the model in real time.

### Fetch businesses extractor

Bulk-pulls businesses into a Model using the same ICP filters as the [Fetch businesses](#fetch-businesses) action, but paginates up to **60,000 records** per run (page size 500).

The output model is keyed on `business_id` and exposes the following columns:

`business_id`, `name`, `domain`, `logo`, `country_name`, `city_name`, `number_of_employees_range`, `yearly_revenue_range`, `website`, `business_description`, `region`, `naics`, `naics_description`, `sic_code`, `sic_code_description`, `business_intent_topics`, `events`, `linkedin_profile`.

### Fetch prospects extractor

Same pattern as **Fetch businesses extractor**, applied to prospects.

### Listen business events

Enroll a set of businesses (sourced from a Model column of LinkedIn company URLs or domains) and **continuously ingest** business events into Cargo as they happen. Each new event becomes a record in the destination Model and is unified onto the matching account.

**Configuration**

| Field                             | Description                                                          |
| --------------------------------- | -------------------------------------------------------------------- |
| **Event types**                   | One or more [business event types](#business-event-types) to monitor |
| **Model**                         | Model that contains the businesses to enroll                         |
| **LinkedIn URL or domain column** | Column on the model containing LinkedIn company URLs or domains      |
| **Filter / Sort**                 | Optional model filter/sort to narrow which records get enrolled      |
| **Limit**                         | Max businesses to enroll (default 1,000, max 10,000)                 |

Each ingested event is materialised as a row with `event_id`, `event_name`, `event_time`, `business_id`, `domain`, `linkedin_company_url`, and an `event_data` object containing the structured event payload.

<Info>
  Listen extractors auto-ingest in the background. Update the Model filter or
  the column slug at any time — the enrolled set is reconciled automatically.
</Info>

### Listen prospect events

Same pattern, scoped to prospects. Enroll a set of prospects from a Model column of LinkedIn profile URLs and stream `prospect_changed_role`, `prospect_changed_company`, and `prospect_job_start_anniversary` events into a Model in real time.

***

## Reference

### Business event types

The following event types are available for **Fetch business events** and **Listen business events**:

**Funding & corporate**

* `ipo_announcement`
* `new_funding_round`
* `new_investment`
* `new_product`
* `new_office`
* `closing_office`
* `new_partnership`

**Department growth / contraction**

* `increase_in_engineering_department` (and similar for `sales`, `marketing`, `operations`, `customer_service`, `all_departments`)
* `decrease_in_engineering_department` (and similar for the same departments)

**Hiring signals**

* `employee_joined_company`
* `hiring_in_engineering_department` (and similar for `creative`, `education`, `finance`, `health`, `human_resources`, `legal`, `marketing`, `operations`, `professional_service`, `sales`, `support`, `trade`, `unknown` departments)

### Prospect event types

* `prospect_changed_role`
* `prospect_changed_company`
* `prospect_job_start_anniversary`

***

## Use cases

<AccordionGroup>
  <Accordion title="ICP sourcing" icon="bullseye">
    Use the **Fetch businesses extractor** with firmographic + technographic
    filters to build a working list, then enrich each row with firmographics,
    technographics, and intent data to score against your ICP.
  </Accordion>

  <Accordion title="Inbound lead enrichment" icon="inbox">
    On every new lead, **Match business** on the email domain to get a
    `business_id`, then chain **Enrich business firmographics** and **Enrich
    business funding and acquisitions** to push enriched fields into your CRM.
  </Accordion>

  <Accordion title="Job change tracking" icon="user-tag">
    Enroll your CRM contacts into **Listen prospect events** with event type
    `prospect_changed_role` or `prospect_changed_company` to surface job-change
    signals into a Play that pings the new account.
  </Accordion>

  <Accordion title="Funding signals" icon="sack-dollar">
    Enroll target accounts into **Listen business events** with `new_funding_round`
    and `new_investment` to trigger outreach the moment a target raises capital.
  </Accordion>

  <Accordion title="Hiring intent" icon="user-plus">
    Use **Listen business events** with `hiring_in_*` event types to detect
    accounts ramping up specific teams — a strong signal for tooling sales.
  </Accordion>

  <Accordion title="Intent-based outreach" icon="signal-stream">
    Combine **Enrich business Bombora intent topics** with the **Bombora**
    intent surge dataset to prioritise accounts actively researching your
    category.
  </Accordion>
</AccordionGroup>

***

## Best practices

1. **Match before you enrich.** Every enrichment action requires a `business_id` or `prospect_id`. Cache the match output on the model so subsequent enrichment runs are free.
2. **Batch with extractors.** Use the Fetch *extractors* (not the Fetch *actions*) when you need more than 100 records — they paginate to 60,000.
3. **Pick the right event surface.** Use **Fetch business/prospect events** for ad-hoc lookups; use **Listen business/prospect events** when you want a Play to react to new signals automatically.
4. **Be specific with intent topics.** Bombora intent works best when you supply 12+ topics in the same category — fewer than that produces noisy scores.
5. **Caching is on by default.** Identical inputs (same `business_id`, same filter set) won't be re-billed within the caching window — design your workflows to lean on idempotent inputs.
