search
Search open jobs by keyword and facet filters to retrieve full job descriptions, companies, locations, and total match counts for screening result sets without individual job lookups.
Instructions
Search open jobs by keyword with optional facet filters. Each result carries the job's FULL description as markdown alongside title, company, location and public_slug, plus the total match count — so you can screen a whole result set without calling job per hit. Use the returned slug with job, apply, save, etc. How to search well: a role has several names, so join two or three in one query with an uppercase OR, e.g. title:SRE OR title:"site reliability". Location, work mode, seniority and skills go in their filters, never in the query. If suspiciously few results come back, loosen one constraint at a time and say which. Present results as a table of title, company, location, posted date and link, naming the source. Two traps worth knowing. Geography (region/country/city) is ONE OR-group: passing region AND country widens rather than narrows, so drop the region to search a single country. And a filter param the API does not recognize is ignored rather than refused — the search still runs, just broader — so when a result carries an ignored list, its total answers a wider question than the one asked; retry with the suggested name before reporting the number. A value the API does not recognise (a misspelt skill, say) is reported in ignored_values and matches nothing — a total of 0 beside it is a typo, not an empty market: take the right value from list_filter_values and retry.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | City slugs. ORs with region and country. | |
| role | No | Role facet values, e.g. senior_backend. | |
| visa | No | Only jobs offering visa sponsorship. | |
| limit | No | Max results to return. Each result includes a full job description, so prefer a modest value. | |
| query | Yes | Free text over title, company, description and location. Empty string matches all. Operators: double quotes require every quoted word; -word excludes; uppercase OR between terms matches any alternative (at most 5), e.g. golang OR rust; title: at the start of an alternative matches the title only, e.g. title:"product owner" OR title:produktchef. | |
| facets | No | Any other facet param as key→value(s), e.g. {"source": "greenhouse"}. Discover valid keys and values with the `facets` tool. | |
| offset | No | Pagination offset. | |
| region | No | Region codes: global|ru|cis|central_asia|eu|us. WIDENS with country/city — region+country means 'in the region OR the country', not 'the country inside the region'. To search one country, pass country and OMIT region. | |
| remote | No | Only remote jobs (sets work_mode=remote). | |
| skills | No | Filter to jobs listing these skills (canonical slugs from the `facets` tool). | |
| company | No | Company slugs. | |
| country | No | ISO-3166 country codes, e.g. BR, US. Omit `region` when narrowing to a country — the two OR together, so region+country returns everything the region alone would. | |
| category | No | Role categories: backend|frontend|fullstack|devops|ml_ai|qa|... | |
| seniority | No | Seniority: intern|junior|middle|senior|staff|principal|lead|c_level. | |
| salary_min | No | Minimum salary (enrichment.salary_min). | |
| english_level | No | English level, e.g. a2, b1, b2, c1. | |
| exclude_skill | No | Skills to filter OUT, e.g. python — drops jobs TAGGED with any of them. Tags come from a curated dictionary read off the description, so this is a discovery filter, not a fit test: a mention the dictionary does not recognise leaves the job untagged and in the results, and a job whose real core is a stack the candidate lacks is not removed by excluding a different one. Any other facet excludes the same way through `facets`, e.g. {"company_type_exclude": "outstaff"}. | |
| employment_type | No | Employment type, e.g. full_time, contract. |