# Fantastic Jobs — Orthogonal API > Pay-per-use API on Orthogonal. Each call is billed to your Orthogonal balance. > Base API: `https://api.orthogonal.com/v1/run` · [llms.txt](https://orthogonal.com/llms.txt) · [browse all APIs](https://orthogonal.com/discover) High-volume job postings feed. Indexes new ATS jobs hourly from 54 ATS platforms across 200k+ companies, plus job board listings from LinkedIn, Wellfound, and Y Combinator. Includes 20+ AI enrichments per job and deep company enrichments from LinkedIn, Glassdoor, and Crunchbase. **Verified:** yes ## Access **Run API:** `POST https://api.orthogonal.com/v1/run` **Auth:** `Authorization: Bearer $ORTHOGONAL_API_KEY` Get an API key at https://orthogonal.com/dashboard/settings/api-keys Every call goes through the unified Run API: send the API `slug`, the endpoint `path`, and the `query`/`body` parameters. The response is `{ "success": true, "price": "", "data": { ... } }`. ## Endpoints ### New Job Board Jobs Returns new jobs from LinkedIn, Wellfound, and Y Combinator. LinkedIn hourly for English-speaking countries; others every few hours. 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. `GET /v1/active-jb` **Estimated cost:** Dynamic — use `"dryRun": true` in the Run API request to check the exact cost before calling. | Field | Type | Required | Description | |-------|------|----------|-------------| | `time_frame` | string | Yes | Required. Time window: 1h, 24h, 7d, or 6m | | `limit` | integer | Yes | Results per page (1-1000, default 1000) | | `offset` | string | No | Pagination offset 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. | | `cursor` | string | No | Cursor pagination 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. | | `title` | string | No | Natural-language title search | | `location` | string | No | Natural-language location search | | `description` | string | No | Search on title and description combined | | `description_format` | string | No | text or html | | `source` | string | No | linkedin, wellfound, ycombinator | | `organization` | string | No | Filter by exact org name(s) | | `organization_slug` | string | No | Filter by LinkedIn org slug(s) | | `organization_industry` | string | No | Filter by LinkedIn industry | | `ai_experience_level` | string | No | AI-derived: 0-2, 2-5, 5-10, 10+ | | `ai_work_arrangement` | string | No | AI-derived: On-site, Hybrid, Remote OK, Remote Solely | | `ai_employment_type` | string | No | AI-derived: FULL_TIME, PART_TIME, CONTRACTOR, etc. | | `has_salary` | string | No | Set true for jobs with salary info only | | `exclude_ats_duplicate` | string | No | Set true to drop LinkedIn jobs matching ATS postings | | `exclude_recruiter_fields` | string | No | Set true to exclude recruiter fields | | `seniority` | string | No | LinkedIn seniority: Entry level, Mid-Senior level, Director, etc. | | `linkedin_id` | string | No | Filter by LinkedIn job posting ID(s) | | `id` | string | No | Filter by internal Fantastic.jobs ID(s) | ```bash curl -X POST 'https://api.orthogonal.com/v1/run' \ -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"api":"fantastic-jobs","path":"/v1/active-jb","method":"GET","query":{"time_frame":"","limit":"","offset":"","cursor":"","title":"","location":"","description":"","description_format":"","source":"","organization":"","organization_slug":"","organization_industry":"","ai_experience_level":"","ai_work_arrangement":"","ai_employment_type":"","has_salary":"","exclude_ats_duplicate":"","exclude_recruiter_fields":"","seniority":"","linkedin_id":"","id":""}}' ``` ### New ATS Jobs Returns new jobs from 54 ATS platforms (company career pages). Refreshed hourly. Supports 30+ filters including title, location, source, AI experience level, work arrangement, and more. 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. `GET /v1/active-ats` **Estimated cost:** Dynamic — use `"dryRun": true` in the Run API request to check the exact cost before calling. | Field | Type | Required | Description | |-------|------|----------|-------------| | `time_frame` | string | Yes | Required. Time window: 1h, 24h, 7d, or 6m | | `limit` | integer | Yes | Results per page (1-1000, default 1000) | | `offset` | string | No | Pagination offset 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. | | `cursor` | string | No | Cursor pagination. Pass last job id for next page 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. | | `title` | string | No | Natural-language title search. Quotes for exact phrase, OR for alternatives | | `location` | string | No | Natural-language location search. Use full country names | | `description` | string | No | Search on title and description combined | | `description_format` | string | No | text or html. Omit to exclude description field | | `source` | string | No | Comma-separated ATS sources (greenhouse, lever.co, workday, etc.) | | `organization` | string | No | Filter by exact organization name(s), comma-separated | | `organization_slug` | string | No | Filter by LinkedIn org slug(s), comma-separated | | `organization_industry` | string | No | Filter by exact LinkedIn industry name | | `domain` | string | No | Filter by employer domain(s) | | `include_basic_organization_details` | string | No | Set true to include inline LinkedIn company fields | | `ai_experience_level` | string | No | AI-derived: 0-2, 2-5, 5-10, 10+ | | `ai_work_arrangement` | string | No | AI-derived: On-site, Hybrid, Remote OK, Remote Solely | | `ai_employment_type` | string | No | AI-derived: FULL_TIME, PART_TIME, CONTRACTOR, INTERN, etc. | | `ai_taxonomies_a_primary` | string | No | Match primary AI taxonomy only | | `ai_taxonomies_a` | string | No | Match any assigned AI taxonomy | | `has_salary` | string | No | Set true for jobs with salary info only | | `date_posted_gte` | string | No | Jobs posted on or after this date (ISO 8601) | | `date_posted_lt` | string | No | Jobs posted before this date (ISO 8601) | | `organization_headcount_gte` | string | No | Min LinkedIn employee count | | `organization_headcount_lt` | string | No | Max LinkedIn employee count | | `organization_agency` | string | No | only or exclude recruitment agencies | | `ai_visa_sponsorship` | string | No | only or exclude visa sponsorship listings | | `id` | string | No | Filter by internal Fantastic.jobs ID(s) | ```bash curl -X POST 'https://api.orthogonal.com/v1/run' \ -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"api":"fantastic-jobs","path":"/v1/active-ats","method":"GET","query":{"time_frame":"","limit":"","offset":"","cursor":"","title":"","location":"","description":"","description_format":"","source":"","organization":"","organization_slug":"","organization_industry":"","domain":"","include_basic_organization_details":"","ai_experience_level":"","ai_work_arrangement":"","ai_employment_type":"","ai_taxonomies_a_primary":"","ai_taxonomies_a":"","has_salary":"","date_posted_gte":"","date_posted_lt":"","organization_headcount_gte":"","organization_headcount_lt":"","organization_agency":"","ai_visa_sponsorship":"","id":""}}' ``` --- Full details and an interactive quickstart: https://orthogonal.com/discover/fantastic-jobs