ATS APIs can return transient errors (529, 503, 429). Currently no retry logic exists.
What to build
- Retry with exponential backoff (3 attempts, 1s/2s/4s delays)
- Handle 429 (rate limited): respect Retry-After header if present
- Handle 529/503 (server overload): retry after delay
- Handle timeouts: 10s per request, retry on timeout
- Log warnings on retries so users know what happened
Per-platform notes
- Greenhouse: no documented rate limits for public board API, but transient 529s observed
- Ashby: GraphQL endpoint, no known rate limits
- Lever: no known rate limits for public postings API
Why this matters
- For MCP server: AI agents may make rapid sequential requests
- For bulk registry verification: checking 100+ companies hits APIs fast
- For Pursuit integration: watchlist of 10+ companies fetches in parallel
Implementation
Add retry wrapper in a shared utility, used by all adapters:
async function fetchWithRetry(url, options, maxRetries = 3) {
// exponential backoff, respect 429 Retry-After
}
ATS APIs can return transient errors (529, 503, 429). Currently no retry logic exists.
What to build
Per-platform notes
Why this matters
Implementation
Add retry wrapper in a shared utility, used by all adapters: