> **Building with AI coding agents?** Install the authstack plugin with one command. This equips your agent with accurate Scalekit implementation patterns.
>
> **Recommended** (the `-y` flags skip prompts, so the command runs without an interactive terminal):
> ```bash
> npx -y @scalekit-inc/cli setup -y
> ```
>
> Global:
> ```bash
> npm install -g @scalekit-inc/cli
> scalekit setup -y
> ```
>
> Supports Claude Code, Cursor, GitHub Copilot, Codex + skills for other Agent Skills-compatible agents in `~/.agents/skills`.
> Skills: integrate-agentkit, implement-saaskit, add-mcp-oauth, implement-sso, implement-scim.
> [Full setup guide](https://docs.scalekit.com/dev-kit/build-with-ai/)

---

# Connect AI agents to Lever

The Lever connector lets your AI agent act in each user's Lever account. Each user signs in to Lever once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 77 tools.

**Authentication:** OAuth 2.0
**Categories:** Productivity
**Tools:** 77: 46 read, 25 write, 6 destructive
**Users sign in with:** OAuth
**OAuth app:** Your own Lever app
**Built by:** Scalekit connector
**Try it:** [Playground in the Scalekit dashboard](https://app.scalekit.com/ws/signup?sk_intent=playground&provider=LEVER)

## Setup

1. ### Install the SDK

   **Node.js**

   ```bash
   npm install @scalekit-sdk/node dotenv
   ```

   **Python**

   ```bash
   pip install scalekit-sdk-python python-dotenv
   ```

2. ### Set your credentials

   Add your Scalekit credentials to your `.env` file. Find values in **[app.scalekit.com](https://app.scalekit.com)** > **Developers** > **API Credentials**.

   ```sh title=".env"
   SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
   SCALEKIT_CLIENT_ID=<your-client-id>
   SCALEKIT_CLIENT_SECRET=<your-client-secret>
   ```

3. ### Create the Lever connection

   In **AgentKit > Connections**, create a Lever connection and copy its redirect URI. The name you give it is the `connection_name` your code passes. See [Configure connections](/agentkit/connections/).

4. ### Register an OAuth app

   Lever connections use your own OAuth app. Register one with Lever and add the redirect URI you copied.

   Then enter the app's Client ID and Client Secret on the Lever connection.

5. ### Authorize a user and make your first call

   **Node.js** (`quickstart.mts`)

   ```typescript
   import { ScalekitClient } from '@scalekit-sdk/node'
   import 'dotenv/config'
   import { createInterface } from 'node:readline/promises'

   const scalekit = new ScalekitClient(
     process.env.SCALEKIT_ENVIRONMENT_URL,
     process.env.SCALEKIT_CLIENT_ID,
     process.env.SCALEKIT_CLIENT_SECRET,
   )
   const actions = scalekit.actions

   const connector = 'lever'
   const identifier = 'user_123'

   // Generate an authorization link for the user
   const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
   console.log('Authorize Lever:', link)
   const rl = createInterface({ input: process.stdin, output: process.stdout })
   await rl.question('Press Enter after authorizing...')
   rl.close()

   // Make your first call
   const result = await actions.executeTool({
     connector,
     identifier,
     toolName: 'lever_archive_reasons_list',
     toolInput: {},
   })
   console.log(result)
   ```

   ```bash
   npx tsx quickstart.mts
   ```

   **Python** (`quickstart.py`)

   ```python
   import os
   from scalekit import ScalekitClient
   from dotenv import load_dotenv
   load_dotenv()

   scalekit_client = ScalekitClient(
       env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),
       client_id=os.getenv("SCALEKIT_CLIENT_ID"),
       client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),
   )
   actions = scalekit_client.actions

   connection_name = "lever"
   identifier = "user_123"

   # Generate an authorization link for the user
   link_response = actions.get_authorization_link(
       connection_name=connection_name,
       identifier=identifier,
   )
   print("Authorize Lever:", link_response.link)
   input("Press Enter after authorizing...")

   # Make your first call
   result = actions.execute_tool(
       tool_input={},
       tool_name="lever_archive_reasons_list",
       connection_name=connection_name,
       identifier=identifier,
   )
   print(result)
   ```

   ```bash
   python quickstart.py
   ```

   Each user signs in once. See [Authorize a user](/agentkit/tools/authorize/) for the full flow and statuses.

## Tools

Pass the exact name to `execute_tool`, with an input like each tool's example. To ask for a tool that's missing, use the [request form](https://scalekitsupport.portal.usepylon.com/forms/request-a-connector-tool).

**Node.js**

```typescript
const result = await actions.executeTool({
  toolName: 'lever_applications_deleted_list',
  toolInput: {
    deleted_at_end: 1407460069499,
    deleted_at_start: 1407460069499,
  },
  connector: 'lever',
  identifier: 'user_123',
})
```

**Python**

```python
result = actions.execute_tool(
    tool_name="lever_applications_deleted_list",
    tool_input={
        "deleted_at_end": 1407460069499,
        "deleted_at_start": 1407460069499,
    },
    connection_name="lever",
    identifier="user_123",
)
```

`result.data` is the app's response as JSON, and `result.execution_id` (`executionId` in Node.js) is the ID of the call.

### `lever_applications_deleted_list`

List Deleted Applications · Read-only

List applications deleted from the Lever account within a time window of at most 30 days. Returns a page of deleted applications with id, deletedAt, opportunityId and postingId. Use this to sync application deletions. Use lever_opportunity_get with expand applications for live applications.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `deleted_at_end` (`integer`, required): End of the deletion window (exclusive). The window may not exceed 30 days. Unix timestamp in milliseconds. Example: 1407460069499
- `deleted_at_start` (`integer`, required): Start of the deletion window (inclusive). The window may not exceed 30 days. Unix timestamp in milliseconds. Example: 1407460069499
- `limit` (`integer`, optional): Maximum number of results to return per page, between 1 and 100. Lever defaults to its own page size when omitted. Example: 50
- `offset` (`string`, optional): Pagination cursor. Pass the next value returned by the previous page of this list to fetch the following page. Omit for the first page. Example: 0.1414895548650.a6070140-33db-407c-91f5-2760e15c8e94

Example input: `{"deleted_at_end":1407460069499,"deleted_at_start":1407460069499}`

### `lever_archive_reason_get`

Get Archive Reason · Read-only

Retrieve one archive reason. Returns the reason id, text, status and type. Use this to resolve an archive reason UID. Use lever_archive_reasons_list for every reason.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `archive_reason_id` (`string`, required): Archive reason UID. Get it from lever_archive_reasons_list. Example: 63dd55b2-a99f-4e7b-985f-22c7bf80ab42

Example input: `{"archive_reason_id":"<archive_reason_id>"}`

### `lever_archive_reasons_list`

List Archive Reasons · Read-only

List the archive reasons in the Lever account, optionally only hired or non-hired ones. Returns archive reasons with id, text, status and type. Use this to get a reason UID for lever_opportunity_archive.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `limit` (`integer`, optional): Maximum number of results to return per page, between 1 and 100. Lever defaults to its own page size when omitted. Example: 50
- `offset` (`string`, optional): Pagination cursor. Pass the next value returned by the previous page of this list to fetch the following page. Omit for the first page. Example: 0.1414895548650.a6070140-33db-407c-91f5-2760e15c8e94
- `type` (`string`, optional): Return only reasons of this type. Allowed values: hired, non-hired. Example: non-hired. One of: `hired`, `non-hired`.

Example input: `{}`

### `lever_contact_get`

Get Contact · Read-only

Retrieve the contact record of a person, shared across all of their opportunities. Returns the contact with id, name, headline, location, emails, phones and isAnonymized. Use this to read a candidate's personal details. Use lever_opportunity_get for one candidacy. Requires a contact UID from the contact field of lever_opportunity_get.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `contact_id` (`string`, required): Contact UID. Get it from the contact field of lever_opportunity_get or lever_opportunities_list. Example: 7f23e772-f2cb-4ebb-b33f-54b872999992

Example input: `{"contact_id":"<contact_id>"}`

### `lever_disposition_stages_list`

List Disposition Stages · Read-only

List the account's full pipeline configuration: every stage with its pipeline, rank and hasInterview, plus every archive reason. Returns stages and archive reasons in one response. Use this to map Lever's pipeline to another system. Use lever_stages_list or lever_archive_reasons_list for a single list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `lever_diversity_survey_get`

Get Diversity Survey · Read-only

Retrieve the active diversity survey that applies to a posting's location, or to a candidate-selected country. Returns the survey with id, text, instructions, locations and fields (questions with their answer options). Use this to build the diversitySurvey answers for lever_posting_apply.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `posting_id` (`string`, required): Posting UID. Get it from lever_postings_list. Example: f2f01e16-27f8-4711-a728-7d49499795a0
- `country_code` (`string`, optional): Country code used to pick a candidate self-select location survey. Example: US

Example input: `{"posting_id":"<posting_id>"}`

### `lever_feedback_get`

Get Feedback · Read-only

Retrieve one feedback form on an opportunity. Returns the feedback form with its fields and values, user, panel, interview and timestamps. Use this when you have a feedback ID. Use lever_feedback_list to browse feedback.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `feedback_id` (`string`, required): Feedback form UID. Get it from lever_feedback_list. Example: c64fb192-d6d8-42dc-ac82-47cb87e9839c
- `opportunity_id` (`string`, required): UID of the opportunity (one candidacy of a contact for a role). Get it from lever_opportunities_list (id field). Example: 250d8f03-738a-4bba-a671-8a3d73477145
- `expand` (`array`, optional): Related objects to return inline as full objects instead of IDs. Allowed values: user. Example: ["user"]

Example input: `{"feedback_id":"<feedback_id>","opportunity_id":"<opportunity_id>"}`

### `lever_feedback_list`

List Feedback · Read-only

List the feedback forms submitted for an opportunity, typically completed by interviewers. Returns feedback forms with id, type, text, baseTemplateId, fields with their values, user, panel, interview and timestamps. Use this to read interview scorecards. Use lever_feedback_get for one form and lever_notes_list for free-form notes.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `opportunity_id` (`string`, required): UID of the opportunity (one candidacy of a contact for a role). Get it from lever_opportunities_list (id field). Example: 250d8f03-738a-4bba-a671-8a3d73477145
- `expand` (`array`, optional): Related objects to return inline as full objects instead of IDs. Allowed values: user. Example: ["user"]
- `limit` (`integer`, optional): Maximum number of results to return per page, between 1 and 100. Lever defaults to its own page size when omitted. Example: 50
- `offset` (`string`, optional): Pagination cursor. Pass the next value returned by the previous page of this list to fetch the following page. Omit for the first page. Example: 0.1414895548650.a6070140-33db-407c-91f5-2760e15c8e94

Example input: `{"opportunity_id":"<opportunity_id>"}`

### `lever_feedback_template_get`

Get Feedback Template · Read-only

Retrieve one feedback template. Returns the template with id, text, group, instructions, stage and fields. Use this to read a template's field IDs and options. Use lever_feedback_templates_list to browse templates.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `feedback_template_id` (`string`, required): Feedback template UID. Get it from lever_feedback_templates_list. Example: 5b0f589c-b0c2-4e84-bf83-0f2ca48fc48a

Example input: `{"feedback_template_id":"<feedback_template_id>"}`

### `lever_feedback_templates_list`

List Feedback Templates · Read-only

List the active feedback templates in the Lever account, including the default no-feedback template. Returns templates with id, text, group, instructions, stage and fields (each field's id, type, text and options). Use this to find a baseTemplateId and field IDs before lever_feedback_create. Use lever_feedback_template_get for one template.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `limit` (`integer`, optional): Maximum number of results to return per page, between 1 and 100. Lever defaults to its own page size when omitted. Example: 50
- `offset` (`string`, optional): Pagination cursor. Pass the next value returned by the previous page of this list to fetch the following page. Omit for the first page. Example: 0.1414895548650.a6070140-33db-407c-91f5-2760e15c8e94

Example input: `{}`

### `lever_file_get`

Get File · Read-only

Retrieve one file's metadata on an opportunity. Returns the file with id, name, ext, size, status, uploadedAt and downloadUrl. Use this when you have a file ID. Use lever_files_list to browse files.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `file_id` (`string`, required): File UID. Get it from lever_files_list. Example: b02a3b97-dc41-48e3-b003-44d211ed2a4c
- `opportunity_id` (`string`, required): UID of the opportunity (one candidacy of a contact for a role). Get it from lever_opportunities_list (id field). Example: 250d8f03-738a-4bba-a671-8a3d73477145

Example input: `{"file_id":"<file_id>","opportunity_id":"<opportunity_id>"}`

### `lever_files_list`

List Files · Read-only

List the files attached to an opportunity, such as cover letters and portfolios, optionally by upload date. Returns files with id, name, ext, size, status, uploadedAt and downloadUrl. Use this to see a candidate's attachments. Use lever_resumes_list for resumes.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `opportunity_id` (`string`, required): UID of the opportunity (one candidacy of a contact for a role). Get it from lever_opportunities_list (id field). Example: 250d8f03-738a-4bba-a671-8a3d73477145
- `limit` (`integer`, optional): Maximum number of results to return per page, between 1 and 100. Lever defaults to its own page size when omitted. Example: 50
- `offset` (`string`, optional): Pagination cursor. Pass the next value returned by the previous page of this list to fetch the following page. Omit for the first page. Example: 0.1414895548650.a6070140-33db-407c-91f5-2760e15c8e94
- `uploaded_at_end` (`integer`, optional): Return files uploaded at or before this time. Unix timestamp in milliseconds. Example: 1407460069499
- `uploaded_at_start` (`integer`, optional): Return files uploaded at or after this time. Unix timestamp in milliseconds. Example: 1407460069499

Example input: `{"opportunity_id":"<opportunity_id>"}`

### `lever_form_template_get`

Get Profile Form Template · Read-only

Retrieve one profile form template. Returns the template with id, text, group, instructions, secretByDefault and fields. Use this to read the fields a profile form must contain. Use lever_form_templates_list to browse templates.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `form_template_id` (`string`, required): Profile form template UID. Get it from lever_form_templates_list. Example: 5b0f589c-b0c2-4e84-bf83-0f2ca48fc48a

Example input: `{"form_template_id":"<form_template_id>"}`

### `lever_form_templates_list`

List Profile Form Templates · Read-only

List the active profile form templates in the Lever account. Returns templates with id, text, group, instructions, secretByDefault and fields; use include to return only some attributes. Use this to find a baseTemplateId and its fields before lever_profile_form_create.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `include` (`array`, optional): Return only these attributes. Allowed values: text, group, fields. Example: ["text", "group"]
- `limit` (`integer`, optional): Maximum number of results to return per page, between 1 and 100. Lever defaults to its own page size when omitted. Example: 50
- `offset` (`string`, optional): Pagination cursor. Pass the next value returned by the previous page of this list to fetch the following page. Omit for the first page. Example: 0.1414895548650.a6070140-33db-407c-91f5-2760e15c8e94

Example input: `{}`

### `lever_interview_get`

Get Interview · Read-only

Retrieve one interview on an opportunity. Returns the interview with panel, subject, interviewers, date, duration, location, feedback forms and conference details. Use this when you have an interview ID. Use lever_interviews_list to browse.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `interview_id` (`string`, required): Interview UID. Get it from lever_interviews_list. Example: 6ff55c8e-fe04-4eb4-835a-630b1c0da421
- `opportunity_id` (`string`, required): UID of the opportunity (one candidacy of a contact for a role). Get it from lever_opportunities_list (id field). Example: 250d8f03-738a-4bba-a671-8a3d73477145
- `expand` (`array`, optional): Related objects to return inline as full objects instead of IDs. Allowed values: user, stage, postings, feedbackForms. Example: ["user"]

Example input: `{"interview_id":"<interview_id>","opportunity_id":"<opportunity_id>"}`

### `lever_interviews_list`

List Interviews · Read-only

List the interviews scheduled for an opportunity. Returns interviews with id, panel, subject, interviewers, date, duration, location, timezone, feedbackForms, stage, canceledAt and conferences. Use this to see a candidate's interview schedule. Use lever_panels_list for panels and lever_interview_get for one interview.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `opportunity_id` (`string`, required): UID of the opportunity (one candidacy of a contact for a role). Get it from lever_opportunities_list (id field). Example: 250d8f03-738a-4bba-a671-8a3d73477145
- `expand` (`array`, optional): Related objects to return inline as full objects instead of IDs. Allowed values: user, stage, postings, feedbackForms. Example: ["user"]
- `limit` (`integer`, optional): Maximum number of results to return per page, between 1 and 100. Lever defaults to its own page size when omitted. Example: 50
- `offset` (`string`, optional): Pagination cursor. Pass the next value returned by the previous page of this list to fetch the following page. Omit for the first page. Example: 0.1414895548650.a6070140-33db-407c-91f5-2760e15c8e94

Example input: `{"opportunity_id":"<opportunity_id>"}`

### `lever_note_get`

Get Note · Read-only

Retrieve one note on an opportunity. Returns the note with id, text, fields, user, secret and timestamps. Use this when you have a note ID. Use lever_notes_list to browse notes.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `note_id` (`string`, required): Note UID. Get it from lever_notes_list. Example: b1dbbcfe-281c-46a0-8f51-57049158d3f3
- `opportunity_id` (`string`, required): UID of the opportunity (one candidacy of a contact for a role). Get it from lever_opportunities_list (id field). Example: 250d8f03-738a-4bba-a671-8a3d73477145
- `expand` (`array`, optional): Related objects to return inline as full objects instead of IDs. Allowed values: user. Example: ["user"]

Example input: `{"note_id":"<note_id>","opportunity_id":"<opportunity_id>"}`

### `lever_notes_list`

List Notes · Read-only

List the notes on an opportunity's profile. Returns a page of notes with id, text, fields (the note values), user, secret, createdAt and completedAt. Use this to read the discussion on a candidate. Use lever_note_get for one note and lever_feedback_list for interview feedback.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `opportunity_id` (`string`, required): UID of the opportunity (one candidacy of a contact for a role). Get it from lever_opportunities_list (id field). Example: 250d8f03-738a-4bba-a671-8a3d73477145
- `expand` (`array`, optional): Related objects to return inline as full objects instead of IDs. Allowed values: user. Example: ["user"]
- `limit` (`integer`, optional): Maximum number of results to return per page, between 1 and 100. Lever defaults to its own page size when omitted. Example: 50
- `offset` (`string`, optional): Pagination cursor. Pass the next value returned by the previous page of this list to fetch the following page. Omit for the first page. Example: 0.1414895548650.a6070140-33db-407c-91f5-2760e15c8e94

Example input: `{"opportunity_id":"<opportunity_id>"}`

### `lever_offers_list`

List Offers · Read-only

List the offers made on an opportunity. Returns offers with id, status (draft, approval-sent, approved, sent, sent-manually, opened, denied, signed), creator, fields, signatures, sentDocument, signedDocument and timestamps. Use this to check offer status and terms for a candidate.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `opportunity_id` (`string`, required): UID of the opportunity (one candidacy of a contact for a role). Get it from lever_opportunities_list (id field). Example: 250d8f03-738a-4bba-a671-8a3d73477145
- `expand` (`array`, optional): Related objects to return inline as full objects instead of IDs. Allowed values: creator. Example: ["creator"]
- `limit` (`integer`, optional): Maximum number of results to return per page, between 1 and 100. Lever defaults to its own page size when omitted. Example: 50
- `offset` (`string`, optional): Pagination cursor. Pass the next value returned by the previous page of this list to fetch the following page. Omit for the first page. Example: 0.1414895548650.a6070140-33db-407c-91f5-2760e15c8e94

Example input: `{"opportunity_id":"<opportunity_id>"}`

### `lever_opportunities_deleted_list`

List Deleted Opportunities · Read-only

List opportunities that were deleted from the Lever account, optionally within a deletion time window. Returns a page of deleted opportunities with id, deletedAt and deletedBy. Use this to sync deletions into another system. Use lever_opportunities_list for live opportunities.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `deleted_at_end` (`integer`, optional): Return opportunities deleted at or before this time. Unix timestamp in milliseconds. Example: 1407460069499
- `deleted_at_start` (`integer`, optional): Return opportunities deleted at or after this time. Unix timestamp in milliseconds. Example: 1407460069499
- `limit` (`integer`, optional): Maximum number of results to return per page, between 1 and 100. Lever defaults to its own page size when omitted. Example: 50
- `offset` (`string`, optional): Pagination cursor. Pass the next value returned by the previous page of this list to fetch the following page. Omit for the first page. Example: 0.1414895548650.a6070140-33db-407c-91f5-2760e15c8e94

Example input: `{}`

### `lever_opportunities_list`

List Opportunities · Read-only

List opportunities (candidacies) in the Lever account, filtered by tag, email, stage, posting, contact, origin, archive state or date ranges. Returns a page of opportunity objects with id, name, contact, stage, tags, sources, owner, archived and timestamps, plus next and hasNext for paging. Use this to find candidates or browse a pipeline. Use lever_opportunity_get when you already have an opportunity ID.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `advanced_at_end` (`integer`, optional): Return opportunities advanced to their current stage at or before this time. Unix timestamp in milliseconds. Example: 1407460069499
- `advanced_at_start` (`integer`, optional): Return opportunities advanced to their current stage at or after this time. Unix timestamp in milliseconds. Example: 1407460069499
- `archive_reason_id` (`array`, optional): Return opportunities archived with any of these archive reason UIDs. Get them from lever_archive_reasons_list. Example: ["63dd55b2-a99f-4e7b-985f-22c7bf80ab42"]
- `archived` (`boolean`, optional): true returns only archived opportunities, false only active ones. Omit to return both. Example: false
- `archived_at_end` (`integer`, optional): Return opportunities archived at or before this time. Unix timestamp in milliseconds. Example: 1407460069499
- `archived_at_start` (`integer`, optional): Return opportunities archived at or after this time. Unix timestamp in milliseconds. Example: 1407460069499
- `archived_posting_id` (`array`, optional): Return opportunities whose application to any of these posting UIDs was archived. Example: ["f2f01e16-27f8-4711-a728-7d49499795a0"]
- `confidentiality` (`string`, optional): Filter by confidentiality. Lever defaults to non-confidential; pass all to include confidential opportunities (requires confidential access). Allowed values: confidential, non-confidential, all. Example: all. One of: `confidential`, `non-confidential`, `all`.
- `contact_id` (`array`, optional): Return opportunities that belong to any of these contact UIDs (all candidacies of one person). Example: ["7f23e772-f2cb-4ebb-b33f-54b872999992"]
- `created_at_end` (`integer`, optional): Return opportunities created at or before this time. Unix timestamp in milliseconds. Example: 1407460069499
- `created_at_start` (`integer`, optional): Return opportunities created at or after this time. Unix timestamp in milliseconds. Example: 1407460069499
- `email` (`string`, optional): Return only opportunities whose contact has this email address (matched against the canonicalized email). Example: shane@example.com
- `expand` (`array`, optional): Related objects to return inline as full objects instead of IDs. Allowed values: applications, stage, owner, followers, sourcedBy, contact. Example: ["applications"]
- `limit` (`integer`, optional): Maximum number of results to return per page, between 1 and 100. Lever defaults to its own page size when omitted. Example: 50
- `offset` (`string`, optional): Pagination cursor. Pass the next value returned by the previous page of this list to fetch the following page. Omit for the first page. Example: 0.1414895548650.a6070140-33db-407c-91f5-2760e15c8e94
- `origin` (`array`, optional): Return opportunities with any of these origins. Allowed values: agency, applied, internal, referred, sourced, university. Example: ["sourced"]
- `posting_id` (`array`, optional): Return opportunities applied to any of these posting UIDs. Get posting UIDs from lever_postings_list. Example: ["f2f01e16-27f8-4711-a728-7d49499795a0"]
- `snoozed` (`boolean`, optional): true returns only snoozed opportunities, false only unsnoozed ones. Omit to return both. Example: false
- `source` (`array`, optional): Return opportunities that have any of these sources (for example LinkedIn or Referral). Example: ["LinkedIn"]
- `stage_id` (`array`, optional): Return opportunities currently in any of these stage UIDs. Get stage UIDs from lever_stages_list. Example: ["00922a60-7c15-422b-b086-f62000824fd7"]
- `tag` (`array`, optional): Return opportunities that have any of these tags. Tags are case sensitive. Example: ["San Francisco"]
- `updated_at_end` (`integer`, optional): Return opportunities with any change at or before this time. Unix timestamp in milliseconds. Example: 1407460069499
- `updated_at_start` (`integer`, optional): Return opportunities with any change at or after this time. Unix timestamp in milliseconds. Example: 1407460069499

Example input: `{}`

### `lever_opportunity_file_actions_list`

List Opportunity File Actions · Read-only

List file activity (file added, resume imported, file removed) on one opportunity, newest first. Returns a page of file actions with id, type, occurredAt, user and file metadata, plus next and hasNext. Use this to track document changes since a time. Use lever_files_list for the current files.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `opportunity_id` (`string`, required): UID of the opportunity (one candidacy of a contact for a role). Get it from lever_opportunities_list (id field). Example: 250d8f03-738a-4bba-a671-8a3d73477145
- `limit` (`integer`, optional): Maximum number of results to return per page, between 1 and 100. Lever defaults to its own page size when omitted. Example: 50
- `occurred_at_end` (`integer`, optional): Return file actions that occurred before this time (exclusive). Unix timestamp in milliseconds. Example: 1407460069499
- `occurred_at_start` (`integer`, optional): Return file actions that occurred at or after this time (inclusive). Unix timestamp in milliseconds. Example: 1407460069499
- `offset` (`string`, optional): Pagination cursor. Pass the next value returned by the previous page of this list to fetch the following page. Omit for the first page. Example: 0.1414895548650.a6070140-33db-407c-91f5-2760e15c8e94

Example input: `{"opportunity_id":"<opportunity_id>"}`

### `lever_opportunity_get`

Get Opportunity · Read-only

Retrieve one opportunity (candidacy) by its UID. Returns the opportunity with name, headline, contact, emails, phones, links, stage, stageChanges, tags, sources, origin, owner, followers, applications, archived and urls. Use this when you have an opportunity ID. Use lever_opportunities_list to search, and lever_contact_get for the person's contact record.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `opportunity_id` (`string`, required): UID of the opportunity (one candidacy of a contact for a role). Get it from lever_opportunities_list (id field). Example: 250d8f03-738a-4bba-a671-8a3d73477145
- `expand` (`array`, optional): Related objects to return inline as full objects instead of IDs. Allowed values: applications, stage, owner, followers, sourcedBy, contact. Example: ["applications"]

Example input: `{"opportunity_id":"<opportunity_id>"}`

### `lever_panel_get`

Get Interview Panel · Read-only

Retrieve one interview panel on an opportunity. Returns the panel with its interviews, timezone, start, end and externallyManaged flag. Use this when you have a panel ID. Use lever_panels_list to browse panels.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `opportunity_id` (`string`, required): UID of the opportunity (one candidacy of a contact for a role). Get it from lever_opportunities_list (id field). Example: 250d8f03-738a-4bba-a671-8a3d73477145
- `panel_id` (`string`, required): Interview panel UID. Get it from lever_panels_list. Example: fdb313e8-13c5-47de-9e51-6a21a4d76ff6
- `expand` (`array`, optional): Related objects to return inline as full objects instead of IDs. Allowed values: user, stage. Example: ["user"]

Example input: `{"opportunity_id":"<opportunity_id>","panel_id":"<panel_id>"}`

### `lever_panels_list`

List Interview Panels · Read-only

List the interview panels on an opportunity. Returns panels with id, applications, start, end, timezone, note, externallyManaged, externalUrl, stage, user and their interviews. Use this to see how a candidate's interviews are grouped. Use lever_interviews_list for a flat list of interviews.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `opportunity_id` (`string`, required): UID of the opportunity (one candidacy of a contact for a role). Get it from lever_opportunities_list (id field). Example: 250d8f03-738a-4bba-a671-8a3d73477145
- `expand` (`array`, optional): Related objects to return inline as full objects instead of IDs. Allowed values: user, stage. Example: ["user"]
- `limit` (`integer`, optional): Maximum number of results to return per page, between 1 and 100. Lever defaults to its own page size when omitted. Example: 50
- `offset` (`string`, optional): Pagination cursor. Pass the next value returned by the previous page of this list to fetch the following page. Omit for the first page. Example: 0.1414895548650.a6070140-33db-407c-91f5-2760e15c8e94

Example input: `{"opportunity_id":"<opportunity_id>"}`

### `lever_posting_application_questions_get`

Get Posting Application Questions · Read-only

Retrieve the application form of a posting: personal information fields, custom question sets, URL questions and EEO questions, each marked required or optional. Returns the form structure with field ids, types, text and options. Use this before lever_posting_apply to know which fields to send and in what order. Use lever_posting_get for the job description.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `posting_id` (`string`, required): Posting UID. Get it from lever_postings_list. Example: f2f01e16-27f8-4711-a728-7d49499795a0

Example input: `{"posting_id":"<posting_id>"}`

### `lever_posting_get`

Get Posting · Read-only

Retrieve one job posting, including its description content. Returns the posting with text, state, categories, content (description, lists, closing), distributionChannels, owner, hiringManager, requisitionCodes, workplaceType and urls. Use this to read a role's details. Use lever_posting_application_questions_get for its application form and lever_postings_list to find postings.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `posting_id` (`string`, required): Posting UID. Get it from lever_postings_list. Example: f2f01e16-27f8-4711-a728-7d49499795a0
- `distribution` (`string`, optional): Which custom application questions to return: internal or external. Lever returns both when omitted. Example: external. One of: `internal`, `external`.
- `expand` (`array`, optional): Related objects to return inline as full objects instead of IDs. Allowed values: user, owner, hiringManager, followers. Example: ["user"]

Example input: `{"posting_id":"<posting_id>"}`

### `lever_posting_users_list`

List Posting Users · Read-only

List the users and roles that can access a posting's candidates, based on their permissions. Returns the posting summary, users (id, name, email, inheritedFromRoleId) and roles (id, name, isReadOnly). Use this to see who can view a posting's candidates. Use lever_users_list for every user in the account.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `posting_id` (`string`, required): Posting UID. Get it from lever_postings_list. Example: f2f01e16-27f8-4711-a728-7d49499795a0

Example input: `{"posting_id":"<posting_id>"}`

### `lever_postings_deleted_list`

List Deleted Postings · Read-only

List postings deleted from the Lever account within a time window of at most 30 days. Returns a page of deleted postings with id and deletedAt. Use this to sync posting deletions. Use lever_postings_list for live postings.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `deleted_at_end` (`integer`, required): End of the deletion window (exclusive). The window may not exceed 30 days. Unix timestamp in milliseconds. Example: 1407460069499
- `deleted_at_start` (`integer`, required): Start of the deletion window (inclusive). The window may not exceed 30 days. Unix timestamp in milliseconds. Example: 1407460069499
- `limit` (`integer`, optional): Maximum number of results to return per page, between 1 and 100. Lever defaults to its own page size when omitted. Example: 50
- `offset` (`string`, optional): Pagination cursor. Pass the next value returned by the previous page of this list to fetch the following page. Omit for the first page. Example: 0.1414895548650.a6070140-33db-407c-91f5-2760e15c8e94

Example input: `{"deleted_at_end":1407460069499,"deleted_at_start":1407460069499}`

### `lever_postings_list`

List Postings · Read-only

List job postings in the Lever account, filtered by state, team, department, location, work type or tag. Returns a page of postings with id, text, state, distributionChannels, categories, tags, owner, hiringManager, urls and, when included, content and followers. Use this to find open roles. Published postings are returned only for the public job site unless distributionChannel is set. Use lever_posting_get for one posting.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `commitment` (`array`, optional): Return postings with any of these work types, for example Full-time (case sensitive). Example: ["Full-time"]
- `confidentiality` (`string`, optional): Filter by confidentiality. Lever defaults to non-confidential; pass all to include confidential postings. Allowed values: confidential, non-confidential, all. Example: all. One of: `confidential`, `non-confidential`, `all`.
- `department` (`array`, optional): Return postings for any of these departments (case sensitive). Example: ["Engineering"]
- `distributionChannel` (`array`, optional): For published postings, which job sites to include. Pass both public and internal to get every published posting. Example: ["public", "internal"]
- `expand` (`array`, optional): Related objects to return inline as full objects instead of IDs. Allowed values: user, owner, hiringManager, followers. Example: ["user"]
- `group` (`string`, optional): Group the results by one category. Allowed values: location, team, department, commitment. Example: team. One of: `location`, `team`, `department`, `commitment`.
- `include` (`array`, optional): Optional fields to add to each posting. Allowed values: content, followers. Example: ["content"]
- `limit` (`integer`, optional): Maximum number of results to return per page, between 1 and 100. Lever defaults to its own page size when omitted. Example: 50
- `location` (`array`, optional): Return postings for any of these locations (case sensitive). Example: ["San Francisco"]
- `offset` (`string`, optional): Pagination cursor. Pass the next value returned by the previous page of this list to fetch the following page. Omit for the first page. Example: 0.1414895548650.a6070140-33db-407c-91f5-2760e15c8e94
- `state` (`string`, optional): Filter by posting state. Allowed values: published, internal (unlisted), closed, draft, pending, rejected. Example: published. One of: `published`, `internal`, `closed`, `draft`, `pending`, `rejected`.
- `tag` (`array`, optional): Return postings with any of these tags (case sensitive). Example: ["engineering"]
- `team` (`array`, optional): Return postings for any of these teams (case sensitive). Example: ["Sales"]
- `updated_at_end` (`integer`, optional): Return postings updated at or before this time. Can only be combined with confidentiality. Unix timestamp in milliseconds. Example: 1407460069499
- `updated_at_start` (`integer`, optional): Return postings updated at or after this time. Can only be combined with confidentiality. Unix timestamp in milliseconds. Example: 1407460069499

Example input: `{}`

### `lever_profile_form_get`

Get Profile Form · Read-only

Retrieve one completed profile form on an opportunity. Returns the form with its fields and values, user, stage and timestamps. Use this when you have a form ID. Use lever_profile_forms_list to browse forms.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `form_id` (`string`, required): Profile form UID. Get it from lever_profile_forms_list. Example: d0cc2b88-ccd4-4947-8f1b-97df6166904b
- `opportunity_id` (`string`, required): UID of the opportunity (one candidacy of a contact for a role). Get it from lever_opportunities_list (id field). Example: 250d8f03-738a-4bba-a671-8a3d73477145
- `expand` (`array`, optional): Related objects to return inline as full objects instead of IDs. Allowed values: user, stage. Example: ["user"]

Example input: `{"form_id":"<form_id>","opportunity_id":"<opportunity_id>"}`

### `lever_profile_forms_list`

List Profile Forms · Read-only

List the completed profile forms on an opportunity, such as offer information forms. Returns forms with id, text, baseTemplateId, fields with values, user, stage and timestamps. Use this to read structured data recorded on a candidate. Use lever_feedback_list for interview feedback.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `opportunity_id` (`string`, required): UID of the opportunity (one candidacy of a contact for a role). Get it from lever_opportunities_list (id field). Example: 250d8f03-738a-4bba-a671-8a3d73477145
- `expand` (`array`, optional): Related objects to return inline as full objects instead of IDs. Allowed values: user, stage. Example: ["user"]
- `limit` (`integer`, optional): Maximum number of results to return per page, between 1 and 100. Lever defaults to its own page size when omitted. Example: 50
- `offset` (`string`, optional): Pagination cursor. Pass the next value returned by the previous page of this list to fetch the following page. Omit for the first page. Example: 0.1414895548650.a6070140-33db-407c-91f5-2760e15c8e94

Example input: `{"opportunity_id":"<opportunity_id>"}`

### `lever_referral_get`

Get Referral · Read-only

Retrieve one referral form on an opportunity. Returns the referral with its fields, referrer, user, stage and timestamps. Use this when you have a referral ID. Use lever_referrals_list to browse referrals.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `opportunity_id` (`string`, required): UID of the opportunity (one candidacy of a contact for a role). Get it from lever_opportunities_list (id field). Example: 250d8f03-738a-4bba-a671-8a3d73477145
- `referral_id` (`string`, required): Referral UID. Get it from lever_referrals_list. Example: 093e77a4-7424-4420-962a-41b4936630b4
- `expand` (`array`, optional): Related objects to return inline as full objects instead of IDs. Allowed values: referrer, user, stage. Example: ["referrer"]

Example input: `{"opportunity_id":"<opportunity_id>","referral_id":"<referral_id>"}`

### `lever_referrals_list`

List Referrals · Read-only

List the referral forms on an opportunity. Returns referrals with id, text, fields (referrer name, relationship, comments), referrer, user, stage and timestamps. Use this to see who referred a candidate and why.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `opportunity_id` (`string`, required): UID of the opportunity (one candidacy of a contact for a role). Get it from lever_opportunities_list (id field). Example: 250d8f03-738a-4bba-a671-8a3d73477145
- `expand` (`array`, optional): Related objects to return inline as full objects instead of IDs. Allowed values: referrer, user, stage. Example: ["referrer"]
- `limit` (`integer`, optional): Maximum number of results to return per page, between 1 and 100. Lever defaults to its own page size when omitted. Example: 50
- `offset` (`string`, optional): Pagination cursor. Pass the next value returned by the previous page of this list to fetch the following page. Omit for the first page. Example: 0.1414895548650.a6070140-33db-407c-91f5-2760e15c8e94

Example input: `{"opportunity_id":"<opportunity_id>"}`

### `lever_requisition_field_get`

Get Requisition Field · Read-only

Retrieve one custom requisition field definition. Returns the field with id, text, type, isRequired, subfields and options. Use this when you know a field id. Use lever_requisition_fields_list for every field.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `requisition_field_id` (`string`, required): Requisition field id (snake_case). Get it from lever_requisition_fields_list. Example: cost_center

Example input: `{"requisition_field_id":"<requisition_field_id>"}`

### `lever_requisition_fields_list`

List Requisition Fields · Read-only

List the custom requisition field definitions in the Lever account. Returns fields with id, text, type (number, text, date, object or dropdown), isRequired, subfields and options. Use this to build the customFields of lever_requisition_create.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `isRequired` (`boolean`, optional): true returns only required fields, false only optional ones. Example: true
- `limit` (`integer`, optional): Maximum number of results to return per page, between 1 and 100. Lever defaults to its own page size when omitted. Example: 50
- `offset` (`string`, optional): Pagination cursor. Pass the next value returned by the previous page of this list to fetch the following page. Omit for the first page. Example: 0.1414895548650.a6070140-33db-407c-91f5-2760e15c8e94
- `type` (`string`, optional): Return only fields of this type. Allowed values: number, text, date, object, dropdown. Example: object. One of: `number`, `text`, `date`, `object`, `dropdown`.

Example input: `{}`

### `lever_requisition_get`

Get Requisition · Read-only

Retrieve one requisition. Returns the requisition with code, name, status, headcount, compensation band, hiring manager, owner, postings, custom fields, approval and time-to-fill dates. Use this when you have a requisition ID. Use lever_requisitions_list to search.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `requisition_id` (`string`, required): Requisition UID. Get it from lever_requisitions_list. Example: 52881d44-4f95-4fcb-bf28-2b344ea58889
- `expand` (`array`, optional): Related objects to return inline as full objects instead of IDs. Allowed values: creator, hiringManager, owner, postings. Example: ["creator"]

Example input: `{"requisition_id":"<requisition_id>"}`

### `lever_requisitions_list`

List Requisitions · Read-only

List requisitions in the Lever account, filtered by status, requisition code, confidentiality or creation date. Returns a page of requisitions with id, requisitionCode, name, status, headcountTotal, headcountHired, hiringManager, owner, compensationBand, postings, customFields and approval. Use this to review headcount or find a requisition. Use lever_requisition_get when you have its ID.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `confidentiality` (`string`, optional): Filter by confidentiality. Lever defaults to non-confidential. Allowed values: confidential, non-confidential, all. Example: all. One of: `confidential`, `non-confidential`, `all`.
- `created_at_end` (`integer`, optional): Return requisitions created before this time. Unix timestamp in milliseconds. Example: 1407460069499
- `created_at_start` (`integer`, optional): Return requisitions created at or after this time. Unix timestamp in milliseconds. Example: 1407460069499
- `expand` (`array`, optional): Related objects to return inline as full objects instead of IDs. Allowed values: creator, hiringManager, owner, postings. Example: ["creator"]
- `limit` (`integer`, optional): Maximum number of results to return per page, between 1 and 100. Lever defaults to its own page size when omitted. Example: 50
- `offset` (`string`, optional): Pagination cursor. Pass the next value returned by the previous page of this list to fetch the following page. Omit for the first page. Example: 0.1414895548650.a6070140-33db-407c-91f5-2760e15c8e94
- `requisition_code` (`string`, optional): Return the requisition with this HRIS requisition code. Example: ENG-145
- `status` (`string`, optional): Filter by status. Allowed values: open, onHold, closed, draft. Example: open. One of: `open`, `onHold`, `closed`, `draft`.

Example input: `{}`

### `lever_resume_get`

Get Resume · Read-only

Retrieve one resume's metadata and parsed data. Returns the resume with file metadata and parsedData (positions and schools). Use this when you have a resume ID. Use lever_resumes_list to browse resumes.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `opportunity_id` (`string`, required): UID of the opportunity (one candidacy of a contact for a role). Get it from lever_opportunities_list (id field). Example: 250d8f03-738a-4bba-a671-8a3d73477145
- `resume_id` (`string`, required): Resume UID. Get it from lever_resumes_list. Example: 68b3e478-ff21-4529-bd29-23ed016042d7

Example input: `{"opportunity_id":"<opportunity_id>","resume_id":"<resume_id>"}`

### `lever_resumes_list`

List Resumes · Read-only

List the resumes on an opportunity, optionally by upload date. Returns resumes with id, createdAt, file metadata (name, ext, size, downloadUrl) and parsedData (positions and schools). Use this to read a candidate's work history and education. Use lever_files_list for other attachments.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `opportunity_id` (`string`, required): UID of the opportunity (one candidacy of a contact for a role). Get it from lever_opportunities_list (id field). Example: 250d8f03-738a-4bba-a671-8a3d73477145
- `limit` (`integer`, optional): Maximum number of results to return per page, between 1 and 100. Lever defaults to its own page size when omitted. Example: 50
- `offset` (`string`, optional): Pagination cursor. Pass the next value returned by the previous page of this list to fetch the following page. Omit for the first page. Example: 0.1414895548650.a6070140-33db-407c-91f5-2760e15c8e94
- `uploaded_at_end` (`integer`, optional): Return resumes uploaded at or before this time. Unix timestamp in milliseconds. Example: 1407460069499
- `uploaded_at_start` (`integer`, optional): Return resumes uploaded at or after this time. Unix timestamp in milliseconds. Example: 1407460069499

Example input: `{"opportunity_id":"<opportunity_id>"}`

### `lever_sources_list`

List Sources · Read-only

List every candidate source in the Lever account, such as Posting, Referral or LinkedIn. Returns sources with text and count (the number of candidates with that source). Use this to find exact source names for filters and lever_opportunity_sources_add.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `limit` (`integer`, optional): Maximum number of results to return per page, between 1 and 100. Lever defaults to its own page size when omitted. Example: 50
- `offset` (`string`, optional): Pagination cursor. Pass the next value returned by the previous page of this list to fetch the following page. Omit for the first page. Example: 0.1414895548650.a6070140-33db-407c-91f5-2760e15c8e94

Example input: `{}`

### `lever_stage_get`

Get Stage · Read-only

Retrieve one pipeline stage. Returns the stage id and text. Use this to resolve a stage UID to its name. Use lever_stages_list for every stage.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `stage_id` (`string`, required): Stage UID. Get it from lever_stages_list or an opportunity's stage field. Example: 00922a60-7c15-422b-b086-f62000824fd7

Example input: `{"stage_id":"<stage_id>"}`

### `lever_stages_list`

List Stages · Read-only

List the pipeline stages in the Lever account. Returns stages with id and text. Use this to get stage UIDs for lever_opportunity_stage_update and lever_opportunities_list. Use lever_disposition_stages_list for stages plus archive reasons with pipeline order.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `limit` (`integer`, optional): Maximum number of results to return per page, between 1 and 100. Lever defaults to its own page size when omitted. Example: 50
- `offset` (`string`, optional): Pagination cursor. Pass the next value returned by the previous page of this list to fetch the following page. Omit for the first page. Example: 0.1414895548650.a6070140-33db-407c-91f5-2760e15c8e94

Example input: `{}`

### `lever_tags_list`

List Tags · Read-only

List every candidate tag in the Lever account. Returns tags with text and count (the number of candidates tagged). Use this to find exact tag names for filters and lever_opportunity_tags_add.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `limit` (`integer`, optional): Maximum number of results to return per page, between 1 and 100. Lever defaults to its own page size when omitted. Example: 50
- `offset` (`string`, optional): Pagination cursor. Pass the next value returned by the previous page of this list to fetch the following page. Omit for the first page. Example: 0.1414895548650.a6070140-33db-407c-91f5-2760e15c8e94

Example input: `{}`

### `lever_user_get`

Get User · Read-only

Retrieve one Lever user. Returns the user with id, name, username, email, accessRole, photo, jobTitle, managerId, linkedContactIds and deactivatedAt. Use this when you have a user ID. Use lever_users_list to search by email or role.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `user_id` (`string`, required): User UID. Get it from lever_users_list. Example: 8d49b010-cc6a-4f40-ace5-e86061c677ed

Example input: `{"user_id":"<user_id>"}`

### `lever_users_list`

List Users · Read-only

List the users in the Lever account. Only active users are returned unless includeDeactivated is set. Returns a page of users with id, name, username, email, accessRole, jobTitle, managerId and deactivatedAt. Use this to find user IDs for perform_as, owners, interviewers and followers, or usernames for @-mentions. Use lever_user_get for one user.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `accessRole` (`string`, optional): Return users with this access role: super admin, admin, team member, limited team member, interviewer, or a custom role ID. Example: admin
- `email` (`string`, optional): Return the user with this exact email address. Example: chandler@example.com
- `external_directory_id` (`string`, optional): Return the user with this external HR directory ID. Example: 12345
- `includeDeactivated` (`boolean`, optional): When true, deactivated users are included. Example: false
- `limit` (`integer`, optional): Maximum number of results to return per page, between 1 and 100. Lever defaults to its own page size when omitted. Example: 50
- `offset` (`string`, optional): Pagination cursor. Pass the next value returned by the previous page of this list to fetch the following page. Omit for the first page. Example: 0.1414895548650.a6070140-33db-407c-91f5-2760e15c8e94

Example input: `{}`

### `lever_contact_update`

Update Contact · Write

Update a contact's name, headline, location, emails or phones. Returns the updated contact object. Use this to correct a candidate's personal details across all their opportunities. Use lever_opportunity_links_add for web links. Requires a contact UID from the contact field of lever_opportunity_get.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `contact_id` (`string`, required): Contact UID. Get it from the contact field of lever_opportunity_get or lever_opportunities_list. Example: 7f23e772-f2cb-4ebb-b33f-54b872999992
- `emails` (`array`, optional): Email addresses for the contact. Example: ["cniehaus@dyad.org"]
- `headline` (`string`, optional): Contact headline, typically previous companies or schools. Example: Dyad Industries
- `location` (`string`, optional): Location as one free-text string, which Lever resolves into components, or an object with name, addressLine1, addressLine2, city, region, postalCode and country (ISO 3166-1 alpha-2, required in the object form). Components omitted from the object are cleared. Example: "Toronto, ON, Canada"
- `name` (`string`, optional): Full name of the contact. Example: Cosima Niehaus
- `phones` (`array`, optional): Phone numbers. Each item has a value and a type (mobile, home, work, skype or other). Example: [{"type": "mobile", "value": "123-456-7890"}]

Example input: `{"contact_id":"<contact_id>"}`

### `lever_feedback_create`

Create Feedback · Write

Submit a completed feedback form for an opportunity, based on a feedback template and optionally tied to an interview. Returns the created feedback form. Use this to record an interviewer's scorecard. Use lever_note_create for unstructured comments. Requires a feedback template from lever_feedback_templates_list and a perform_as user ID.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `baseTemplateId` (`string`, required): UID of the feedback template the form is based on. Get it from lever_feedback_templates_list. Example: a12851f5-25cd-495b-9dae-b29b02d0b49d
- `opportunity_id` (`string`, required): UID of the opportunity (one candidacy of a contact for a role). Get it from lever_opportunities_list (id field). Example: 250d8f03-738a-4bba-a671-8a3d73477145
- `perform_as` (`string`, required): UID of the Lever user to perform this action on behalf of. Lever requires it for this call and attributes the change to that user. Get user IDs from lever_users_list. Example: 8d49b010-cc6a-4f40-ace5-e86061c677ed
- `completedAt` (`integer`, optional): Time the form was completed; defaults to now. Unix timestamp in milliseconds. Example: 1407460069499
- `createdAt` (`integer`, optional): Time the form was created; defaults to now. Unix timestamp in milliseconds. Example: 1407460069499
- `fieldValues` (`array`, optional): Answers keyed by the template's field IDs. Each item has the field id and a value whose type matches the field (text, score, dropdown option text, list of strings for multiple select, and so on). Example: [{"id": "6ee25ace-dae2-4aa1-a1d2-9687464a691f", "value": "4 - Strong Hire"}]
- `interview` (`string`, optional): Interview UID the feedback was submitted for. Required when panel is set, and it must belong to that panel. Example: 85110ec8-e33a-4997-a798-5affc854b7ce
- `panel` (`string`, optional): Interview panel UID the feedback belongs to. Required when interview is set. Get it from lever_panels_list. Example: 2cdfff3a-2d7e-4fa6-9a9b-25ba25b6a9f8

Example input: `{"baseTemplateId":"<baseTemplateId>","opportunity_id":"<opportunity_id>","perform_as":"<perform_as>"}`

### `lever_feedback_update`

Update Feedback · Write

Update the answers or completion time of a feedback form. Returns the updated feedback form. Use this to correct a submitted scorecard. Use lever_feedback_create for a new form. Requires a perform_as user ID from lever_users_list.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `feedback_id` (`string`, required): Feedback form UID. Get it from lever_feedback_list. Example: c64fb192-d6d8-42dc-ac82-47cb87e9839c
- `opportunity_id` (`string`, required): UID of the opportunity (one candidacy of a contact for a role). Get it from lever_opportunities_list (id field). Example: 250d8f03-738a-4bba-a671-8a3d73477145
- `perform_as` (`string`, required): UID of the Lever user to perform this action on behalf of. Lever requires it for this call and attributes the change to that user. Get user IDs from lever_users_list. Example: 8d49b010-cc6a-4f40-ace5-e86061c677ed
- `completedAt` (`integer`, optional): Time the feedback was completed. Unix timestamp in milliseconds. Example: 1407460069499
- `fieldValues` (`array`, optional): Answers to change, keyed by field ID. The value's type must match the field. Example: [{"id": "c0d040b7-5f83-4689-ad22-d20f04dfc2c7", "value": "3 - Yes"}]

Example input: `{"feedback_id":"<feedback_id>","opportunity_id":"<opportunity_id>","perform_as":"<perform_as>"}`

### `lever_interview_create`

Create Interview · Write

Schedule an interview inside an existing externally managed panel on an opportunity. Returns the created interview. Use this to add an interview to a panel your integration created. Use lever_panel_create to create the panel and its first interviews together. Requires a panel UID from lever_panels_list and a perform_as user ID.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `date` (`integer`, required): When the interview is scheduled to start. Unix timestamp in milliseconds. Example: 1407460069499
- `duration` (`integer`, required): Interview duration in minutes, at least 1. Example: 30
- `interviewers` (`array`, required): Interviewers, at least one. Each item needs the user id and can set a feedbackTemplate UID for that interviewer. Example: [{"id": "412f5bf5-1509-4916-ba5b-8b16a5c3ce6d", "feedbackTemplate": "7fdd449e-0bb1-4ac8-9b96-9281c1dc2099"}]
- `opportunity_id` (`string`, required): UID of the opportunity (one candidacy of a contact for a role). Get it from lever_opportunities_list (id field). Example: 250d8f03-738a-4bba-a671-8a3d73477145
- `panel` (`string`, required): UID of the interview panel the interview belongs to. The panel must be externally managed (created through the API). Get it from lever_panels_list. Example: fdb313e8-13c5-47de-9e51-6a21a4d76ff6
- `perform_as` (`string`, required): UID of the Lever user to perform this action on behalf of. Lever requires it for this call and attributes the change to that user. Get user IDs from lever_users_list. Example: 8d49b010-cc6a-4f40-ace5-e86061c677ed
- `conferenceData` (`object`, optional): Video meeting details. conferenceUrl (http or https, required in the object) is the join link; conferenceSolution names the provider, for example zoom, teams or meet. Example: {"conferenceUrl": "https://zoom.us/j/1234567890", "conferenceSolution": "zoom"}
- `feedbackReminder` (`string`, optional): How often to remind interviewers to submit feedback. Allowed values: once, daily, frequently (every 6 hours, Lever's default), none. Example: once. One of: `once`, `daily`, `frequently`, `none`.
- `feedbackTemplate` (`string`, optional): Feedback template UID for the interview. Get it from lever_feedback_templates_list. Example: 7fdd449e-0bb1-4ac8-9b96-9281c1dc2099
- `location` (`string`, optional): Interview location, such as a room name or a phone number. Example: Call - (123) 456-7891
- `note` (`string`, optional): Interview note, such as the schedule. Example: 6:00 - 6:30 pm - Rachel Green - Call
- `subject` (`string`, optional): Interview subject. Example: On-site interview - Kristoff Bjorgman - Office Manager

Example input: `{"date":1407460069499,"duration":30,"interviewers":[{"id":"412f5bf5-1509-4916-ba5b-8b16a5c3ce6d","feedbackTemplate":"7fdd449e-0bb1-4ac8-9b96-9281c1dc2099"}],"opportunity_id":"<opportunity_id>","panel":"<panel>","perform_as":"<perform_as>"}`

### `lever_interview_update`

Update Interview · Write

Replace an interview in an externally managed panel. Send the whole interview; fields left out are removed. Returns the updated interview. Use this to reschedule or edit an API-created interview. Interviews created in the Lever app cannot be updated. Requires a perform_as user ID from lever_users_list.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `date` (`integer`, required): When the interview is scheduled to start. Unix timestamp in milliseconds. Example: 1407460069499
- `duration` (`integer`, required): Interview duration in minutes, at least 1. Example: 30
- `interview_id` (`string`, required): Interview UID. Get it from lever_interviews_list. Example: 6ff55c8e-fe04-4eb4-835a-630b1c0da421
- `interviewers` (`array`, required): Interviewers, at least one. Each item needs the user id and can set a feedbackTemplate UID for that interviewer. Example: [{"id": "412f5bf5-1509-4916-ba5b-8b16a5c3ce6d", "feedbackTemplate": "7fdd449e-0bb1-4ac8-9b96-9281c1dc2099"}]
- `opportunity_id` (`string`, required): UID of the opportunity (one candidacy of a contact for a role). Get it from lever_opportunities_list (id field). Example: 250d8f03-738a-4bba-a671-8a3d73477145
- `panel` (`string`, required): UID of the interview panel the interview belongs to. The panel must be externally managed (created through the API). Get it from lever_panels_list. Example: fdb313e8-13c5-47de-9e51-6a21a4d76ff6
- `perform_as` (`string`, required): UID of the Lever user to perform this action on behalf of. Lever requires it for this call and attributes the change to that user. Get user IDs from lever_users_list. Example: 8d49b010-cc6a-4f40-ace5-e86061c677ed
- `conferenceData` (`object`, optional): Video meeting details. conferenceUrl (http or https, required in the object) is the join link; conferenceSolution names the provider, for example zoom, teams or meet. Example: {"conferenceUrl": "https://zoom.us/j/1234567890", "conferenceSolution": "zoom"}
- `feedbackReminder` (`string`, optional): How often to remind interviewers to submit feedback. Allowed values: once, daily, frequently (every 6 hours, Lever's default), none. Example: once. One of: `once`, `daily`, `frequently`, `none`.
- `feedbackTemplate` (`string`, optional): Feedback template UID for the interview. Get it from lever_feedback_templates_list. Example: 7fdd449e-0bb1-4ac8-9b96-9281c1dc2099
- `location` (`string`, optional): Interview location, such as a room name or a phone number. Example: Call - (123) 456-7891
- `note` (`string`, optional): Interview note, such as the schedule. Example: 6:00 - 6:30 pm - Rachel Green - Call
- `subject` (`string`, optional): Interview subject. Example: On-site interview - Kristoff Bjorgman - Office Manager

Example input: `{"date":1407460069499,"duration":30,"interview_id":"<interview_id>","interviewers":[{"id":"412f5bf5-1509-4916-ba5b-8b16a5c3ce6d","feedbackTemplate":"7fdd449e-0bb1-4ac8-9b96-9281c1dc2099"}],"opportunity_id":"<opportunity_id>","panel":"<panel>","perform_as":"<perform_as>"}`

### `lever_note_create`

Create Note · Write

Add a note to an opportunity's profile, or a threaded comment on an existing note when note_id is set. @-mention users by username in the text to notify them. Returns the noteId of the created note. Use this to record context on a candidate. Use lever_feedback_create for structured interview feedback.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `opportunity_id` (`string`, required): UID of the opportunity (one candidacy of a contact for a role). Get it from lever_opportunities_list (id field). Example: 250d8f03-738a-4bba-a671-8a3d73477145
- `value` (`string`, required): Body of the note. Include @username to mention and notify a user; usernames come from lever_users_list. Example: Hey @melissa please review this candidate!
- `createdAt` (`integer`, optional): Creation time for a historical note. Cannot be in the future; defaults to now. Unix timestamp in milliseconds. Example: 1407460069499
- `note_id` (`string`, optional): UID of an existing note to add this text as a threaded comment on. Omit to start a new note. Example: b1dbbcfe-281c-46a0-8f51-57049158d3f3
- `notifyFollowers` (`boolean`, optional): When true, notifies every user following the candidate. Lever defaults to false. Example: false
- `perform_as` (`string`, optional): UID of the Lever user to perform this action on behalf of. Optional; when set, Lever attributes the change to that user. Get user IDs from lever_users_list. Example: 8d49b010-cc6a-4f40-ace5-e86061c677ed
- `score` (`integer`, optional): Optional score from 1 to 4: 1 Strong No, 2 No, 3 Yes, 4 Strong Yes. Example: 3. One of: `1`, `2`, `3`, `4`.
- `secret` (`boolean`, optional): When true, only users with Sensitive Information Privileges for the candidate's postings and mentioned users can see the note. Lever defaults to false. Example: false

Example input: `{"opportunity_id":"<opportunity_id>","value":"<value>"}`

### `lever_note_update`

Update Note · Write

Replace the full contents of a note that was created through the API, including all of its comments. Returns the noteId of the updated note. Use this to edit an API-created note. Notes created in the Lever app cannot be updated. Use lever_note_create to add a comment instead.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `note_id` (`string`, required): UID of a note originally created through the API. Get it from lever_notes_list. Example: b1dbbcfe-281c-46a0-8f51-57049158d3f3
- `opportunity_id` (`string`, required): UID of the opportunity (one candidacy of a contact for a role). Get it from lever_opportunities_list (id field). Example: 250d8f03-738a-4bba-a671-8a3d73477145
- `values` (`array`, required): Every comment the note should contain after the update; the whole note is replaced. Each item needs a value and can carry createdAt (milliseconds) and score (1 to 4, applied to the whole thread). Example: [{"value": "Strong system design round", "createdAt": 1622151397144}]

Example input: `{"note_id":"<note_id>","opportunity_id":"<opportunity_id>","values":[{"value":"Strong system design round","createdAt":1622151397144}]}`

### `lever_opportunity_archive`

Archive Opportunity · Write

Archive an opportunity with an archive reason, or change the reason on an already archived opportunity. A Hired reason plus a requisition marks the candidate hired against that requisition. Returns the updated opportunity object with its archived state. Use this to reject or hire a candidate. Use lever_opportunity_unarchive to return it to the active pipeline. Requires an archive reason UID from lever_archive_reasons_list.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `opportunity_id` (`string`, required): UID of the opportunity (one candidacy of a contact for a role). Get it from lever_opportunities_list (id field). Example: 250d8f03-738a-4bba-a671-8a3d73477145
- `reason` (`string`, required): UID of the archive reason. Get it from lever_archive_reasons_list (type hired or non-hired). Example: 63dd55b2-a99f-4e7b-985f-22c7bf80ab42
- `cleanInterviews` (`boolean`, optional): When true, removes pending interviews from the opportunity as it is archived. Lever defaults to false. Example: true
- `perform_as` (`string`, optional): UID of the Lever user to perform this action on behalf of. Optional; when set, Lever attributes the change to that user. Get user IDs from lever_users_list. Example: 8d49b010-cc6a-4f40-ace5-e86061c677ed
- `requisitionId` (`string`, optional): Requisition UID to hire against, used with a Hired reason. Any active offer must be signed and tied to a posting linked to this requisition. Example: 64e9c86b-03e9-42a5-871c-591d77f45609

Example input: `{"opportunity_id":"<opportunity_id>","reason":"<reason>"}`

### `lever_opportunity_create`

Create Opportunity · Write

Create a candidate opportunity in Lever from JSON details such as name, emails, phones, links, tags, sources, stage and posting. Returns the created opportunity object, including its id and contact. Use this to add a sourced or referred candidate. Lever dedupes by email and links the new opportunity to an existing contact when one matches. Use lever_posting_apply to submit an application against a posting's form. Requires a perform_as user ID from lever_users_list.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `perform_as` (`string`, required): UID of the Lever user to perform this action on behalf of. Lever requires it for this call and attributes the change to that user. Get user IDs from lever_users_list. Example: 8d49b010-cc6a-4f40-ace5-e86061c677ed
- `archived` (`object`, optional): Create the opportunity already archived, for historical imports. Provide reason (an archive reason UID, required) and optionally archivedAt (milliseconds, must be after createdAt). Example: {"reason": "63dd55b2-a99f-4e7b-985f-22c7bf80ab42", "archivedAt": 1417588008760}
- `contact` (`string`, optional): UID of an existing contact to attach this opportunity to. When omitted, Lever dedupes by email. Example: 7f23e772-f2cb-4ebb-b33f-54b872999992
- `createdAt` (`integer`, optional): Creation time for importing a historical opportunity. Must be in the past; defaults to now. Unix timestamp in milliseconds. Example: 1407460069499
- `emails` (`array`, optional): Candidate email addresses. Example: ["shane@example.com"]
- `followers` (`array`, optional): User UIDs to add as followers. The creator is always added. Example: ["8d49b010-cc6a-4f40-ace5-e86061c677ed"]
- `headline` (`string`, optional): Candidate headline, typically previous companies or schools. Example: Brickly LLC, Vandelay Industries
- `links` (`array`, optional): Candidate links such as a LinkedIn profile or personal website. Example: ["https://linkedin.com/in/shane-smith"]
- `location` (`string`, optional): Candidate's current location as free text. Example: Oakland
- `name` (`string`, optional): Full name of the candidate. Example: Shane Smith
- `origin` (`string`, optional): How the candidate was added. Allowed values: agency, applied, internal, referred, sourced, university. Example: sourced. One of: `agency`, `applied`, `internal`, `referred`, `sourced`, `university`.
- `owner` (`string`, optional): User UID of the opportunity owner. Defaults to the perform_as user. Example: 8d49b010-cc6a-4f40-ace5-e86061c677ed
- `perform_as_posting_owner` (`boolean`, optional): When true, the opportunity owner is set to the owner of the single posting given in postings. Requires exactly one posting UID in postings. Example: false
- `phones` (`array`, optional): Candidate phone numbers. Each item has a value and an optional type (mobile, home, work, skype or other). Example: [{"value": "(123) 456-7891", "type": "mobile"}]
- `postings` (`array`, optional): Posting UID to apply the candidate to. Lever accepts at most one posting per request; call again for each additional posting. Example: ["f2f01e16-27f8-4711-a728-7d49499795a0"]
- `sources` (`array`, optional): Sources to apply, for example LinkedIn. Sources that do not exist yet are created. Example: ["LinkedIn"]
- `stage` (`string`, optional): Stage UID to place the opportunity in. Lever uses the New Lead stage when omitted. Get stage UIDs from lever_stages_list. Example: 00922a60-7c15-422b-b086-f62000824fd7
- `tags` (`array`, optional): Tags to apply. Tags that do not exist yet are created. Example: ["Senior", "Referral"]

Example input: `{"perform_as":"<perform_as>"}`

### `lever_opportunity_links_add`

Add Contact Links · Write

Add web links to the contact behind an opportunity. Returns the updated opportunity object with its links. Use this to attach profile URLs such as LinkedIn or GitHub. Use lever_opportunity_links_remove to take links off.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `links` (`array`, required): Links to add. Example: ["https://linkedin.com/in/shane-smith"]
- `opportunity_id` (`string`, required): UID of the opportunity (one candidacy of a contact for a role). Get it from lever_opportunities_list (id field). Example: 250d8f03-738a-4bba-a671-8a3d73477145
- `perform_as` (`string`, optional): UID of the Lever user to perform this action on behalf of. Optional; when set, Lever attributes the change to that user. Get user IDs from lever_users_list. Example: 8d49b010-cc6a-4f40-ace5-e86061c677ed

Example input: `{"links":["https://linkedin.com/in/shane-smith"],"opportunity_id":"<opportunity_id>"}`

### `lever_opportunity_links_remove`

Remove Contact Links · Write

Remove web links from the contact behind an opportunity. Returns the updated opportunity object with its links. Use this to remove profile URLs. Use lever_opportunity_links_add to add links.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `links` (`array`, required): Links to remove. Example: ["https://linkedin.com/in/shane-smith"]
- `opportunity_id` (`string`, required): UID of the opportunity (one candidacy of a contact for a role). Get it from lever_opportunities_list (id field). Example: 250d8f03-738a-4bba-a671-8a3d73477145
- `perform_as` (`string`, optional): UID of the Lever user to perform this action on behalf of. Optional; when set, Lever attributes the change to that user. Get user IDs from lever_users_list. Example: 8d49b010-cc6a-4f40-ace5-e86061c677ed

Example input: `{"links":["https://linkedin.com/in/shane-smith"],"opportunity_id":"<opportunity_id>"}`

### `lever_opportunity_sources_add`

Add Opportunity Sources · Write

Add one or more sources to an opportunity. Returns the updated opportunity object with its sources. Use this to record where a candidate came from. Sources that do not exist yet are created. Use lever_opportunity_sources_remove to take sources off.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `opportunity_id` (`string`, required): UID of the opportunity (one candidacy of a contact for a role). Get it from lever_opportunities_list (id field). Example: 250d8f03-738a-4bba-a671-8a3d73477145
- `sources` (`array`, required): Sources to add, exactly as shown in Lever. Example: ["LinkedIn"]
- `perform_as` (`string`, optional): UID of the Lever user to perform this action on behalf of. Optional; when set, Lever attributes the change to that user. Get user IDs from lever_users_list. Example: 8d49b010-cc6a-4f40-ace5-e86061c677ed

Example input: `{"opportunity_id":"<opportunity_id>","sources":["LinkedIn"]}`

### `lever_opportunity_sources_remove`

Remove Opportunity Sources · Write

Remove one or more sources from an opportunity. Returns the updated opportunity object with its sources. Use this to remove sources. Use lever_opportunity_sources_add to add sources.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `opportunity_id` (`string`, required): UID of the opportunity (one candidacy of a contact for a role). Get it from lever_opportunities_list (id field). Example: 250d8f03-738a-4bba-a671-8a3d73477145
- `sources` (`array`, required): Sources to remove, exactly as shown in Lever. Example: ["LinkedIn"]
- `perform_as` (`string`, optional): UID of the Lever user to perform this action on behalf of. Optional; when set, Lever attributes the change to that user. Get user IDs from lever_users_list. Example: 8d49b010-cc6a-4f40-ace5-e86061c677ed

Example input: `{"opportunity_id":"<opportunity_id>","sources":["LinkedIn"]}`

### `lever_opportunity_stage_update`

Update Opportunity Stage · Write

Move an opportunity to a different pipeline stage. Returns the updated opportunity object. Use this to advance or move back a candidate. Use lever_opportunity_archive to reject or hire instead. Requires a stage UID from lever_stages_list.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `opportunity_id` (`string`, required): UID of the opportunity (one candidacy of a contact for a role). Get it from lever_opportunities_list (id field). Example: 250d8f03-738a-4bba-a671-8a3d73477145
- `stage` (`string`, required): UID of the stage to move the opportunity to. Get stage UIDs from lever_stages_list. Example: 00922a60-7c15-422b-b086-f62000824fd7
- `perform_as` (`string`, optional): UID of the Lever user to perform this action on behalf of. Optional; when set, Lever attributes the change to that user. Get user IDs from lever_users_list. Example: 8d49b010-cc6a-4f40-ace5-e86061c677ed

Example input: `{"opportunity_id":"<opportunity_id>","stage":"<stage>"}`

### `lever_opportunity_tags_add`

Add Opportunity Tags · Write

Add one or more tags to an opportunity. Returns the updated opportunity object with its tags. Use this to label a candidate. Tags that do not exist yet are created. Use lever_opportunity_tags_remove to take tags off.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `opportunity_id` (`string`, required): UID of the opportunity (one candidacy of a contact for a role). Get it from lever_opportunities_list (id field). Example: 250d8f03-738a-4bba-a671-8a3d73477145
- `tags` (`array`, required): Tags to add, exactly as shown in Lever (case sensitive). Example: ["Senior", "Referral"]
- `perform_as` (`string`, optional): UID of the Lever user to perform this action on behalf of. Optional; when set, Lever attributes the change to that user. Get user IDs from lever_users_list. Example: 8d49b010-cc6a-4f40-ace5-e86061c677ed

Example input: `{"opportunity_id":"<opportunity_id>","tags":["Senior","Referral"]}`

### `lever_opportunity_tags_remove`

Remove Opportunity Tags · Write

Remove one or more tags from an opportunity. Returns the updated opportunity object with its tags. Use this to take labels off a candidate. Use lever_opportunity_tags_add to add tags.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `opportunity_id` (`string`, required): UID of the opportunity (one candidacy of a contact for a role). Get it from lever_opportunities_list (id field). Example: 250d8f03-738a-4bba-a671-8a3d73477145
- `tags` (`array`, required): Tags to remove, exactly as shown in Lever (case sensitive). Example: ["Senior", "Referral"]
- `perform_as` (`string`, optional): UID of the Lever user to perform this action on behalf of. Optional; when set, Lever attributes the change to that user. Get user IDs from lever_users_list. Example: 8d49b010-cc6a-4f40-ace5-e86061c677ed

Example input: `{"opportunity_id":"<opportunity_id>","tags":["Senior","Referral"]}`

### `lever_opportunity_unarchive`

Unarchive Opportunity · Write

Unarchive an opportunity by clearing its archive reason, returning it to the active pipeline. Returns the updated opportunity object. Use this to reopen a rejected or hired candidacy. Use lever_opportunity_archive to archive.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `opportunity_id` (`string`, required): UID of the opportunity (one candidacy of a contact for a role). Get it from lever_opportunities_list (id field). Example: 250d8f03-738a-4bba-a671-8a3d73477145
- `perform_as` (`string`, optional): UID of the Lever user to perform this action on behalf of. Optional; when set, Lever attributes the change to that user. Get user IDs from lever_users_list. Example: 8d49b010-cc6a-4f40-ace5-e86061c677ed

Example input: `{"opportunity_id":"<opportunity_id>"}`

### `lever_panel_create`

Create Interview Panel · Write

Create an interview panel with one or more interviews on an opportunity. The panel is marked externally managed. Returns the created panel with its interviews. Use this to schedule a candidate's interviews from an external scheduler. Use lever_interview_create to add an interview to an existing panel. Requires interviewer user IDs and a perform_as user ID from lever_users_list.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `interviews` (`array`, required): Interviews in the panel, at least one. Each item has interviewers (list of {id, feedbackTemplate}), date (milliseconds), duration (minutes) and optionally subject, note, location, feedbackTemplate and feedbackReminder. On update, keep the id of existing interviews and omit id for new ones. Example: [{"subject": "On-site interview", "interviewers": [{"id": "412f5bf5-1509-4916-ba5b-8b16a5c3ce6d"}], "date": 1423188000000, "duration": 30}]
- `opportunity_id` (`string`, required): UID of the opportunity (one candidacy of a contact for a role). Get it from lever_opportunities_list (id field). Example: 250d8f03-738a-4bba-a671-8a3d73477145
- `perform_as` (`string`, required): UID of the Lever user to perform this action on behalf of. Lever requires it for this call and attributes the change to that user. Get user IDs from lever_users_list. Example: 8d49b010-cc6a-4f40-ace5-e86061c677ed
- `timezone` (`string`, required): IANA time zone the panel is scheduled in. Example: America/Los_Angeles
- `applications` (`array`, optional): Application UIDs the panel is for. Lever defaults to all active applications on the profile; an empty list is invalid. Example: ["7988b225-3cc1-44f3-8fcb-bae013cc490d"]
- `externalUrl` (`string`, optional): Link to the panel in an external scheduling system. Example: https://scheduler.example.com/panels/123
- `feedbackReminder` (`string`, optional): How often to remind interviewers to submit feedback. Allowed values: once, daily (Lever's default for panels), frequently (every 6 hours), none. Example: daily. One of: `once`, `daily`, `frequently`, `none`.
- `note` (`string`, optional): Panel note. Example: Panel for Rachel

Example input: `{"interviews":[],"opportunity_id":"<opportunity_id>","perform_as":"<perform_as>","timezone":"<timezone>"}`

### `lever_panel_update`

Update Interview Panel · Write

Replace an externally managed interview panel. Send the whole panel; fields left out are removed. Returns the updated panel. Use this to reschedule a panel your integration created. Panels created in the Lever app cannot be updated. Requires a perform_as user ID from lever_users_list.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `interviews` (`array`, required): Interviews in the panel, at least one. Each item has interviewers (list of {id, feedbackTemplate}), date (milliseconds), duration (minutes) and optionally subject, note, location, feedbackTemplate and feedbackReminder. On update, keep the id of existing interviews and omit id for new ones. Example: [{"subject": "On-site interview", "interviewers": [{"id": "412f5bf5-1509-4916-ba5b-8b16a5c3ce6d"}], "date": 1423188000000, "duration": 30}]
- `opportunity_id` (`string`, required): UID of the opportunity (one candidacy of a contact for a role). Get it from lever_opportunities_list (id field). Example: 250d8f03-738a-4bba-a671-8a3d73477145
- `panel_id` (`string`, required): Interview panel UID. Get it from lever_panels_list. Example: fdb313e8-13c5-47de-9e51-6a21a4d76ff6
- `perform_as` (`string`, required): UID of the Lever user to perform this action on behalf of. Lever requires it for this call and attributes the change to that user. Get user IDs from lever_users_list. Example: 8d49b010-cc6a-4f40-ace5-e86061c677ed
- `timezone` (`string`, required): IANA time zone the panel is scheduled in. Example: America/Los_Angeles
- `applications` (`array`, optional): Application UIDs the panel is for. Lever defaults to all active applications on the profile; an empty list is invalid. Example: ["7988b225-3cc1-44f3-8fcb-bae013cc490d"]
- `externalUrl` (`string`, optional): Link to the panel in an external scheduling system. Example: https://scheduler.example.com/panels/123
- `feedbackReminder` (`string`, optional): How often to remind interviewers to submit feedback. Allowed values: once, daily (Lever's default for panels), frequently (every 6 hours), none. Example: daily. One of: `once`, `daily`, `frequently`, `none`.
- `note` (`string`, optional): Panel note. Example: Panel for Rachel

Example input: `{"interviews":[],"opportunity_id":"<opportunity_id>","panel_id":"<panel_id>","perform_as":"<perform_as>","timezone":"<timezone>"}`

### `lever_posting_apply`

Apply To Posting · Write

Submit an application on behalf of a candidate to a published or unlisted (internal) posting. Returns the applicationId of the created application. Use this to apply a candidate through the posting's form. Use lever_opportunity_create to add a sourced candidate without a form. Requires the posting's form from lever_posting_application_questions_get. File uploads need a uri from Lever's upload endpoint, which this connector does not cover.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `posting_id` (`string`, required): UID of a published or internal posting. Get it from lever_postings_list. Example: f2f01e16-27f8-4711-a728-7d49499795a0
- `acceptLanguage` (`string`, optional): Applicant Accept-Language string. Example: en-US,en;q=0.9
- `consent` (`object`, optional): Whether the candidate agrees to be contacted about future opportunities. Example: {"marketing": true}
- `customQuestions` (`array`, optional): Answers to the posting's custom question sets. Each item has the question set id and fields, a list of {value} in the same order as the form. Example: [{"id": "75f54523-ff77-4307-a868-08392ee02cab", "fields": [{"value": "10 years of experience"}, {"value": ["JavaScript", "Ruby"]}]}]
- `diversitySurvey` (`object`, optional): Diversity survey answers: surveyId, optional candidateSelectedLocation (country code) and responses (each with questionId, questionText, questionType and answer). Get the survey from lever_diversity_survey_get. Example: {"surveyId": "b0d26744-60b2-4015-b125-b09fd5b95c1d", "responses": []}
- `eeoResponses` (`object`, optional): Equal employment opportunity answers when the form asks for them, such as gender, race, veteran, disability, disabilitySignature and disabilitySignatureDate. Example: {"gender": "Female", "veteran": "I am not a Protected Veteran"}
- `ipAddress` (`string`, optional): Applicant IP address, used to detect the candidate's country for compliance. Example: 184.23.195.146
- `origin` (`string`, optional): Whether this is an external or internal application. Allowed values: applied, internal. Lever defaults to applied. Example: applied. One of: `applied`, `internal`.
- `personalInformation` (`array`, optional): Candidate details as name/value pairs, using the field names from lever_posting_application_questions_get, for example fullName, email, phone, currentCompany and additionalInformation. Example: [{"name": "fullName", "value": "Shane Smith"}, {"name": "email", "value": "shane@example.com"}]
- `referer` (`string`, optional): Referring URL of the application. Example: https://jobs.example.com/careers
- `send_confirmation_email` (`boolean`, optional): When true, Lever emails the applicant a confirmation. Lever defaults to false. Example: false
- `source` (`string`, optional): Source tag to add to the candidate. Example: Internal job site
- `timezone` (`string`, optional): Applicant IANA time zone. Example: America/New_York
- `urls` (`array`, optional): Answers to URL questions as name/value pairs. Example: [{"name": "LinkedIn", "value": "https://linkedin.com/in/shane-smith"}]
- `userAgent` (`string`, optional): Applicant browser User-Agent string. Example: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)

Example input: `{"posting_id":"<posting_id>"}`

### `lever_posting_create`

Create Posting · Write

Create a job posting. API-created postings skip the approval chain and default to draft. Returns the created posting with its id and urls. Use this to open a new role. Use lever_posting_update to change an existing posting. Requires a perform_as user ID from lever_users_list.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `categories` (`object`, required): Posting categories. team, department and location are required; commitment (work type such as Full-time) is optional. Example: {"team": "Platform", "department": "Engineering", "location": "San Francisco", "commitment": "Full-time"}
- `perform_as` (`string`, required): UID of the Lever user to perform this action on behalf of. Lever requires it for this call and attributes the change to that user. Get user IDs from lever_users_list. Example: 8d49b010-cc6a-4f40-ace5-e86061c677ed
- `text` (`string`, required): Job title of the posting. Example: Infrastructure Engineer
- `content` (`object`, optional): Job description. descriptionHtml is the opening text, lists holds sections such as requirements (each with text and content as <li> HTML), and closingPostingHtml is the closing statement. HTML is limited to the tags Lever allows (div, p, span, br, b, i, s, u, a; li in lists). Example: {"descriptionHtml": "<div>Build our platform.</div>", "lists": [{"text": "Requirements", "content": "<li>5 years of Go</li>"}]}
- `distributionChannels` (`array`, optional): Job sites a published posting appears on. Allowed values: public, internal. Lever defaults to both. Example: ["public", "internal"]
- `hiringManager` (`string`, optional): User UID of the hiring manager. Example: 8d49b010-cc6a-4f40-ace5-e86061c677ed
- `owner` (`string`, optional): User UID of the posting owner, who manages the candidates applied to it. Defaults to the perform_as user. Example: 8d49b010-cc6a-4f40-ace5-e86061c677ed
- `requisitionCodes` (`array`, optional): Requisition codes to link to the posting. Example: ["ENG-145"]
- `salaryDescriptionHtml` (`string`, optional): Salary description shown on the posting, as HTML. Example: Base salary plus equity.

- `salaryRange` (`object`, optional): Salary range with min, max, currency (ISO code) and interval such as per-year-salary. Example: {"min": 40000, "max": 60000, "currency": "USD", "interval": "per-year-salary"}
- `state` (`string`, optional): Posting state. Allowed values: published, internal (unlisted), closed, draft. Lever defaults to draft. Example: draft. One of: `published`, `internal`, `closed`, `draft`.
- `tags` (`array`, optional): Additional posting tags. Example: ["engineering", "high-priority"]
- `workplaceType` (`string`, optional): Workplace type. Allowed values: onsite, remote, hybrid. Once set it cannot go back to unspecified. Example: remote. One of: `onsite`, `remote`, `hybrid`.

Example input: `{"categories":{"team":"Platform","department":"Engineering","location":"San Francisco","commitment":"Full-time"},"perform_as":"<perform_as>","text":"<text>"}`

### `lever_posting_update`

Update Posting · Write

Partially update a job posting. Only the fields you send change. Returns the updated posting. Use this to change a posting's state, title, categories or description. Read it first with lever_posting_get to avoid overwriting edits made in Lever. Requires a perform_as user ID from lever_users_list.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `perform_as` (`string`, required): UID of the Lever user to perform this action on behalf of. Lever requires it for this call and attributes the change to that user. Get user IDs from lever_users_list. Example: 8d49b010-cc6a-4f40-ace5-e86061c677ed
- `posting_id` (`string`, required): Posting UID. Get it from lever_postings_list. Example: f2f01e16-27f8-4711-a728-7d49499795a0
- `categories` (`object`, optional): Posting categories. Any of team, department, location and commitment (work type such as Full-time). Example: {"team": "Platform", "department": "Engineering", "location": "San Francisco", "commitment": "Full-time"}
- `content` (`object`, optional): Job description. descriptionHtml is the opening text, lists holds sections such as requirements (each with text and content as <li> HTML), and closingPostingHtml is the closing statement. HTML is limited to the tags Lever allows (div, p, span, br, b, i, s, u, a; li in lists). Example: {"descriptionHtml": "<div>Build our platform.</div>", "lists": [{"text": "Requirements", "content": "<li>5 years of Go</li>"}]}
- `distributionChannels` (`array`, optional): Job sites a published posting appears on. Allowed values: public, internal. Example: ["public", "internal"]
- `hiringManager` (`string`, optional): User UID of the hiring manager. Example: 8d49b010-cc6a-4f40-ace5-e86061c677ed
- `owner` (`string`, optional): User UID of the posting owner, who manages the candidates applied to it. Example: 8d49b010-cc6a-4f40-ace5-e86061c677ed
- `requisitionCodes` (`array`, optional): Requisition codes to link to the posting. Example: ["ENG-145"]
- `salaryDescriptionHtml` (`string`, optional): Salary description shown on the posting, as HTML. Example: Base salary plus equity.

- `salaryRange` (`object`, optional): Salary range with min, max, currency (ISO code) and interval such as per-year-salary. Example: {"min": 40000, "max": 60000, "currency": "USD", "interval": "per-year-salary"}
- `state` (`string`, optional): Posting state. Allowed values: published, internal (unlisted), closed, draft. Example: draft. One of: `published`, `internal`, `closed`, `draft`.
- `tags` (`array`, optional): Additional posting tags. Example: ["engineering", "high-priority"]
- `text` (`string`, optional): Job title of the posting. Example: Infrastructure Engineer
- `workplaceType` (`string`, optional): Workplace type. Allowed values: onsite, remote, hybrid. Once set it cannot go back to unspecified. Example: remote. One of: `onsite`, `remote`, `hybrid`.

Example input: `{"perform_as":"<perform_as>","posting_id":"<posting_id>"}`

### `lever_profile_form_create`

Create Profile Form · Write

Add a completed profile form to an opportunity, based on a profile form template. Returns the created form with its fields and values. Use this to record structured data such as offer details on a candidate. Requires a template from lever_form_templates_list; every template field must be sent.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `baseTemplateId` (`string`, required): UID of the profile form template. Get it from lever_form_templates_list. Example: 806ad14a-2fe5-4b42-b2da-3f90dc0a16d9
- `fields` (`array`, required): Every field of the template, in its order, each with its type, text and a value (null is allowed for optional fields). Example: [{"type": "date", "text": "Start Date", "value": 1418716800000}, {"type": "currency", "text": "Compensation", "value": 75000}]
- `opportunity_id` (`string`, required): UID of the opportunity (one candidacy of a contact for a role). Get it from lever_opportunities_list (id field). Example: 250d8f03-738a-4bba-a671-8a3d73477145
- `perform_as` (`string`, optional): UID of the Lever user to perform this action on behalf of. Optional; when set, Lever attributes the change to that user. Get user IDs from lever_users_list. Example: 8d49b010-cc6a-4f40-ace5-e86061c677ed
- `secret` (`boolean`, optional): When true, only users with Sensitive Information Privileges for the candidate's postings can see the form. Example: false

Example input: `{"baseTemplateId":"<baseTemplateId>","fields":[{"type":"date","text":"Start Date","value":1418716800000},{"type":"currency","text":"Compensation","value":75000}],"opportunity_id":"<opportunity_id>"}`

### `lever_requisition_create`

Create Requisition · Write

Create a requisition, typically pushed from an HRIS. The account must have API management of requisitions enabled by a Super Admin. Returns the created requisition with its Lever id. Use this to add headcount to Lever. Use lever_requisition_update to change one.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `headcountTotal` (`integer`, required): Total headcount on the requisition, as a number or the string unlimited. Example: 10
- `name` (`string`, required): Human-readable requisition name. Example: Senior Software Engineer, Platform
- `requisitionCode` (`string`, required): Unique requisition code from your HRIS. Example: ENG-145
- `backfill` (`boolean`, optional): true for a backfill, false for new headcount. Lever defaults to false. Example: false
- `compensationBand` (`object`, optional): Compensation band with currency (ISO code), interval (per-year-salary, per-month-salary, semi-month-salary, bi-month-salary, bi-week-salary, per-week-salary, per-day-wage, per-hour-wage or one-time), min and max. Example: {"currency": "USD", "interval": "per-year-salary", "min": 100000, "max": 130000}
- `createdAt` (`integer`, optional): Requisition creation time; defaults to the time of the request. Unix timestamp in milliseconds. Example: 1407460069499
- `customFields` (`object`, optional): Custom field values keyed by requisition field id, flat or nested one level. Lever validates them against the account's requisition fields (see lever_requisition_fields_list). Example: {"cost_center": {"city": "New York", "campus_code": "9"}, "target_hire_date": 1452067200000}
- `employmentStatus` (`string`, optional): Work type. Allowed values: full-time, part-time, intern, contractor, temp-worker. Example: full-time. One of: `full-time`, `part-time`, `intern`, `contractor`, `temp-worker`.
- `hiringManager` (`string`, optional): Lever user UID of the hiring manager. Omit if the hiring manager is not a Lever user. Example: 8d49b010-cc6a-4f40-ace5-e86061c677ed
- `internalNotes` (`string`, optional): Free-text notes visible to anyone who can see the requisition. Example: College grad hire -- little flexibility on salary
- `location` (`string`, optional): Location of the requisition. Example: New York
- `owner` (`string`, optional): Lever user UID of the requisition owner. Defaults to the user behind the connection. Example: 8d49b010-cc6a-4f40-ace5-e86061c677ed
- `postingIds` (`array`, optional): Posting UIDs linked to the requisition. Left unchanged when omitted. Example: ["f2f01e16-27f8-4711-a728-7d49499795a0"]
- `status` (`string`, optional): Requisition status. Allowed values: open, onHold, closed, draft. Lever defaults to open; draft needs hybrid requisition management. Example: open. One of: `open`, `onHold`, `closed`, `draft`.
- `team` (`string`, optional): Team of the requisition. Example: Product Engineering

Example input: `{"headcountTotal":10,"name":"<name>","requisitionCode":"<requisitionCode>"}`

### `lever_requisition_update`

Update Requisition · Write

Replace a requisition. Send every field you want to keep; omitted fields are cleared or reset to their defaults. Returns the updated requisition. Use this to sync HRIS changes. Read it first with lever_requisition_get so you resend unchanged fields.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `headcountTotal` (`integer`, required): Total headcount on the requisition, as a number or the string unlimited. Example: 10
- `name` (`string`, required): Human-readable requisition name. Example: Senior Software Engineer, Platform
- `requisition_id` (`string`, required): Requisition UID. Get it from lever_requisitions_list. Example: 52881d44-4f95-4fcb-bf28-2b344ea58889
- `requisitionCode` (`string`, required): Unique requisition code from your HRIS. Example: ENG-145
- `backfill` (`boolean`, optional): true for a backfill, false for new headcount. Lever defaults to false. Example: false
- `compensationBand` (`object`, optional): Compensation band with currency (ISO code), interval (per-year-salary, per-month-salary, semi-month-salary, bi-month-salary, bi-week-salary, per-week-salary, per-day-wage, per-hour-wage or one-time), min and max. Example: {"currency": "USD", "interval": "per-year-salary", "min": 100000, "max": 130000}
- `createdAt` (`integer`, optional): Requisition creation time; defaults to the time of the request. Unix timestamp in milliseconds. Example: 1407460069499
- `customFields` (`object`, optional): Custom field values keyed by requisition field id, flat or nested one level. Lever validates them against the account's requisition fields (see lever_requisition_fields_list). Example: {"cost_center": {"city": "New York", "campus_code": "9"}, "target_hire_date": 1452067200000}
- `employmentStatus` (`string`, optional): Work type. Allowed values: full-time, part-time, intern, contractor, temp-worker. Example: full-time. One of: `full-time`, `part-time`, `intern`, `contractor`, `temp-worker`.
- `hiringManager` (`string`, optional): Lever user UID of the hiring manager. Omit if the hiring manager is not a Lever user. Example: 8d49b010-cc6a-4f40-ace5-e86061c677ed
- `internalNotes` (`string`, optional): Free-text notes visible to anyone who can see the requisition. Example: College grad hire -- little flexibility on salary
- `location` (`string`, optional): Location of the requisition. Example: New York
- `owner` (`string`, optional): Lever user UID of the requisition owner. Defaults to the user behind the connection. Example: 8d49b010-cc6a-4f40-ace5-e86061c677ed
- `postingIds` (`array`, optional): Posting UIDs linked to the requisition. Left unchanged when omitted. Example: ["f2f01e16-27f8-4711-a728-7d49499795a0"]
- `status` (`string`, optional): Requisition status. Allowed values: open, onHold, closed, draft. An open, closed or on-hold requisition cannot go back to draft. Example: open. One of: `open`, `onHold`, `closed`, `draft`.
- `team` (`string`, optional): Team of the requisition. Example: Product Engineering

Example input: `{"headcountTotal":10,"name":"<name>","requisition_id":"<requisition_id>","requisitionCode":"<requisitionCode>"}`

### `lever_feedback_delete`

Delete Feedback · Destructive

Delete a feedback form from an opportunity. Returns an empty response on success. Use this to remove a feedback form submitted in error. Requires a perform_as user ID from lever_users_list.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `feedback_id` (`string`, required): Feedback form UID. Get it from lever_feedback_list. Example: c64fb192-d6d8-42dc-ac82-47cb87e9839c
- `opportunity_id` (`string`, required): UID of the opportunity (one candidacy of a contact for a role). Get it from lever_opportunities_list (id field). Example: 250d8f03-738a-4bba-a671-8a3d73477145
- `perform_as` (`string`, required): UID of the Lever user to perform this action on behalf of. Lever requires it for this call and attributes the change to that user. Get user IDs from lever_users_list. Example: 8d49b010-cc6a-4f40-ace5-e86061c677ed

Example input: `{"feedback_id":"<feedback_id>","opportunity_id":"<opportunity_id>","perform_as":"<perform_as>"}`

### `lever_file_delete`

Delete File · Destructive

Delete a file from an opportunity. Returns an empty response on success. Use this to remove an attachment. Requires a perform_as user ID from lever_users_list.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `file_id` (`string`, required): File UID. Get it from lever_files_list. Example: b02a3b97-dc41-48e3-b003-44d211ed2a4c
- `opportunity_id` (`string`, required): UID of the opportunity (one candidacy of a contact for a role). Get it from lever_opportunities_list (id field). Example: 250d8f03-738a-4bba-a671-8a3d73477145
- `perform_as` (`string`, required): UID of the Lever user to perform this action on behalf of. Lever requires it for this call and attributes the change to that user. Get user IDs from lever_users_list. Example: 8d49b010-cc6a-4f40-ace5-e86061c677ed

Example input: `{"file_id":"<file_id>","opportunity_id":"<opportunity_id>","perform_as":"<perform_as>"}`

### `lever_interview_delete`

Delete Interview · Destructive

Delete an interview from an externally managed panel. Deleting the last interview also deletes the panel. Returns an empty response on success. Use this to cancel one API-created interview. Use lever_panel_delete to remove a whole panel. Requires a perform_as user ID from lever_users_list.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `interview_id` (`string`, required): Interview UID. Get it from lever_interviews_list. Example: 6ff55c8e-fe04-4eb4-835a-630b1c0da421
- `opportunity_id` (`string`, required): UID of the opportunity (one candidacy of a contact for a role). Get it from lever_opportunities_list (id field). Example: 250d8f03-738a-4bba-a671-8a3d73477145
- `perform_as` (`string`, required): UID of the Lever user to perform this action on behalf of. Lever requires it for this call and attributes the change to that user. Get user IDs from lever_users_list. Example: 8d49b010-cc6a-4f40-ace5-e86061c677ed

Example input: `{"interview_id":"<interview_id>","opportunity_id":"<opportunity_id>","perform_as":"<perform_as>"}`

### `lever_note_delete`

Delete Note · Destructive

Delete a note that was created through the API. Returns an empty response on success. Use this to remove an API-created note. Notes created in the Lever app cannot be deleted through the API.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `note_id` (`string`, required): UID of a note originally created through the API. Get it from lever_notes_list. Example: b1dbbcfe-281c-46a0-8f51-57049158d3f3
- `opportunity_id` (`string`, required): UID of the opportunity (one candidacy of a contact for a role). Get it from lever_opportunities_list (id field). Example: 250d8f03-738a-4bba-a671-8a3d73477145

Example input: `{"note_id":"<note_id>","opportunity_id":"<opportunity_id>"}`

### `lever_panel_delete`

Delete Interview Panel · Destructive

Delete an externally managed interview panel and its interviews. Returns an empty response on success. Use this to cancel a panel your integration created. Use lever_interview_delete to remove a single interview. Requires a perform_as user ID from lever_users_list.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `opportunity_id` (`string`, required): UID of the opportunity (one candidacy of a contact for a role). Get it from lever_opportunities_list (id field). Example: 250d8f03-738a-4bba-a671-8a3d73477145
- `panel_id` (`string`, required): Interview panel UID. Get it from lever_panels_list. Example: fdb313e8-13c5-47de-9e51-6a21a4d76ff6
- `perform_as` (`string`, required): UID of the Lever user to perform this action on behalf of. Lever requires it for this call and attributes the change to that user. Get user IDs from lever_users_list. Example: 8d49b010-cc6a-4f40-ace5-e86061c677ed

Example input: `{"opportunity_id":"<opportunity_id>","panel_id":"<panel_id>","perform_as":"<perform_as>"}`

### `lever_requisition_delete`

Delete Requisition · Destructive

Delete a requisition from the Lever account. Returns an empty response on success. Use this to remove a requisition created by mistake. Use lever_requisition_update with status closed to close it instead.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `requisition_id` (`string`, required): Requisition UID. Get it from lever_requisitions_list. Example: 52881d44-4f95-4fcb-bf28-2b344ea58889

Example input: `{"requisition_id":"<requisition_id>"}`

## Related

Other Productivity connectors ([all 144](/agentkit/connectors/?category=productivity)):

- [Slack](/agentkit/connectors/slack/): Scalekit connector, OAuth, 96 tools
- [Microsoft 365](/agentkit/connectors/microsoft365/): Scalekit connector, OAuth, 317 tools
- [Notion](/agentkit/connectors/notion/): Scalekit connector, OAuth, 51 tools


---

## More Scalekit documentation

| Resource | What it contains | When to use it |
|----------|-----------------|----------------|
| [/llms.txt](/llms.txt) | Structured index with routing hints per product area | Start here — find which documentation set covers your topic before loading full content |
| [/llms-full.txt](/llms-full.txt) | Complete documentation for all Scalekit products in one file | Use when you need exhaustive context across multiple products or when the topic spans several areas |
| [sitemap-0.xml](https://docs.scalekit.com/sitemap-0.xml) | Full URL list of every documentation page | Use to discover specific page URLs you can fetch for targeted, page-level answers |
