---
title: "Search for job postings with flexible filtering capabilities Pagination billing: call the first page normally and save billing.requestId from the Orthogonal /v1/run response. For later page, offset, or cursor calls on the same logical search, pass parentRequestId with unchanged non-pagination parameters. Valid continuation calls still get their own request IDs and quoted price, but are charged 0. Changing filters starts a new billable request."
method: POST
path: "/fiber/v1/job-search"
tags: ["Fiber AI"]
---

# Search for job postings with flexible filtering capabilities Pagination billing: call the first page normally and save billing.requestId from the Orthogonal /v1/run response. For later page, offset, or cursor calls on the same logical search, pass parentRequestId with unchanged non-pagination parameters. Valid continuation calls still get their own request IDs and quoted price, but are charged 0. Changing filters starts a new billable request.

`POST /fiber/v1/job-search`

## Request

- Base URL: `https://api.orthogonal.com/mpp`
- URL: `https://api.orthogonal.com/mpp/fiber/v1/job-search`
- Auth: none declared
- TypeScript: <https://skmtc.dev/orthogonal/apis/orthogonal-api-marketplace/docs/fiber/v1/job-search/post.ts> (a function with typed inputs; its response is checked against the schema)

## Request body

- object
  - `searchParams` object, required: Job search filter parameters
    - `companies` string: Filter jobs by one type of company identifier with array values
    - `title` string[]: Array of job titles for partial match (e.g., 'Software Engineer', 'Manager')
    - `isActive` string: Filter by job status: true=active, false=closed, no_preference=both
    - `postedAt` string: Filter by job posting date (supports relative and absolute dates)
    - `numApplicants` object: Filter by number of applicants (range)
    - `jobFunctions` string[]: Array of job functions
    - `industries` string[]: Array of industries
    - `annualSalaryUsd` object: Filter by annual salary range in USD
    - `yearsOfExperience` object: Filter by years of experience required
    - `jobLocationType` string[]: Array of work location types
    - `employmentType` string[]: Array of employment types (e.g., Full-time, Part-time, Contract, Internship)
    - `seniorityLevel` string[]: Array of seniority levels (e.g., Entry level, Mid-Senior level, Director)
    - `countryOrRegionCode` string[]: Array of country or region codes (e.g., USA, IND, X-ANGLOSPHERE)
  - `pageSize` integer: Number of jobs to return per page (max 1000)
  - `cursor` string: Pagination cursor for fetching next page of results For later cursor pages of the same logical search, keep non-pagination parameters unchanged and pass top-level parentRequestId from the first Orthogonal /v1/run response.

## Response `200`

Successful response

## Other responses

- `402`: Payment Required (x402 / MPP / np)

## Changes

- **2026-11-08** `857e915717f4`: 1 breaking
  - added required request body
- **2026-08-25** `806e279c8d50`: 2 info
  - api tag `Fiber AI` added
  - api tag `Fiber AI API` removed

[Operation history](https://skmtc.dev/orthogonal/apis/orthogonal-api-marketplace/changes/fiber/v1/job-search/post.md)

---

[API](https://skmtc.dev/orthogonal/apis/orthogonal-api-marketplace.md) - [All operations](https://skmtc.dev/orthogonal/apis/orthogonal-api-marketplace/llms.txt) - [OpenAPI document](https://skmtc.dev/orthogonal/apis/orthogonal-api-marketplace/revisions/f89fb77710bc?raw)
