One API to search jobs across every ATS. Full descriptions, salary ranges, 66 verified companies — no API keys, no scraping.
Every company's careers page sits behind a different ATS — Greenhouse, Lever, Ashby, and more. Getting structured data means writing custom integrations for each one, parsing different response formats, and usually settling for job titles and links with no descriptions.
ats-index gives you one unified API to all of them. Public data, public APIs, no scraping — just the integration work you'd rather not redo.
npx ats-index fetch stripe --title-filter "product manager" --posted-within-days 14Returns every PM role posted at Stripe in the last two weeks — title, department, location, salary, full description, direct link.
Every job normalizes to this shape, across every platform:
{
"id": "a1b2c3d4e5f6",
"company": "Stripe",
"title": "Senior Product Manager, Integrations",
"department": "Product",
"location": "San Francisco, CA",
"locationType": "hybrid",
"salary": { "min": 180000, "max": 260000, "currency": "USD" },
"description": "Lead strategy for Stripe's integration ecosystem...",
"url": "https://boards.greenhouse.io/stripe/jobs/12345",
"postedAt": "2026-04-10T14:30:00Z"
}No custom parsing per company. One schema across Greenhouse, Ashby, and Lever.
Daily scan at target companies
npx ats-index fetch ramp --title-filter "product manager" --location-include "United States,Remote - US" --posted-within-days 7Sector sweep
npx ats-index registry search fintech
# Loop fetch_jobs over each slug to scan a whole segmentAs a library for your own tools
import { fetchJobs, registry } from 'ats-index';
const jobs = await fetchJobs({
company: 'ramp',
titleFilter: 'engineer',
postedWithinDays: 14,
limit: 50,
});Job seekers use it for daily shortlists. Tool builders use it as a foundation for AI agents and career platforms. Researchers use it for hiring-trend analysis.
npm install ats-indexOr run without installing:
npx ats-index fetch <company-slug>Node.js 18+. No API keys. No configuration.
| Field | Description |
|---|---|
title |
Full job title |
company |
Normalized company name |
department |
Team or department (when provided) |
location |
City, state, country, or remote |
locationType |
remote / hybrid / onsite |
salary |
Min-max range with currency (when available) |
description |
Full JD in clean markdown |
url |
Direct link to the posting |
postedAt |
Publication date (when provided) |
| Platform | Status | Typical use |
|---|---|---|
| Greenhouse | Shipped | Most widely used ATS in tech |
| Ashby | Shipped | Growing fast with startups |
| Lever | Shipped | Common at mid-stage companies |
| BambooHR | Planned | Mid-market companies |
| Workday | Planned | Large enterprises |
Adding a new ATS is a single adapter file. See Contributing.
| Flag | What it matches | Use for |
|---|---|---|
--title-filter |
Title only | Role identity (PM, engineer, designer) |
--filter |
Title + department + description | Topic / scope (integrations, growth) |
--posted-within-days |
Recent postings | Recency cuts |
--location-include |
Location contains any keyword | Region targeting |
--location-exclude |
Location contains no keyword | Drop geographic noise |
--limit |
First N results | Cap output size |
All filters AND together. Deep dive on filter design patterns: docs/filters.md.
Shipped
- Greenhouse, Ashby, Lever adapters
- Title / topic / location / date filters
- Salary extraction
- Verified company registry (66 companies)
In progress
- MCP server — expose as a tool for AI assistants (Claude Desktop, Cursor, etc.)
Planned
- BambooHR and Workday adapters
- Temporal tracking (when roles open, close, reopen)
- Change detection
Add a company to the registry: submit a PR to the appropriate file in registry/.
Add an ATS adapter: new file in src/adapters/, follow the pattern of existing adapters.
Prashant R — PM who builds. I write about AI, product work, and the integration layer — where APIs, agents, and products fit together in practice.
- Portfolio + writing: prashantrana.xyz
ats-index is one experiment at that intersection. An MCP server version is coming next — turns this into a tool any AI assistant can use.
MIT