These articles are AI-generated summaries. Please check the original sources for full details.
Every Major ATS Has a Public JSON API for Job Openings. Nobody Uses Them.
Every major ATS—Greenhouse, Lever, Ashby, and SmartRecruiters—exposes a public, keyless JSON API for job openings. These endpoints return full job data with zero HTML parsing and no rate limit drama.
Why This Matters
Key Insights
- Greenhouse hides departments in its jobs list; fetching the separate /departments endpoint once builds a jobId-to-department map (dev.to, 2026).
- Lever returns an empty array for both unknown companies and those with zero openings, requiring probing across multiple providers to handle migrations like Plaid’s move from Lever to Ashby (dev.to, 2026).
- Ashby returns full HTML descriptions unconditionally; filtering on isListed strips unnecessary data before storage (dev.to, 2026).
- Board tokens vary from company names (e.g., ‘stripe’ works but brands may break), so testing slug variants across all four providers handles naming quirks and provider migrations (dev.to, 2026).
Practical Applications
- Personal job alerts: Normalize fields across Greenhouse/Lever/Ashby/SmartRecruiters into a single row shape with keyword filter, location filter, and remote flag to avoid manual browsing pitfalls of stale or scattered postings.
- Niche job boards: Aggregate API data daily at near-zero cost—five companies yield ~163 rows under a penny—compared to expensive headless browser scraping that breaks on page structure changes.
- Hiring tracker for sales signals: Detect when a company posts three SDR roles as a buying signal for sales tooling; common anti-pattern is assuming all jobs appear on one provider when companies migrate silently between ATS platforms.
References:
Continue reading
Next article
External and Internal Attention: A Single Cognitive Move in Two Directions
Related Content
'Zero-UI' Architecture Emerges: Engineer Builds Agent-Native Data Engine in Rust Using MCP
"thingd", an open-source agent-native data engine built in Rust, uses MCP to replace traditional frontends with sub-millisecond capabilities.
Claude Code Shift: From Coding to Engineering Decisions – Developer Builds AI Clone Platform
Developer Sanasar Yuzbashyan hasn't written code manually in 9 months, building entirely with Claude Code. Now launching Quill—a marketplace for AI developer clones that handle client communication and coding.
How to Parse AI Coding JSONL Safely: Defensive Design Patterns for Agent Transcripts
Implement platform-specific I/O backstops (64 MiB on macOS, 1M chars on Windows) to prevent malformed JSONL from crashing transcript parsing.