---
title: "Search jobs"
method: POST
path: "/v1/search_jobs"
tags: ["jobs"]
---

# Search jobs

`POST /v1/search_jobs`

## Request

- Base URL: `https://api.trylitos.com`
- URL: `https://api.trylitos.com/v1/search_jobs`
- Auth: OAuth 2 (authorization code, authorization URL `https://api.trylitos.com/oauth/authorize`, token URL `https://api.trylitos.com/oauth/token`, scopes: `jobs:read`)

Search the Litos job board: verified postings across many roles, pulled from several job boards, with an emphasis on the United States. With a resume on file the results are ranked and each job carries match_score (resume fit) and preference_score (fit to saved preferences). Use offset to page. Each job's id is what start_application takes.

## Request body

- object
  - `q` string: Free-text search over title, company and description
  - `title` string
  - `company` string
  - `location` string
  - `remote` 'true' | 'false'
  - `employment_type` 'Full-time' | 'Part-time' | 'Internship' | 'Apprenticeship' | 'Contract'
  - `sponsor_only` 'true' | 'false': Only employers with a visa sponsorship record
  - `relax_targeting` 'true' | 'false': Widen past the saved preferences one at a time (titles, then places to their country, then season, then role type, then field), stopping at the first non-empty board (on a first page with a resume, past a board whose best match is weak); the response lists what was relaxed
  - `strong_only` 'true' | 'false': Only strong resume matches
  - `limit` integer
  - `offset` integer

## Response `200`

The operation's result. Shapes mirror the Litos dashboard routes they proxy.

- object

## Other responses

- `4XX`: A refusal, carrying `error` (a sentence) and usually `code`.

---

[API](https://skmtc.dev/trylitos/apis/litos-api.md) · [All operations](https://skmtc.dev/trylitos/apis/litos-api/llms.txt) · [OpenAPI document](https://skmtc.dev/trylitos/apis/litos-api/revisions/d0ae6f04b1ae?raw)
