Companies hiring for a job search
The companies behind the jobs that match a job search, one row per company with its matching job count, organised as corporate groups (parent entity, subsidiaries, their subsidiaries). Costs one credit per company returned; parent entities without matching jobs of their own are free, and a company already paid for this calendar month is free.
Request
- Base URL: https://api.jobspipe.dev
- URL: https://api.jobspipe.dev/v1/jobs/companies
- Auth: HTTP bearer
Request body
Companies to return, 25 by default. Capped by your plan's page size.
Companies to skip (offset pagination, at most 10,000).
Page index (alternative to offset).
Populate metadata.total_results (otherwise null).
Match jobs whose title contains any of these.
Exclude jobs whose title contains any of these.
Match jobs whose description contains any of these (e.g. a skill or tech).
Exclude jobs whose description contains any of these.
Match any employment type: full-time, part-time, contract, temporary, internship.
Match postings WRITTEN in any of these languages, as lowercase ISO 639-1 codes, e.g. ["en"] or ["en","sv"]. This is the language of the posting text, not of the country: 18.3% of Swedish postings and 17.7% of German ones are in English, and Canada is 84.5% English with the rest French. Use it to fetch only the roles your team can actually read when hiring across a multilingual market. Postings we have not labelled never match - add include_unknown: ["language"] to keep them. Values that are not exactly two letters are ignored.
Exclude postings written in any of these languages, as lowercase ISO 639-1 codes, e.g. ["fr"]. Postings we have not labelled are kept, so this narrows by known language rather than requiring one.
Match any collector source/platform (OR). Job boards: linkedin, indeed, cvlibrary, resumelibrary, ycombinator, arbeitnow, himalayas, jobicy, themuse, remoteok, workingnomads, landingjobs, remotive, rise, bayt. Public employment services: eures, jobtech. ATS (company career sites): greenhouse, workday, ashby, lever, workable, recruitee, personio, smartrecruiters, breezy, paylocity, manatal, jobscore, teamtailor, pinpoint, hirehive. Case, spaces and punctuation are ignored ("CV-Library" = cvlibrary); aliases: yc for ycombinator, breezyhr for breezy. An unrecognized source matches nothing.
Exclude these collector sources. Same accepted values and aliases as source_or; an unrecognized source excludes nothing.
Match any of these ISO country codes, e.g. ["US","GB"].
Exclude these ISO country codes.
Match jobs whose city or region contains any of these, e.g. ["Seattle","WA"]. Metro wrappers are stripped ("Greater London" also matches London), and a US state, Canadian province or UK nation by name matches every spelling of it ("Pennsylvania" also matches PA). Terms of three characters or fewer are codes or exact names and match whole values (WA is Washington state, never Iowa); a country code or name matches the whole country. Combine with job_country_code_or to disambiguate same-named cities. For a city by name, city_or is the precise filter.
Whole city names, e.g. ["London","Munich"]. Case-insensitive, and a metro wrapper on the stored value is ignored ("Greater London" and "London Area" are London). Spellings and diacritics are normalised for cities we know: "München" finds Munich, "Cracow" finds Kraków. Other cities match the stored value exactly. Combine with job_country_code_or to disambiguate same-named cities; use job_location_or for substring matching.
Only postings newer than this many days.
Only postings on or after this date (YYYY-MM-DD).
Only postings on or before this date (YYYY-MM-DD).
Only postings first discovered by JobsPipe at or after this UTC datetime (YYYY-MM-DD HH:MM:SS). Tracks when we first saw the posting, not when it was posted; use it to poll for new jobs without re-reading the corpus.
Match any of these company names (exact).
Match any of these company names (partial).
Beta. Only jobs at companies whose postings show they use any of these technologies (evidence tier likely or confirmed), e.g. ["snowflake", "dbt"]. At most 10 slugs. Returns 400 until the filter is enabled for the API.
Only jobs at companies with at least this many employees. Uses the exact headcount where known, otherwise the lower bound of the company's size band.
Only jobs at companies with at most this many employees. Uses the exact headcount where known; a company known only by a size band matches when the band starts at or below this number.
Also return jobs at companies whose employee count is unknown. Size data covers roughly half the corpus, and min/max_employee_count exclude every unknown-size company by default.
Only jobs at companies whose estimated annual revenue, in US dollars, is at least this amount (the published revenue_usd). Companies with no revenue on record are excluded unless include_unknown contains "company_revenue".
Only jobs at companies whose estimated annual revenue, in US dollars, is at most this amount (the published revenue_usd). Companies with no revenue on record are excluded unless include_unknown contains "company_revenue".
Legal Entity Identifiers (ISO 17442). Matches jobs at a company with one of these LEIs or at any company in the corporate group the LEI heads. 1 to 50 LEIs of 20 letters and digits, e.g. ["5493001KJTIIGC8Y1R12"]; case is ignored, and a comma-separated string is accepted. Jobs at companies without a known LEI never match.
Company ids from the Companies endpoints (the key of a row of POST /v1/jobs/companies, or of a company profile). Matches only jobs at exactly these companies: unlike company_name_or, a name is never matched as a prefix, so Apple's id never brings in Apple Bank. 1 to 50 ids as strings of digits, e.g. ["14189461223778919517"]; a comma-separated string is accepted.
Only jobs at companies headquartered in one of these countries, as ISO 3166-1 alpha-2 codes, e.g. ["US","DE"]. This is where the company is based, not where the job is: combine with job_country_code_or for "German companies hiring in the US". Case is ignored and a comma-separated string is accepted. Companies with no known headquarters never match.
Only jobs at companies headquartered outside these countries (ISO 3166-1 alpha-2). Companies with no known headquarters never match.
Also return jobs whose employment type is unknown. About 27% of postings do not state one, and employment_type_or excludes every one of them by default.
Match any of these seniority levels.
Also return jobs whose seniority is unknown. About 55% of postings do not state a level, and job_seniority_or excludes every one of them by default.
Match jobs tagged with any of these skill slugs (e.g. ["python", "kubernetes"]). Skills are extracted from title + description against a curated lexicon.
Match any of these ISCO-08 occupation codes. 4-digit codes match exactly (e.g. "2512" Software Developers); 1-3 digit codes match as hierarchy prefixes (e.g. "25" = all ICT professionals).
Match employers in any of these ISIC Rev.4 industry divisions (2-digit, e.g. "62" Computer programming and consultancy).
US states and Canadian provinces as ISO 3166-2 codes, e.g. ["US-NY", "CA-ON"]. Qualified by country because the underlying column stores "CA" for California while "CA" is also Canada's country code. Matches every spelling a job board publishes, so "CA-ON" finds both "ON" and "Ontario".
Match only these employer types. "employer" hires for itself, "agency" is a staffing or recruitment firm posting for a client, "broker" is a job board republishing another company's listing. Selecting "employer" also returns jobs whose employer has not been classified yet.
Exclude these employer types. Unclassified employers are never excluded, so ["agency","broker"] returns direct employers plus jobs whose employer has not been classified yet - the same set as employer_type_or ["employer"].
true for remote-only, false to exclude remote.
Match any of "remote", "hybrid" or "onsite". Finer than remote, which answers false for hybrid and onsite alike. Jobs whose arrangement is unknown never match.
Filter by lifecycle: active (default, still open), closed, or any.
Match any of these visa stances, parsed from the posting text: "offers" (sponsorship available), "no" (explicitly not available), "citizenship_required" (citizenship or security clearance required). Jobs that say nothing never match.
Match jobs advertising any of these benefit slugs, e.g. ["401k", "health_insurance", "paid_time_off"] (any spelling: "health insurance" works too). Benefits come from structured board data (Indeed today), so coverage is partial; see metadata.field_coverage.
Match any of these US CBSA metro codes (e.g. "35620" New York). Resolved from the job's city/region; non-US jobs never match.
Only jobs with at most this many applicants. Applicant counts exist only where the source exposes them (LinkedIn), so this filter also drops every job without a count.
true for only jobs with a recruiter contact email parsed from the posting, false for only jobs without one.
Only jobs whose posted salary reaches this annual USD amount (the max of the posted range, annualized). Jobs without a posted salary never match; estimated salaries are not consulted.
Exclude jobs whose ghost-likelihood score (0-100) exceeds this. Unscored jobs always pass: the filter drops known-likely ghost jobs, it does not require a score.
Match jobs tagged with any of these ESCO skill concept IDs (exact match). See each job's esco_skills for the id/label pairs.
Also match jobs whose value is UNKNOWN for these fields, e.g. ["seniority", "location"]. Without it every filter drops unknowns: a job with no seniority never matches job_seniority_or. "location" widens region_or within each subdivision's country, and job_location_or only when job_country_code_or is set. include_unknown_size, include_unlabeled_seniority and include_unlabeled_employment_type are aliases of "company_size", "seniority" and "employment_type".
Only jobs seen on their source (or re-written) within this many days. Active jobs are closed when a re-check finds them gone, and re-checks take time; this drops the ones we have not confirmed recently.
Opaque cursor from metadata.next_cursor to fetch the next page.
Sort the companies by matching jobs (default), by their newest matching posting, or by employee count.
A group's LEI from a previous response: returns only the companies in that group's subtree, as its children.
Only companies with a verified company profile. Leaves out job boards and aggregators that post jobs under their own name. Off by default.
Response
A page of companies, as a tree
Changes
No recorded changes to this operation across all 1 revision of this API.