# Crustdata Job Listings Table via Orthogonal

> Crustdata Job Listings Table via Orthogonal is a paid API for AI agents from x402.orthogonal.com, paid per call via x402, $0.313/call, status unknown (last checked 2026-10-20).

Query and filter Crustdata's job listings database by company, date, location, title, and remote status, returning paginated tabular results.

## Facts

- Endpoint: POST https://x402.orthogonal.com/crustdata/data_lab/job_listings/Table/?utm_source=zero.xyz
- Price: $0.313/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-20
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/crustdata-job-listings-table-via-orthogonal-02effa00
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_stkiC4WsYNFm1AdVbeuxm

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 crustdata-job-listings-table-via-orthogonal-02effa00 -d '<json body>'
```

Example prompt: Pull the 50 most recent job listings from Crustdata for company IDs 7576 and 680992 that were updated after March 1, 2024, filtering for remote positions only.

## When to prefer this

Choose this endpoint when you need structured, filterable job listing data from Crustdata's proprietary database — especially when filtering by specific company IDs, date ranges, locations, or remote status. It is preferable to general web job search when you need consistent tabular output, programmatic filtering, or are building talent intelligence pipelines. Use the LinkedIn job search sibling endpoint instead if you need broader web-scraped postings without company ID resolution.

## Known failure modes

- Invalid or missing company_id values cause empty results — use Company Identification endpoint first to resolve IDs
- Malformed filter conditions (wrong type or column name) return an error or no rows
- Offset beyond total result count returns empty rows
- Changing filters while passing parentRequestId creates a mismatch and may result in billing errors or rejected requests
- Missing required dataset object (name/id) causes request failure
- Rate limits or payment failures result in HTTP 402 or 429 errors

## How this service works

Get job listings from Crustdata's database. Filter by company, date, location, and more. Returns a fields-and-rows structure where fields describe column names/types and rows contain the data. Use Company Identification endpoint first to get company_id values for filtering. 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 fields-and-rows structure where 'fields' is an array of column descriptors (name, type) and 'rows' is an array of job listing records matching the filters. Each row contains values for columns such as job title, location, remote status, date updated, and company ID. Also includes a billing requestId in the Orthogonal response envelope for pagination cost-tracking.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "count": {
   "type": "integer",
   "description": "Number of rows to return (min: 1). Default: 100."
  },
  "sorts": {
   "type": "array",
   "description": "Sorting criteria array. Usually empty []."
  },
  "groups": {
   "type": "array",
   "description": "Grouping. Usually empty []."
  },
  "offset": {
   "type": "integer",
   "description": "Pagination offset. Default: 0. For later offset pages of the same logical search, keep non-pagination parameters unchanged and pass top-level parentRequestId from the first Orthogonal /v1/run response."
  },
  "dataset": {
   "type": "object",
   "description": "Must be {\"name\": \"job_listings\", \"id\": \"joblisting\"}."
  },
  "filters": {
   "type": "object",
   "description": "Filter object: {\"op\": \"and\", \"conditions\": [...]}. Each condition: {\"column\": \"...\", \"type\": \"...\", \"value\": ...}. Key columns: company_id (type: \"in\", value: [7576, 680992]), date_updated (type: \">\", value: \"2024-01-01\"), job_title_name, job_location, remote_status. Types: \"in\", \"not in\", \">\", \"<\", \">=\", \"<=\", \"=\"."
  },
  "tickers": {
   "type": "array",
   "description": "Ticker symbols. Usually empty []."
  },
  "functions": {
   "type": "array",
   "description": "Functions. Usually empty []."
  },
  "aggregations": {
   "type": "array",
   "description": "Aggregations. Usually empty []."
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/crustdata-job-listings-table-via-orthogonal-02effa00/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)
