Search Companies By Tech Stack
X-API-Key and X-User-ID — both required headers for this endpoint.Returns companies whose recent job postings mention a given technology.
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. 5 credits per company without enrichment, 10 credits per company with enrichment (or any firmographic filter set). A full page therefore costs up to 250 credits unenriched, 500 enriched. 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
Documentation Index
Fetch the complete documentation index at: https://docs.openfunnel.dev/llms.txt
Use this file to discover all available pages before exploring further.
Query Parameters
Technology to search for in job descriptions (e.g. 'Snowflake', 'Kubernetes').
1 - 128Optional alternate phrasings (e.g. 'Snowflake Data Cloud'). Each is OR-matched as a phrase.
Lookback window in days (1–365). Defaults to a full year so coverage estimates aren't artificially clipped; narrow this for recency-sensitive queries.
1 <= x <= 3651-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.
1 <= x <= 1000When 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 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.
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 one top-hit job per company with a highlighted snippet showing the tech phrase in context. Set false for the leanest payload (~6× faster).
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.
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. Auto-enables enrich. Companies missing a country code are dropped from the page when this filter is active.
3Inclusive lower bound on company employee count. Auto-enables enrich. Companies with no employee count are dropped when this filter is active.
x >= 0Inclusive upper bound on company employee count. Auto-enables enrich. Companies with no employee count are dropped when this filter is active.
x >= 0Response
Successful Response
One page of companies that mention a tech in recent job postings. Companies are ranked by post_count descending; firmographics are populated when enrich=true or when any firmographic filter is set.
The technology phrase searched.
Lookback window applied to the search, in days.
1-indexed page number returned.
Items per page. Fixed at 50.
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.
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.
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.
The ranked companies on this page.
Alternate phrasings that were OR-matched alongside tech.
Echo of the firmographic filters that produced this page.
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.
True if this exact page was served from the response cache.
Server-side time spent ranking companies for this query, in ms. 0 if the response was served from cache.
Server-side time spent hydrating firmographics for this page, in ms. 0 when enrich=false or the response was served from cache.
End-to-end request latency including cache lookup, OS, CH, and serialization.