Enrich a List of Companies by Domain: Industry, Headcount, Location, Founding Year
To enrich a go-to-market list of company domains with industry, headcount, location, founding year and LinkedIn page, run one Cargo batch call with aiArk.enrichCompany over the domains (0.01 credits per company found, 0 on a miss), then send only the domains it missed to a second provider.
No AI Ark, Apollo or People Data Labs account is needed: Cargo calls each provider on its own key and bills credits. The steps below use the Cargo CLI, so a coding agent can run them end to end, and they are what the enrich-company-data skill does.
What 2.4M company lookups show #
Cargo platform data, 90 days to Oct 16 2026:
| Measure | Value |
|---|---|
| Company enrichment runs | 2,454,228 |
| Workspaces running them | 210 |
| Runs that returned a company | 91.6% |
| Runs that found nothing and were charged | 0 credits on 99.8% of those |
That is more runs than email verification or person enrichment over the same 90 days.
The actions and what they cost #
Each price is the list price in credits from the action’s definition in Cargo’s code, charged only when the action returns a company.
| Action | Credits per company found | Input |
|---|---|---|
aiArk.enrichCompany | 0.01 | domain, or linkedinUrl (company page) |
companyEnrich.enrichByDomain | 0.25 | domain |
linkedin.enrichCompanyFromDomain | 0.5 | domain |
apolloio.enrichOrganization | 1 | domain, or linkedin_url, name or website |
peopleDataLabs.enrichCompany | 3 | parameters.website, or other parameters such as name |
At 0.01 credits, 1,000 companies found on AI Ark cost 10 credits. A new account starts with 100 free credits and no card.
Run it #
1. Install and sign in
npm install -g @cargo-ai/cli
cargo-ai login --email you@company.com # sends a code
cargo-ai login --email you@company.com --code 123456 # creates the account on first use
There is no browser step, so a coding agent can run this itself.
2. Pilot on 5 rows
--limit 5 submits only the first five records, so you can read the output and the cost before the full run.
cargo-ai orchestration action execute-batch \
--action '{"kind":"connector","integrationSlug":"aiArk","actionSlug":"enrichCompany"}' \
--records '[{"domain":"acme.com"},{"domain":"globex.com"}]' \
--limit 5 --wait-until-finished
The examples on this page leave out the connectorUuid an action object may carry, in which case Cargo uses the workspace’s default connector for that provider. cargo-ai orchestration action list enrich company shows the action objects and their prices without running anything.
3. Run the full list, then fill the gaps
Drop --limit to run every domain. Download the results with cargo-ai orchestration batch download --uuid <batch uuid>, keep the domains that came back empty, and send only those to the next provider:
cargo-ai orchestration action execute-batch \
--action '{"kind":"connector","integrationSlug":"linkedin","actionSlug":"enrichCompanyFromDomain"}' \
--records "$(cat misses.json)" \
--wait-until-finished
companyEnrich.enrichByDomain and linkedin.enrichCompanyFromDomain take the same {"domain": "..."} record. People Data Labs nests its input: {"parameters": {"website": "acme.com"}}. Never send the full list to every provider: a second provider charges again for a company already enriched.
What comes back #
The firmographic fields, and where each action puts them:
| Field | aiArk.enrichCompany | companyEnrich.enrichByDomain | linkedin.enrichCompanyFromDomain | apolloio.enrichOrganization |
|---|---|---|---|---|
| Name | name | name | company_name | organization.name |
| Industry | industry, industries[] | industry, industries[] | industries[] | organization.industry |
| Headcount | employee_count | employees (a range) | employee_count, employee_range | organization.estimated_num_employees |
| Location | city, state, country | location.city.name, location.country.name | hq_city, hq_region, hq_country | organization.city, organization.country |
| Founding year | founded_year | founded_year | year_founded | organization.founded_year |
| LinkedIn page | linkedin_url | socials.linkedin_url | linkedin_url | organization.linkedin_url |
| Also | revenue, technologies[], naics[] | revenue, technologies[], financial.total_funding | follower_count, specialties, funding_info | organization.organization_revenue_printed, organization.naics_codes[] |
peopleDataLabs.enrichCompany returns name, industry, size, employee_count, founded, location.locality, location.country, linkedin_url and inferred_revenue.
A domain with no match comes back with no data and is not charged. cargo-ai orchestration action get-output-schema --action '<action object>' prints any action’s output schema without running it.
Keep it running #
A one-off list is a batch call. To keep a CRM’s accounts filled as they arrive, the crm-enrichment cookbook deploys the account path as a play, with linkedin.enrichCompanyFromDomain as its domain route. To build the list of accounts in the first place, see the tam-building cookbook.
Once the companies are enriched, turn LinkedIn profile URLs into person profiles and work emails for the people at them.
Frequently asked questions #
No. A company enrichment action that finds no company returns no data, and no credits are charged. In Cargo platform data for the 90 days to Oct 16 2026, 99.8% of company enrichment runs that found nothing were charged 0 credits.
The cheapest one, then the next only on its misses. aiArk.enrichCompany costs 0.01 credits per company found, so a full first pass over 10,000 domains costs at most 100 credits, and the pricier providers only see the gaps.
No. Unless you connect your own key, Cargo calls the provider on Cargo’s key and bills the action’s credits. If you already pay Apollo or People Data Labs, you can connect your key instead.