{
  "markdown": "# State of ATS 2026 — Dataset\n\n[![npm version](https://img.shields.io/npm/v/@withresumeai/ats-data.svg)](https://www.npmjs.com/package/@withresumeai/ats-data)\n[![License: MIT](https://img.shields.io/badge/license-MIT-green.svg)](./LICENSE)\n[![GitHub stars](https://img.shields.io/github/stars/Kayvan-Zahiri/state-of-ats-2026?style=social)](https://github.com/Kayvan-Zahiri/state-of-ats-2026)\n[![CI](https://github.com/Kayvan-Zahiri/state-of-ats-2026/actions/workflows/test.yml/badge.svg)](https://github.com/Kayvan-Zahiri/state-of-ats-2026/actions/workflows/test.yml)\n[![Maintained by ResumeAI](https://img.shields.io/badge/maintained%20by-ResumeAI-blue)](https://withresumeai.com)\n\nThe 738-employer Applicant Tracking System dataset from the\n[**State of ATS 2026** report](https://withresumeai.com/reports/state-of-ats-2026).\nAcross the **704 employers verified against their live careers portals**,\nWorkday leads at **37.9%** — common, but well short of a majority — and the\nmarket is far more fragmented than usually claimed: Greenhouse 12.5%, SAP\nSuccessFactors 9.7%, Oracle Cloud HCM 7.0%, then a long tail of iCIMS,\nAvature, Eightfold, SmartRecruiters, Taleo, and Ashby. The top three vendors together\ncover 60.1% — not the \"triopoly\" often claimed — and 36 distinct platforms are in\nactive use. Published as a CSV + typed TypeScript wrapper so you can drop it into\na notebook, a SQL warehouse, or your job board without any scraping.\n\n> ### ⚠️ Accuracy notice (June 2026)\n> An earlier version of this dataset reported Workday at 75.4% with a\n> \"hand-verified\" methodology. That was wrong: the original ATS attributions\n> were **compiled with AI from public information and were not individually\n> verified**. A portal-verification audit found them only ~52% accurate (the\n> model defaulted to \"Workday\" when unsure). We have since re-checked **704 of\n> the 738** employers against their live careers-portal apply-URL hosts. Those\n> rows now carry **`verified: true`** and the numbers above reflect ONLY that\n> verified subset. The remaining ~30 rows are `verified: false` — unconfirmed\n> prior estimates; treat them as leads, not facts. **For analysis, filter to\n> `verified === true`.**\n\n---\n\n## Headline numbers\n\nShare of the **704 portal-verified employers** (`verified === true`):\n\n| ATS vendor        | Companies | Share (verified) |\n| ----------------- | --------: | ---------------: |\n| Workday           |       267 |        **37.9%** |\n| Greenhouse        |        88 |        **12.5%** |\n| SAP SuccessFactors|        68 |             9.7% |\n| Oracle Cloud HCM  |        49 |             7.0% |\n| iCIMS             |        39 |             5.5% |\n| Internal / proprietary|        30 |             4.3% |\n| Avature           |        26 |             3.7% |\n| Eightfold         |        24 |             3.4% |\n| SmartRecruiters   |        19 |             2.7% |\n| Taleo             |        17 |             2.4% |\n| Ashby             |        15 |             2.1% |\n| USAJobs           |        10 |             1.4% |\n\n> **The top 3 vendors (Workday + Greenhouse + SuccessFactors) cover ~60%** of\n> verified employers — not the \"triopoly\" often claimed. 36 distinct ATS\n> vendors appear across the verified set, plus proprietary internal systems\n> (Amazon, Meta, Google, Microsoft run their own).\n\n> **Job seeker?** The practical takeaway: the same resume is parsed\n> differently by each ATS, so it scores differently in Workday vs Greenhouse\n> vs Lever. The free [ResumeAI ATS checker](https://withresumeai.com/ats-checker)\n> scores yours against the specific parser your target employer uses.\n\n---\n\n## Install\n\n```bash\nnpm install @withresumeai/ats-data\n```\n\n```ts\nimport {\n  companies,\n  verifiedCompanies,\n  getATSForCompany,\n  getCompaniesByATS,\n  getCompaniesByIndustry,\n  atsDistribution,\n  atsShare,\n} from \"@withresumeai/ats-data\";\n\nconsole.log(companies.length);          // 738 (all rows)\nconsole.log(verifiedCompanies.length);  // 704 (verified === true)\n\ngetATSForCompany(\"apple\");\n// → { company: \"Apple\", slug: \"apple\", atsSystem: \"Internal ATS\", industry: \"Technology\", sourceUrl: \"...\" }\n\n// Each row carries a `verified` flag — filter to it before trusting an attribution:\ncompanies.find((c) => c.slug === \"apple\")?.verified; // true\n\n// atsDistribution()/atsShare() count the VERIFIED subset by default:\natsDistribution();\n// → { Workday: 267, Greenhouse: 88, SuccessFactors: 68, \"Oracle Cloud HCM\": 49, iCIMS: 39, \"Internal ATS\": 30, ... }\n\natsShare();\n// → { Workday: 37.93, Greenhouse: 12.5, SuccessFactors: 9.66, ... }\n\natsShare({ all: true }); // include unconfirmed rows (not recommended for analysis)\n```\n\nWorks the same in CommonJS:\n\n```js\nconst { getATSForCompany } = require(\"@withresumeai/ats-data\");\n```\n\n### Python (pandas)\n\nThe CSV is shipped inside the npm tarball, but you can also grab it\ndirectly from this repo or from the live API:\n\n```python\nimport pandas as pd\n\n# Option A: install the npm package, then load from node_modules\ndf = pd.read_csv(\"node_modules/@withresumeai/ats-data/data/companies.csv\", comment=\"#\")\n\n# Option B: download the canonical CSV from the published report\ndf = pd.read_csv(\n    \"https://withresumeai.com/api/reports/state-of-ats-2026/csv\",\n    comment=\"#\",\n)\n\ndf[df[\"verified\"]][\"ats_system\"].value_counts().head(12)  # verified rows only\n```\n\n### Raw CSV download\n\n- **GitHub:** [`data/companies.csv`](./data/companies.csv)\n- **Canonical URL:** <https://withresumeai.com/api/reports/state-of-ats-2026/csv>\n- **Schema:** `name, slug, industry, ats_system, verified, apply_host, evidence_method, checked_at, hq_country, hq_country_code, hq_region, hiring_volume_tier, top_roles, source_url`\n\n---\n\n## What's in the dataset\n\nEach row is one employer with seven fields:\n\n| Column                | Example                                  |\n| --------------------- | ---------------------------------------- |\n| `name`                | `Apple`                                  |\n| `slug`                | `apple`                                  |\n| `industry`            | `Technology`                             |\n| `ats_system`          | `Workday`                                |\n| `hiring_volume_tier`  | `mega` &middot; `high` &middot; `mid`    |\n| `top_roles`           | `software-engineer\\|product-manager\\|data-analyst` |\n| `source_url`          | `https://withresumeai.com/ats-checker/apple` |\n| `verified`            | `true` (confirmed vs live portal) · `false` (unconfirmed) |\n| `apply_host`          | `schneiderele.taleo.net` — the host an application actually lands on. Open it. |\n| `evidence_method`     | how the row was established (see below); blank means no artifact published |\n| `checked_at`          | `2026-08-13` — when that evidence was last observed |\n| `hq_country`          | `France` &middot; also `hq_country_code`, `hq_region` |\n\n**`evidence_method` — provenance is per row, because it is mixed.**\n\n| value | rows | what it means |\n| --- | ---: | --- |\n| `Careers-portal apply host` | 237 | automated probe opened the careers page and recorded where Apply goes |\n| `Workday tenant probe` | 157 | vendor-side probe of the Workday tenant |\n| `vendor board API` | 89 | the vendor's own public board API |\n| `recorded portal URL` | 47 | recorded by a person working through the apply flow |\n| `iCIMS tenant probe` | 21 | vendor-side iCIMS probe |\n| *(blank)* | 187 | no evidence artifact — `verified` rests on the June 2026 audit alone |\n\nFilter on `apply_host`, not on `verified`, for anything load-bearing: 156 of the\n187 rows without evidence are still flagged verified.\n\n738 rows in total — **704 with `verified=true`** and 34 with `verified=false`\n(unconfirmed, flagged as such). Of the verified rows, 548 publish a recorded\napply host you can open in a browser; the remaining 156 rest on the June 2026\naudit with no per-company artifact published, which is the weakest part of the\nset and worth knowing before you lean on it. Coverage spans the Fortune 500, the Global\n2000, and a curated set of high-growth private companies (Series C and later,\n$1B+ valuation).\n\n---\n\n## Methodology\n\nThe dataset covers 738 large employers selected to maximize coverage of\nwhere U.S. and global job seekers actually apply — by hiring volume rather\nthan headline market cap.\n\n**Two-stage provenance (read this).** The company list and an initial ATS\nguess for each were **compiled with AI from public information** — fast, but\nnot individually checked. That first pass was wrong often enough to matter (a\nlater audit measured ~52% accuracy; it over-assigned \"Workday\" whenever the\nmodel was unsure). So in June 2026 we re-checked the roster against live portals, and in July 2026 a review of the 485 rows without an automated weekly probe corrected 115 of them for drift (acquisitions, renames, silent vendor migrations), bringing it to the current **704 verified of 738**. Automated apply-host sweeps have run since, roughly a pass a week; the last one reconfirmed 309 of the 462 employers whose vendor exposes a probeable endpoint\nthe right way:\n\n- Open the employer's official careers/apply page and read the **apply-URL\n  host** — the ground truth. `*.myworkdayjobs.com` → Workday,\n  `boards.greenhouse.io` → Greenhouse, `jobs.lever.co` → Lever,\n  `*.icims.com` → iCIMS, `*.oraclecloud.com/hcmUI` → Oracle, `*.successfactors.*`\n  → SuccessFactors, `*.avature.net` → Avature, `jobs.ashbyhq.com` → Ashby,\n  proprietary host (e.g. `jobs.apple.com`) → Internal.\n\nRows that passed that check have **`verified: true`**; the rest keep their\nunconfirmed first-pass estimate with **`verified: false`**. Every market-share\nnumber in this README and in `atsShare()` is computed over the verified subset\nonly.\n\nEach company is also tagged with **industry**, a **hiring volume tier** (mega:\n100k+ employees; high: Fortune 500 / major hirer; mid: mid-cap / growth-stage),\nand **top hiring roles** (1–3 role slugs that map to the dominant openings).\n\n**Limitations.** (1) 704 of 738 rows are flagged verified, but only 548 of\nthose publish a recorded apply host. The other 156 carry no per-company\nartifact, so `verified` is doing more work on those rows than the evidence\nshows. Filter on the evidence host, not just the flag, for anything\nload-bearing. Provenance is mixed and stated per row: most apply hosts came\nfrom automated portal and vendor probes, 47 were recorded by a person.\n(2) Point-in-time snapshot — mid-market employers change ATSes often, and some\nwill have migrated since June 2026. (3) \"Internal ATS\" is an umbrella for\nproprietary systems with no third-party vendor host (e.g. Amazon, Meta, Apple,\nGoogle, Microsoft).\n\nThe full methodology, vendor-by-vendor commentary, and cross-tabs by\nindustry and seniority are in the\n[**State of ATS 2026** report](https://withresumeai.com/reports/state-of-ats-2026).\n\n---\n\n## Citation\n\nIf you use the dataset in journalism, research, or a downstream product,\nplease cite as:\n\n> Zahiri, K. (2026). *State of ATS 2026: Applicant Tracking Systems used\n> by 738 large employers.* ResumeAI.\n> <https://withresumeai.com/reports/state-of-ats-2026>\n\nBibTeX:\n\n```bibtex\n@misc{zahiri2026stateofats,\n  author       = {Zahiri, Kayvan},\n  title        = {State of ATS 2026: Applicant Tracking Systems used by 738 large employers},\n  year         = {2026},\n  publisher    = {ResumeAI},\n  howpublished = {\\url{https://withresumeai.com/reports/state-of-ats-2026}},\n  note         = {Dataset available at \\url{https://github.com/Kayvan-Zahiri/state-of-ats-2026}}\n}\n```\n\n---\n\n## Contributing\n\nPRs welcome — additions, corrections, ATS migrations. See\n[CONTRIBUTING.md](./CONTRIBUTING.md) for the schema, the review process,\nand what we will / won't merge.\n\n---\n\n## Related\n\n- **State of ATS 2026** full report &mdash; <https://withresumeai.com/reports/state-of-ats-2026>\n- **ATS checker** (per-company pages backed by this dataset) &mdash; <https://withresumeai.com/ats-checker>\n- **ResumeAI** &mdash; the resume builder this dataset powers &mdash; <https://withresumeai.com>\n\n## License\n\nMIT. See [LICENSE](./LICENSE).\n\nBuilt and maintained by [Kayvan Zahiri](https://github.com/Kayvan-Zahiri) /\n[ResumeAI](https://withresumeai.com).\n",
  "bytes": 12171,
  "sha": "6a5faec0cfcd71a598c11ee515284ebe7fbe8df508450cd8ac1bd8fd3705a53b",
  "repo_slug": "kayvan-zahiri/state-of-ats-2026",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_com_withresumeai_ats_ea67db86/readme"
}