Authenticate against the Lever Data API using HTTP Basic Auth with your API key as the username and an empty password; base URL is https://api.lever.co/v1; for partner/multi-tenant apps use OAuth 2.0 Authorization Code flow with the audience parameter required in production
Retrieve all opportunities (candidates) by calling GET /v1/opportunities with pagination; use the limit (max 100 per page) and offset parameters, iterating until the hasNext field in the response is false
For each opportunity, retrieve associated feedback forms by calling GET /v1/opportunities/{opportunityId}/feedback; the response array contains form objects with fields (type, text, value), the completing user ID, the stage ID, and timestamps
Supplement feedback data with interviewer details by calling GET /v1/users/{userId} for each unique userId found in the feedback forms
Use Lever's Data Warehouse Sync (DWS) feature if you need a complete historical snapshot; DWS provides database credentials for direct access to a read replica of your Lever reporting data, updated once per day — suitable for bulk initial loads
For ongoing incremental sync, use the updated_at_start query parameter on /v1/opportunities to retrieve only records modified since your last sync timestamp; store the high-water mark after each successful run
Known gotchas
The Lever Data API rate limit is 10 requests per second per API key with a burst up to 20 requests per second; fetching feedback for thousands of opportunities individually will hit this limit — batch requests and implement back-off
Lever's feedback forms contain free-text fields with potentially sensitive interviewer commentary; ensure data warehouse storage complies with your organization's data retention and access policies before syncing
OAuth access tokens expire after 1 hour and refresh tokens rotate on each use; if your sync job runs longer than 1 hour, implement token refresh mid-run rather than re-authenticating from scratch
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp