Lever · AsyncAPI Specification

Lever Webhooks

Version

View Spec View on GitHub Human ResourcesApplicant TrackingRecruitingTalent AcquisitionSoftware-as-a-ServiceAsyncAPIEvents

AsyncAPI Specification

Raw ↑
generated: '2026-11-05'
method: searched
source: https://hire.lever.co/developer/documentation#webhooks
docs:
- https://hire.lever.co/developer/documentation#webhooks
- https://hire.lever.co/developer/documentation#webhooks-via-the-api
description: Lever sends an HTTP POST JSON payload to a per-event configured URL. Webhooks are configured by a Super
  Admin in Settings > Integrations and API > Webhooks, or through the Webhooks API (GET/POST/PUT/DELETE /webhooks).
transport:
  method: POST
  content_type: application/json
  user_agent: Lever-Webhooks
  https_only: true
  https_note: We only support HTTPS enabled endpoints. We verify the SSL certificate against a Certificate Authority
    and, as such, the use of self-signed SSL certificates is not supported.
envelope:
  id: Event UID
  event: event type, e.g. candidateHired
  triggeredAt: Timestamp when the webhook event was triggered
  token: Randomly generated string with length 48
  signature: Hash of concatenated token and triggeredAt values
  data: Data payload custom for each event
security:
  mechanism: HMAC-SHA256 signature carried in the request BODY (signature field), not a header
  key: signature token generated/regenerated on the integrations settings admin page (signatureToken in the Webhooks
    API configuration object)
  algorithm: Concatenate token and triggeredAt values; encode the resulting string with the HMAC algorithm (using
    your signature token as a key and SHA256 digest mode); compare the resulting hexdigest to the signature
  replay_protection: Optionally, you can cache the token value locally and not honor any subsequent request with
    the same token. You can also check if the timestamp is not too far from the current time.
  signature_header: null
delivery:
  acknowledge: To acknowledge you received the webhook without any problem, your server should return a 2xx HTTP
    status code.
  failure: Any response code outside the 2xx range, including 3xx codes, will indicate to Lever that you did not
    receive the webhook.
  retries: Lever will continue trying to send the webhook five times, waiting longer and longer in between tries.
  retry_count: 5
  backoff: increasing
  history: the most recent webhooks from (up to 1,000 requests) from the past two weeks on the webhook configuration
    page
  manual_rerun: true
  test_request: Lever will send a sample request and will indicate whether the request succeeds (2xx) or fails.
event_configuration:
  conditions: Currently, these conditions are only available on candidate source
  condition_values:
  - applied
  - sourced
  - referred
  - university
  - agency
  - internal
  configurable_events:
  - applicationCreated
  - candidateHired
  - candidateStageChange
  - candidateArchiveChange
  non_configurable_events:
  - candidateDeleted
  - interviewCreated
  - interviewUpdated
  - interviewDeleted
  - contactCreated
  - contactUpdated
events:
- name: applicationCreated
  description: Triggers when a candidate application is created in Lever.
  configurable: true
- name: candidateHired
  description: Triggers when a candidate is marked as hired in Lever.
  configurable: true
- name: candidateStageChange
  description: Triggers when a candidate moves from one stage to another in Lever.
  configurable: true
- name: candidateArchiveChange
  description: Triggers when a candidate is archived or unarchived in Lever.
  configurable: true
- name: candidateDeleted
  description: null
  configurable: false
- name: interviewCreated
  description: null
  configurable: false
- name: interviewUpdated
  description: null
  configurable: false
- name: interviewDeleted
  description: null
  configurable: false
- name: contactCreated
  description: Added March 27, 2023 (API Updates).
  configurable: false
- name: contactUpdated
  description: Added March 27, 2023 (API Updates).
  configurable: false
management_api:
  list: GET /webhooks
  create: POST /webhooks
  update: PUT /webhooks/:webhookId
  delete: DELETE /webhooks/:webhookId
  scopes:
  - webhooks:read:admin
  - webhooks:write:admin

Work with this as data

Every AsyncAPI spec here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for asyncapi

4 MCP tools reach this
  • find_asyncapisBrowse and filter every AsyncAPI spec in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/lever-webhooks"
All asyncapi
curl "https://apis.io/api/v1/asyncapis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.