Free ATS dataset API
A free JSON API over the State of ATS 2026 dataset: 743 Fortune 500 and Global 2000 employers mapped to the applicant tracking system each one actually uses — 713 of them verified against the company's live careers portal (June 2026). Build company lookups, recruiting-tech dashboards, or job-search tools on top of it. No key, no signup, no rate limit. AI agents can query the same data (plus the resume-scoring engine) over the MCP server.
Endpoints
| Endpoint | Returns |
|---|---|
GET /api/v1/ats | Full dataset — meta block + all 743 companies |
GET /api/v1/ats?ats=workday&verified=true | Filtered by ATS vendor and/or verification status |
GET /api/v1/ats/{slug} | One company by slug (case-insensitive name fallback); 404 JSON if unknown |
Every row carries a verified flag — true means the ATS was confirmed against the employer's live apply-URL host. Published percentages (Workday 38.6%, Greenhouse 13.3%, top-3 vendors ~60%) are computed from the 713 verified rows only.
Copy-paste examples
1. Look up one company by slug (or name)
Slug first, case-insensitive company-name fallback. Unknown companies return a 404 JSON error.
curl -s https://withresumeai.com/api/v1/ats/anthropic{
"meta": {
"updated": "2026-06-24",
"source": "https://withresumeai.com/reports/state-of-ats-2026",
"license": "MIT"
},
"company": {
"company": "Anthropic",
"slug": "anthropic",
"industry": "Technology",
"ats": "Greenhouse",
"verified": true,
"hiring_volume_tier": "mid",
"top_roles": ["software-engineer", "product-manager", "data-analyst"],
"source_url": "https://withresumeai.com/ats-checker/anthropic"
}
}2. Filter by ATS vendor, verified rows only
?ats= is a case-insensitive substring match (so oracle finds "Oracle Cloud HCM"). ?verified=true keeps only portal-confirmed rows.
curl -s "https://withresumeai.com/api/v1/ats?ats=workday&verified=true"{
"meta": {
"total": 743,
"verified": 713,
"returned": 275,
"updated": "2026-06-24",
"source": "https://withresumeai.com/reports/state-of-ats-2026",
"license": "MIT",
"docs": "https://withresumeai.com/developers",
"filter_ats": "workday",
"filter_verified": true
},
"companies": [
{
"company": "Salesforce",
"slug": "salesforce",
"industry": "Enterprise Software",
"ats": "Workday",
"verified": true,
"hiring_volume_tier": "mega",
"top_roles": ["software-engineer", "account-executive", "customer-success-manager"],
"source_url": "https://withresumeai.com/ats-checker/salesforce"
},
...274 more
]
}3. Pull the full dataset and pipe it into jq
The whole 743-row dataset in one response — small enough to fetch whole (~250 KB).
curl -s https://withresumeai.com/api/v1/ats | jq '.meta'{
"total": 743,
"verified": 713,
"returned": 743,
"updated": "2026-06-24",
"source": "https://withresumeai.com/reports/state-of-ats-2026",
"license": "MIT",
"docs": "https://withresumeai.com/developers"
}MCP server for AI agents
The same dataset — plus the production resume-scoring engine behind the ATS checker — is available as a remote Model Context Protocol server, so Claude, Cursor, and any other MCP-capable agent can query it natively. Streamable HTTP, no auth, no key:
https://withresumeai.com/api/mcp| Tool | Arguments | Returns |
|---|---|---|
which_ats | { company } | The verified ATS for one employer — verification status/date, apply-URL host, company-specific resume tips |
ats_stats | {} | Canonical market-share numbers, computed live from the 713 verified rows (Workday 38.6%, top-3 ~60%) |
list_companies | { ats?, industry?, verified_only? } | Filtered company list, max 100 rows per call |
ats_changes | { limit? } | Living changelog: human-confirmed ATS changes at tracked employers (weekly automated portal re-verification), max 50 rows |
check_resume | { resume_text, company?, ats?, job_description? } | 0–100 score from the production ATS engine + per-ATS parsing rules, fixes, missing keywords (10/day per IP) |
Claude Code
One command — registers the server for the current project.
claude mcp add --transport http resumeai-ats https://withresumeai.com/api/mcpClaude Desktop
Settings → Connectors → Add custom connector, with URL https://withresumeai.com/api/mcp. Or, for the config-file route, add this to claude_desktop_config.json (uses mcp-remote to bridge stdio → HTTP):
{
"mcpServers": {
"resumeai-ats": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://withresumeai.com/api/mcp"]
}
}
}Cursor
Add to .cursor/mcp.json (project) or ~/.cursor/mcp.json (global):
{
"mcpServers": {
"resumeai-ats": {
"url": "https://withresumeai.com/api/mcp"
}
}
}The three data tools are unlimited (same fair-use ask as the JSON API). check_resume runs a real scoring pass through the same engine as the web checker, so it's limited to 10 checks per day per IP — unlimited checks stay free on the site.
Rate limits and caching
There is no hard rate limit and no API key. Responses are cached at the edge for 24 hours (Cache-Control: public, s-maxage=86400, stale-while-revalidate), which matches how often the dataset can change. Please be nice: if you need the full dataset repeatedly, fetch the CSV once or use a mirror below instead of polling the API.
License, attribution, and mirrors
The dataset and API are MIT-licensed — free for commercial and non-commercial use. If you publish research, a tool, or an article built on this data, please credit ResumeAI — State of ATS 2026 and link to the full report and methodology. Corrections and additions are welcome as pull requests on GitHub.
Frequently asked questions
Is the ATS dataset API free to use?
Yes. The API and the underlying dataset are MIT-licensed — free for commercial and non-commercial use, no API key and no signup. If you publish something built on it, we ask (but don't require) that you credit "ResumeAI — State of ATS 2026" with a link to withresumeai.com/reports/state-of-ats-2026.
How accurate is the ATS data?
713 of the 743 employers are portal-verified: each attribution was confirmed by inspecting the apply-URL host of the company's live public careers portal (refreshed June 2026). Rows carry a verified flag, and every published percentage — Workday 38.6%, Greenhouse 13.3%, top-3 vendors ~60% — is computed from verified rows only.
Is there a rate limit on the API?
No hard rate limit. Responses are cached at the edge for 24 hours, which matches how often the data can change. Please be reasonable — if you need the whole dataset repeatedly, download the CSV once or use the GitHub, npm, Kaggle, or Hugging Face mirrors instead of polling.
How do I connect an AI agent to the dataset?
Point any MCP-capable client (Claude Code, Claude Desktop, Cursor, or your own agent) at https://withresumeai.com/api/mcp — a remote MCP server over streamable HTTP, no auth. It exposes which_ats, ats_stats, list_companies, ats_changes, and check_resume. The four data tools are unlimited; check_resume runs the production scoring engine and is limited to 10 checks per day per IP.