Your GTM belongs in gitRegister
Blog

Find B2B Leads by Job Title, Company and Keyword

16 Oct
6min read

To find B2B leads for a go-to-market list by job title, company and keyword, run Cargo’s salesNavigator.searchLeads action with your title keywords, seniority, company size, industry and location filters. It returns each lead’s name, current title, company and LinkedIn URL at 0.2 credits per lead, and you do not need your own Sales Navigator seat.

For the lowest price per lead, aiArk.searchPeople runs the same kind of search at 0.05 credits per person returned. Both are the find-b2b-leads job; this page is the full command reference.

Usage and prices #

Cargo platform data, 90 days to Oct 16 2026: salesNavigator.searchLeads ran about 908,000 times across 139 workspaces.

What each source costs, from each action’s credit definition:

ActionCreditsCharged onAccount needed
salesNavigator.searchLeads0.2each lead returnednone (optional: your own LinkedIn)
aiArk.searchPeople0.05each person returnednone (optional: your AI Ark key)
apolloio.searchPeople0, or 1 with shouldEnricheach person, when enrichingnone (optional: your Apollo key)

A search that returns nobody costs 0 credits. A new account starts with 100 free credits and no card, which covers 500 Sales Navigator leads or 2,000 from AI Ark.

What the Sales Navigator search needs #

No Sales Navigator subscription and no LinkedIn login. By default the search runs on a shared pool of LinkedIn identities that Cargo operates, metered by a daily per-workspace quota on a rolling 24-hour window. If you want it to run on your own seat instead, sync your LinkedIn session with the Cargo Chrome extension and pass that user in identityIds; the run then spends that seat’s allowance and not the pool’s.

Run it #

1. Install and sign in

shellscript
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.

VPs and directors with “Sales” in their current title, at software companies of 51 to 500 people, located in the United States:

shellscript
cargo-ai orchestration action execute \
  --action '{"kind":"connector","integrationSlug":"salesNavigator","actionSlug":"searchLeads"}' \
  --data '{
    "role": {"titleKeywords": ["Sales"], "seniorityLevels": ["300", "220"]},
    "company": {"companyHeadcounts": ["D", "E"]},
    "personal": {"geoCodes": ["103644278"], "industryCodes": ["4"]},
    "limit": 25
  }' \
  --wait-until-finished

keywords adds a free-text search across the whole profile, for a word that is not in the title (a tool, a market, a technology). limit defaults to 25 and goes up to 10,000. Start at 25: that is one page, 5 credits, and enough to check the filters do what you meant before paying for the rest.

3. Filters take LinkedIn IDs, not names

Seniority, headcount, location, industry and function are LinkedIn’s codes. A name in their place is not translated. The common ones:

FilterValue
role.seniorityLevels310 CXO, 300 Vice President, 220 Director, 210 Experienced Manager
company.companyHeadcountsC 11-50, D 51-200, E 201-500, F 501-1,000, G 1,001-5,000
personal.geoCodes103644278 United States
personal.industryCodes4 Software Development
role.functions25 Sales

For the full lists, run the connector’s autocomplete with the listGeoCodes, listIndustries, listSeniorityLevels, listCompanyHeadcounts or listFunctions slug. The connector UUID is in the connectors field of cargo-ai orchestration action list search leads --integration-slug salesNavigator:

shellscript
cargo-ai connection connector autocomplete \
  --connector-uuid <uuid> --slug listGeoCodes --params '{}'

Most filters also have an ...Exclude twin (titleKeywordsExclude, geoCodesExclude, currentCompanyIdsExclude) to remove matches, and recentUpdates.changedJobs keeps only people who recently changed jobs.

4. The same search on AI Ark

AI Ark filters take plain values instead of IDs:

shellscript
cargo-ai orchestration action execute \
  --action '{"kind":"connector","integrationSlug":"aiArk","actionSlug":"searchPeople"}' \
  --data '{
    "jobRole": {"title_or": ["VP Sales", "Director of Sales"], "seniority_or": ["vp", "director"]},
    "industry": {"industry_or": ["software development"]},
    "employeeSize": {"min_employee_count": 51, "max_employee_count": 500},
    "personLocation": {"location_or": ["United States"]},
    "limit": 25
  }' \
  --wait-until-finished

personKeywords.keyword_or is the free-text keyword filter, matched on headline and summary by default. Seniority and industry values must come from AI Ark’s lists (lowercase, such as c_suite, vp, director, head); a value outside them fails validation. limit defaults to 10 and goes up to 2,000.

What comes back #

ActionFields to read
salesNavigator.searchLeadsfull_name, job_title, company_name, location, linkedin_profile_url, sales_navigator_profile_url, tenure_start, recently_hired
aiArk.searchPeoplefull_name, title, headline, linkedin_url, company_name, company_domain, country, city
apolloio.searchPeoplefirst_name, last_name_obfuscated, title, has_email, organization.name, unless shouldEnrich is on

Apollo’s search is free but partial by design: the last name is obfuscated and there is no LinkedIn URL until you enrich, at 1 credit per person.

None of these return emails or phone numbers. Pass the LinkedIn URLs to enrich a LinkedIn profile, or names and domains to the work email waterfall.

Caveats #

  • Over 2,500 results. LinkedIn caps a single Sales Navigator search at 2,500 results. Above that, Cargo splits the search into narrower sub-searches and walks them, so a large limit still returns distinct leads, but the count can come in under it.
  • No duplicates within a run. Leads already returned earlier in the same run are dropped from later pages.
  • Profiles, not consent. A search result is a person who matches your filters. Whether you may contact them depends on your basis for doing so and your suppression list, not on the search.

Frequently asked questions #

AurelienOct 16, 2026

Give your agents a runtime

Bring the agents you have.Start free, deploy in one command.