# Orthogonal Job Search

> Orthogonal Job Search is a paid API for AI agents from x402.orthogonal.com, paid per call via x402, $0.5/call, status unknown (last checked 2026-10-22).

Search LinkedIn-style job postings with flexible filters including title, seniority, location, salary, employment type, and company identifiers, with paginated results and smart billing for continuation pages.

## Facts

- Endpoint: POST https://x402.orthogonal.com/fiber/v1/job-search?utm_source=zero.xyz
- Price: $0.5/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-22
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/orthogonal-job-search-829fd0d1
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_U8mRyJxu79AOPelmHSWjO

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability orthogonal-job-search-829fd0d1 -d '<json body>'
```

Example prompt: Find me up to 25 active full-time senior software engineer jobs posted in the last 7 days in the US that are remote, paying at least $150k/year — return the first page of results.

## When to prefer this

Choose this endpoint when you need structured, filterable access to job postings at scale — especially when filtering by seniority, salary, employment type, location, industry, or specific companies. It supports pagination with smart billing (continuation pages are free), making it cost-effective for multi-page job searches. Prefer it over people-search endpoints when the target entity is a job posting rather than a person or company profile.

## Known failure modes

- Invalid or unsupported filter combinations may return empty results or an error
- Providing an invalid cursor value will fail pagination
- Changing search parameters while passing parentRequestId starts a new billable request
- pageSize exceeding 1000 will be rejected
- Unsupported country/region codes may cause filter errors
- Payment failure (insufficient USDC balance) will block the request

## How this service works

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.

## Output

A paginated list of job postings matching the specified filters. Each result typically includes job title, company, location, employment type, seniority level, posting date, applicant count, and other metadata. The response also includes a pagination cursor for fetching subsequent pages and a requestId that can be reused as parentRequestId to continue paginating without additional billing charges.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "cursor": {
   "type": "string",
   "description": "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."
  },
  "pageSize": {
   "type": "integer",
   "description": "Number of jobs to return per page (max 1000)"
  },
  "searchParams": {
   "type": "object",
   "properties": {
    "title": {
     "type": "array",
     "description": "Array of job titles for partial match (e.g., 'Software Engineer', 'Manager')"
    },
    "isActive": {
     "type": "string",
     "description": "Filter by job status: true=active, false=closed, no_preference=both"
    },
    "postedAt": {
     "type": "string",
     "description": "Filter by job posting date (supports relative and absolute dates)"
    },
    "companies": {
     "type": "string",
     "description": "Filter jobs by one type of company identifier with array values"
    },
    "industries": {
     "type": "array",
     "description": "Array of industries"
    },
    "jobFunctions": {
     "type": "array",
     "description": "Array of job functions"
    },
    "numApplicants": {
     "type": "object",
     "description": "Filter by number of applicants (range)"
    },
    "employmentType": {
     "type": "array",
     "description": "Array of employment types (e.g., Full-time, Part-time, Contract, Internship)"
    },
    "seniorityLevel": {
     "type": "array",
     "description": "Array of seniority levels (e.g., Entry level, Mid-Senior level, Director)"
    },
    "annualSalaryUsd": {
     "type": "object",
     "description": "Filter by annual salary range in USD"
    },
    "jobLocationType": {
     "type": "array",
     "description": "Array of work location types"
    },
    "yearsOfExperience": {
     "type": "object",
     "description": "Filter by years of experience required"
    },
    "countryOrRegionCode": {
     "type": "array",
     "description": "Array of country or region codes (e.g., USA, IND, X-ANGLOSPHERE)"
    }
   },
   "description": "Job search filter parameters"
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/orthogonal-job-search-829fd0d1/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from x402.orthogonal.com](https://www.zero.xyz/host/x402.orthogonal.com/llms.txt)
