v1

latestOpenAPI 3.1.02026-07-22103475.9 KB
Company Search

Search Companies By Tech Stack

Returns companies whose recent job postings mention a given technology.

<Info>No API key yet? Sign up via Agent Auth to get your X-API-Key - the only required header for this endpoint.</Info>

Results are ranked by matching post count and paginated 50 per page; walk pages with ?page=1, ?page=2, ... using has_more. Well-known LinkedIn job aggregators (jobs-via-*, lensa, ziprecruiter, etc.) are excluded by default.

Set enrich=true to hydrate each hit with firmographics (employee count, HQ, website, LinkedIn, industries, funding, revenue). The firmographic filters (hq_country_code, min_employee_count, max_employee_count) auto-enable enrichment, so you don't need to set both.

Credits: charged per company returned. The exact amount charged is returned in credits_consumed on every response.

Example - US-HQ companies of 1,000+ employees hiring with Snowflake: GET /api/v2/tech/companies?tech=Snowflake&hq_country_code=USA&min_employee_count=1000

get/api/v2/tech/companies

Query parameters

techstring required

Technology to search for in job descriptions (e.g. 'Snowflake', 'Kubernetes').

variationsstring[]

Optional alternate phrasings (e.g. 'Snowflake Data Cloud'). Each is OR-matched as a phrase.

lookback_daysinteger

Lookback window in days (1–365). Defaults to a full year so coverage estimates aren't artificially clipped; narrow this for recency-sensitive queries.

pageinteger

1-indexed page number. Page size is fixed at 50. Walk pages with has_more. Sanity-bounded at 1,000 pages (50,000 results) - the long tail is rarely useful for ICP discovery. When firmographic filters are set, the addressable pool reflects the filtered set.

exclude_vendorboolean

When true (default), excludes job posts from the vendor of the technology being searched (e.g. searching Snowflake won't return Snowflake's own job posts). Set false to include the vendor.

exclude_aggregatorsboolean

Exclude well-known LinkedIn job aggregators and reposters (jobs-via-*, get-it-recruit-*, lensa, jobot, ziprecruiter, clearancejobs, cybercoders, etc.) which otherwise dominate raw counts without representing actual tech adopters. ON by default.

exclude_company_slugsstring[]

Additional LinkedIn company slugs to exclude on top of the default aggregator block-list. Useful for blocking consultancies (deloitte, pwc, accenture), the caller's own company, or known competitors.

include_evidenceboolean

Include one top-hit job per company with a highlighted snippet showing the tech phrase in context. Set false for the leanest payload (~6× faster).

enrichboolean

When true, hydrates each company on this page with firmographics: employee count, website, LinkedIn URL, HQ, industries, funding, and revenue. Adds ~150–200ms per page. Auto-enabled when any of hq_country_code, min_employee_count, or max_employee_count is set.

hq_country_codestring nullable

Filter by company HQ ISO 3166-1 alpha-3 code (e.g. USA, GBR, IND, DEU). Top 30 by company volume: USA, GBR, CHN, FRA, IND, DEU, BRA, BEL, ESP, CAN, AUS, NLD, ITA, NOR, ZAF, MEX, TUR, CHE, ARE, POL, SWE, IDN, ARG, PAK, COL, PRT, JPN, CHL, NGA, AUT. Full list of 250 codes via GET /api/v2/tech/country-options (under Agent Helpers). Auto-enables enrich. Companies missing a country code are dropped from the page when this filter is active.

min_employee_countinteger nullable

Inclusive lower bound on company employee count. Auto-enables enrich. Companies with no employee count are dropped when this filter is active.

max_employee_countinteger nullable

Inclusive upper bound on company employee count. Auto-enables enrich. Companies with no employee count are dropped when this filter is active.

Headers

X-API-Keystring required

Response

Successful Response

techstring required

The technology phrase searched.

variationsstring[]

Alternate phrasings that were OR-matched alongside tech.

lookback_daysinteger required

Lookback window applied to the search, in days.

pageinteger required

1-indexed page number returned.

page_sizeinteger required

Items per page. Fixed at 50.

total_resultsinteger required

Size of the addressable result set this page slices from. Without firmographic filters: bounded by the 50,000-result sanity cap (1,000 pages × 50). With filters: equals the size of the filtered set after firmographic hydration, which is what has_more and page indexing are computed against.

has_moreboolean required

True when at least one more page is available (page * page_size < total_results). Loop while this is true to walk the full result set.

total_companies_matchedinteger required

Approximate total distinct companies whose recent job postings match the search, BEFORE firmographic filters are applied. Compare with total_results to see how aggressively your filters narrowed the result.

credits_consumedinteger

Credits charged for this response. Computed as companies_returned × per-company-cost: 5 credits per company without enrichment, 10 credits per company with enrichment (or any firmographic filter set). The charge is recorded in the background after the response is sent, so it never adds to your request latency.

latency_msinteger

End-to-end request latency including cache lookup, OS, CH, and serialization.