Skip to main content

Lever Hiring

This page guides you through setting up the Lever Hiring source connector. The connector reads recruiting data from the Lever API.

Prerequisites

  • A Lever account
  • One of the following credentials:
    • API key (recommended for most users): Create one in Lever under Settings > Integrations and API > API Credentials. Lever notes that API keys are intended for internal workflows and carry broad privileges, so store the key securely.
    • OAuth client ID, client secret, and refresh token: Lever offers OAuth only to registered partner applications through its partner program. If you use Airbyte Cloud, you can authenticate through the Airbyte-managed OAuth flow without creating your own app.
  • Whether your Lever account is a Production or Sandbox environment. The connector calls api.lever.co for production and api.sandbox.lever.co for sandbox.

Setup guide

  1. In the Airbyte UI, select Sources and then New source.
  2. Search for and select Lever Hiring.
  3. Enter a Source name.
  4. For Start Date, enter a UTC timestamp in the format YYYY-MM-DDTHH:MM:SSZ, for example 2021-03-01T00:00:00Z. The connector passes this value as the updated_at_start request parameter when it lists opportunities. Opportunities last updated before this date, and their related applications, interviews, notes, offers, and referrals, aren't replicated. It has no effect on the users stream.
  5. For Environment, select Production or Sandbox. The default is Sandbox, so change it to Production if you connect to a regular Lever account.
  6. For Authentication Mechanism, choose one of the following:
    • Authenticate via Lever (Api Key): Enter your Lever API key.
    • Authenticate via Lever (OAuth): On Airbyte Cloud, use the OAuth button to sign in to Lever and grant access. On self-managed Airbyte, enter the Client ID, Client Secret, and Refresh Token for your registered Lever OAuth app. The refresh token must have been issued with the offline_access scope.
  7. Select Set up source.

The connector verifies your credentials by requesting the users endpoint.

Supported sync modes

FeatureSupported?
Full Refresh SyncYes
Incremental - Append SyncYes (opportunities only)
NamespacesNo

Supported streams

StreamLever endpointSync modesNotes
OpportunitiesGET /opportunitiesFull Refresh, IncrementalIncremental syncs use the updatedAt field as the cursor and request 30-day windows with updated_at_start and updated_at_end.
UsersGET /usersFull RefreshIncludes deactivated users (includeDeactivated=true). Not filtered by Start Date.
ApplicationsGET /opportunities/{id}/applicationsFull RefreshFetched per opportunity.
InterviewsGET /opportunities/{id}/interviewsFull RefreshFetched per opportunity.
NotesGET /opportunities/{id}/notesFull RefreshFetched per opportunity.
OffersGET /opportunities/{id}/offersFull RefreshFetched per opportunity.
ReferralsGET /opportunities/{id}/referralsFull RefreshFetched per opportunity.

The applications, interviews, notes, offers, and referrals streams first list opportunities using the same updated_at_start/updated_at_end windows as the opportunities stream, starting from your Start Date, then request the child records for each opportunity. Records belonging to opportunities outside that window aren't synced. Because each opportunity requires one request per child stream, syncing these streams for a large Lever account can take a long time.

Lever's updated_at_start filter matches any change to an opportunity, while the updatedAt field the connector uses as its cursor only reflects changes to a specific set of opportunity fields. Keep this in mind if incremental syncs return opportunities you didn't expect, or miss changes you did.

Limitations and troubleshooting

Rate limits

Lever rate limits requests per API key using a token bucket: a steady state of 10 requests per second, with bursts up to 20 requests per second. There are no endpoint-specific limits. The connector retries requests that Lever rejects with 429 Too Many Requests. See Lever rate limits.

Incremental syncs stuck on the same records

Versions before 0.4.42 used a cursor granularity that didn't match the millisecond timestamps Lever returns, which could cause incremental syncs of the opportunities stream to repeatedly re-request the same window. Upgrade to 0.4.42 or later to resolve this.

IP allow list

If you use Airbyte Cloud and your organization restricts access to specific IPs, add the Airbyte Cloud IP addresses to your allow list.

Reference

Config fields reference

Field
Type
Property name
string
start_date
object
credentials
string
environment

Changelog

Expand to review
VersionDatePull RequestSubject
0.4.422026-09-0380293Fix incremental cursor stuck by aligning cursor_granularity with millisecond datetime_format
0.4.412026-08-1884669Update dependencies
0.4.402026-08-1184028Update dependencies
0.4.392026-08-0483535Update dependencies
0.4.382026-07-2883011Update dependencies
0.4.372026-07-2182510Update dependencies
0.4.362026-07-1481920Update dependencies
0.4.352026-06-3081138Update dependencies
0.4.342026-06-2380552Update dependencies
0.4.332026-06-1679956Update dependencies
0.4.322026-06-0979384Update dependencies
0.4.312026-06-0278801Update dependencies
0.4.302026-04-2877295Update dependencies
0.4.292026-04-2176653Update dependencies
0.4.282026-03-3175032Update dependencies
0.4.272026-02-2473939Update dependencies
0.4.262026-02-1773554Update dependencies
0.4.252026-02-1073047Update dependencies
0.4.242026-02-0372762Update dependencies
0.4.232026-01-2072002Update dependencies
0.4.222026-01-1471449Update dependencies
0.4.212025-12-1870794Update dependencies
0.4.202025-11-2569501Update dependencies
0.4.192025-10-2968936Update dependencies
0.4.182025-10-2168331Update dependencies
0.4.172025-10-1468064Update dependencies
0.4.162025-10-0767526Update dependencies
0.4.152025-09-3066814Update dependencies
0.4.142025-09-2466648Update dependencies
0.4.132025-09-0966083Update dependencies
0.4.122025-08-2365324Update dependencies
0.4.112025-08-0964602Update dependencies
0.4.102025-08-0264302Update dependencies
0.4.92025-07-2663847Update dependencies
0.4.82025-07-1963519Update dependencies
0.4.72025-07-1263111Update dependencies
0.4.62025-07-0562598Update dependencies
0.4.52025-06-2862189Update dependencies
0.4.42025-06-2161808Update dependencies
0.4.32025-06-1448264Update dependencies
0.4.22024-10-2843750Update dependencies
0.4.12024-08-1644196Bump source-declarative-manifest version
0.4.02024-08-1544133Refactor connector to manifest-only format
0.3.12024-06-0439082[autopull] Upgrade base image to v1.2.1
0.3.02024-05-0836262Migrate to Low Code
0.2.02023-05-2526564Migrate to advancedAuth
0.1.32022-10-1417996Add Basic Auth management
0.1.22021-12-309214Update title and descriptions
0.1.12021-12-167677OAuth Automated Authentication
0.1.02021-09-226141Add Lever Hiring Source Connector