ATS platforms
Every ATS platform Jobo reads.
An applicant tracking system is the software a company posts its jobs in. Jobo reads 100+ of them through one API and returns every public posting as structured JSON, refreshed hourly.
How do the biggest ATS platforms differ?
Every platform below returns the same normalized schema through Jobo. The differences are in how their own APIs behave if you read them directly.
| Platform | API type | Auth required | Rate limit | Difficulty |
|---|---|---|---|---|
| ADP | REST | Yes | No documented limit; pace requests ~200-300ms apart to avoid 403/429 blocks | intermediate |
| Ashby | REST | No | No published limit; throttle to avoid HTTP 429 | beginner |
| BambooHR | REST | No | Undocumented; throttle requests conservatively and back off on HTTP 429 | beginner |
| Greenhouse | REST | No | No official limits; 200-500ms between requests recommended | beginner |
| iCIMS | HTML | No | ~500ms between requests; cap concurrent detail fetches at 3 | advanced |
| Lever | REST | No | No published limit; robots.txt sets a 1-second crawl-delay | beginner |
| Oracle Cloud | REST | No | No published limit; ~300ms between requests, max ~3 concurrent recommended | intermediate |
| Personio | REST | No | No official limit; pace ~200ms between requests | beginner |
| SmartRecruiters | REST | No | No published limit; throttle to ~100ms between requests (5 concurrent detail fetches) | intermediate |
| SuccessFactors | Hybrid | Yes | No published limit; ~200ms between requests, 3 concurrent details | advanced |
| Taleo | Hybrid | No | Undocumented; self-throttle ~200ms between requests | advanced |
| UltiPro (UKG) | Hybrid | No | Undocumented; throttle to ~3 concurrent detail fetches, ~200ms apart | intermediate |
| Workable | REST | No | No official limits, but 200-300ms between requests recommended | intermediate |
| Workday | REST | No | No explicit limit (1-2 second delays recommended) | intermediate |
Which ATS platforms can Jobo pull jobs from?
All 107 of them, each with its own guide: what the platform is, how to read it, and what tends to go wrong. Every one returns the same normalized schema.
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
R
S
T
U
W
Z
Read every one of them with a single key
One endpoint, one schema, one rate limit. Add a platform to your integration by changing a query parameter, not by writing another scraper.