ats_jobs

Pack: ats-boards · Connect: https://pipeworx.io/mcp (see Connect below for a single-pack URL)

No MCP client? Call it directly: GET https://gateway.pipeworx.io/v1/tools/ats_jobs for the schema, then POST the same URL with its arguments for the data.

Fetch normalized job postings from a PUBLIC ATS board you already have the ats + board_token for (use ats_detect or ats_company_jobs if you only have a domain). Returns {found:false, reason:“board_not_found”} for an unknown board — never an empty jobs[] for that case. Lever/Ashby/BambooHR/Recruitee DO distinguish a real zero-job board (found:true, jobs:[]) from an unknown one; SmartRecruiters cannot, and marks that case ambiguous:true. Workday board_token is “.wd/” (e.g. “workday.wd5/Workday”); its response states capped:true if your limit/offset hit Workday’s own pagination limits (limit<=20, offset<=10000). Workable is currently blocked by Cloudflare from this platform’s edge and will throw a loud error naming the 429, not an empty result.

Parameters

NameTypeRequiredDescription
atsstringyesWhich ATS to query.
board_tokenstringyesThe board identifier: Greenhouse/Lever/Ashby/SmartRecruiters company slug or id; Recruitee/BambooHR subdomain label; Workable account slug; Workday “.wd/”.
filtersobjectnoOptional post-fetch filters and Workday pagination controls.
propertiesstringnoCase-insensitive substring match on job title. For Workday this is also sent upstream as the search text.
title_querystringnoCase-insensitive substring match on job title. For Workday this is also sent upstream as the search text.
location_querystringnoCase-insensitive substring match on location.
remote_onlybooleannoKeep only jobs flagged remote (where the ATS reports it).
regionstringnoLever only: “eu” queries api.eu.lever.co instead of api.lever.co.
limitnumbernoWorkday only: page size, clamped to 20 (Workday itself rejects anything higher with HTTP 400).
offsetnumbernoWorkday only: pagination offset, clamped to 10000 (Workday’s own cap).

Example call

Arguments

{
  "ats": "greenhouse",
  "board_token": "airbnb"
}

curl

curl -X POST https://gateway.pipeworx.io/ats-boards/mcp \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"ats_jobs","arguments":{"ats":"greenhouse","board_token":"airbnb"}}}'

TypeScript (@pipeworx/sdk)

import { Pipeworx } from '@pipeworx/sdk';
const pipeworx = new Pipeworx();

const result = await pipeworx.call('ats_jobs', {
  "ats": "greenhouse",
  "board_token": "airbnb"
});

Connect

Add this to your MCP client config — every tool in the catalog, including this one — or use one-click install buttons:

{
  "mcpServers": {
    "pipeworx": {
      "url": "https://pipeworx.io/mcp"
    }
  }
}
Connect to just the ats-boards pack
{
  "mcpServers": {
    "ats-boards": {
      "url": "https://gateway.pipeworx.io/ats-boards/mcp"
    }
  }
}

See Getting Started for client-specific install steps.

Regenerated from source · build October 9, 2026