Search job postings
Search job postings across companies. Results are grouped by company, newest postings first, and include only the postings that match (up to 10 per company).
Costs 1 discovery per company returned that isn't already paid for this billing month. That covers all of that
company's postings: listing them with GET /companies/{company}/job-postings is then free.
bearerAuthAuthorizationBearer <token>Your API key, sent as Authorization: Bearer <key>. Create keys in the dashboard.
application/json- body
title?stringText to match in job titles.
length <= 200normalized_titles?array<string>job_functions?array<string>Values from /values/job_functions.
seniorities?array<string>Values from /values/job_seniorities.
workplace_types?array<>employment_types?array<string>job_countries?array<string>Countries where the job is located (ISO alpha-2).
job_locations?array<string>Job locations from /values/cities.
salary?Salary range, in salary_currency.
salary_currency?stringISO currency code for salary, for example USD. Only postings with a salary in this currency match; amounts are not converted.
3 <= length <= 3technologies?array<string>Technologies mentioned in the posting.
visa_sponsorship?booleanposted_within_days?integer1 <= value <= 365status?stringopen (default), closed or all. Closed postings stay available, with closed_on set.
"open""open""closed""all"company?Filters shared by search, count, similar, page search and job search. Different filters are combined with AND. Inside one list, values match if the company has any of them, unless the filter has an *_operator (then the default is and: the company must have all of them).
limit?integerCompanies per page.
1 <= value <= 10025cursor?stringJob postings grouped by company.
application/json- response
results*array<>next_cursor*|Pass as cursor to get the next page. null when there are no more results.
usage*What this request cost and what is left this billing month.
curl -X POST 'https://api.companyspec.com/v1/job-postings/search' \ -H 'Content-Type: application/json' \ -d '{ "title": "data engineer", "technologies": [ "snowflake" ], "posted_within_days": 30, "job_countries": [ "GB" ], "limit": 20}'{ "results": [ { "company": { "id": "cmp_7tw3e", "domain": "ledgerly.co.uk", "name": "Ledgerly", "logo_url": null }, "job_postings": [ { "id": "job_k21m9", "title": "Data Engineer", "job_function": "engineering", "seniority": "mid", "workplace_type": "hybrid", "locations": [ "London, United Kingdom" ], "posted_on": "2026-10-28", "status": "open" } ] } ], "next_cursor": null, "usage": { "charged": { "lookups": 0, "discoveries": 1 }, "already_paid": 0, "remaining": { "lookups": 9750, "discoveries": 1976 } }}