Lever

Learn how to use Lever with Composio

Overview

SLUG: LEVER

Description

Lever is an applicant tracking system combining sourcing, CRM functionalities, and analytics, helping companies scale recruiting efforts with a collaborative approach

Authentication Details

client_id
stringRequired
client_secret
stringRequired
full
stringDefaults to https://api.lever.co/v1Required
authorizationUrl
stringDefaults to https://hire.lever.co/oauth/authorizeRequired
tokenUrl
stringDefaults to https://hire.lever.co/oauth/tokenRequired
oauth_redirect_uri
stringDefaults to https://backend.composio.dev/api/v1/auth-apps/add
scopes
stringDefaults to files:write:admin,form_templates:write:admin,forms:write:admin,interviews:write:admin,notes:write:admin,offers:read:admin,opportunities:write:admin,panels:write:admin,postings:write:admin,referrals:read:admin,requisition_fields:write:admin,requisitions:write:admin,resumes:read:admin,sources:read:admin,stages:read:admin,tags:read:admin,tasks:read:admin,uploads:write:admin,users:write:admin
bearer_token
string
generic_api_key
stringRequired

Connecting to Lever

Create an auth config

Use the dashboard to create an auth config for the Lever toolkit. This allows you to connect multiple Lever accounts to Composio for agents to use.

1

Select App

Navigate to Lever.

2

Configure Auth Config Settings

Select among the supported auth schemes of and configure them here.

3

Create and Get auth config ID

Click “Create Lever Auth Config”. After creation, copy the displayed ID starting with ac_. This is your auth config ID. This is not a sensitive ID — you can save it in environment variables or a database. This ID will be used to create connections to the toolkit for a given user.

Connect Your Account

Using OAuth2

1from composio import Composio
2
3# Replace these with your actual values
4lever_auth_config_id = "ac_YOUR_LEVER_CONFIG_ID" # Auth config ID created above
5user_id = "0000-0000-0000" # UUID from database/application
6
7composio = Composio()
8
9
10def authenticate_toolkit(user_id: str, auth_config_id: str):
11 connection_request = composio.connected_accounts.initiate(
12 user_id=user_id,
13 auth_config_id=auth_config_id,
14 )
15
16 print(
17 f"Visit this URL to authenticate Lever: {connection_request.redirect_url}"
18 )
19
20 # This will wait for the auth flow to be completed
21 connection_request.wait_for_connection(timeout=15)
22 return connection_request.id
23
24
25connection_id = authenticate_toolkit(user_id, lever_auth_config_id)
26
27# You can also verify the connection status using:
28connected_account = composio.connected_accounts.get(connection_id)
29print(f"Connected account: {connected_account}")

Using API Key

1from composio import Composio
2
3# Replace these with your actual values
4lever_auth_config_id = "ac_YOUR_LEVER_CONFIG_ID" # Auth config ID created above
5user_id = "0000-0000-0000" # UUID from database/app
6
7composio = Composio()
8
9def authenticate_toolkit(user_id: str, auth_config_id: str):
10 # Replace this with a method to retrieve an API key from the user.
11 # Or supply your own.
12 user_api_key = input("[!] Enter API key")
13
14 connection_request = composio.connected_accounts.initiate(
15 user_id=user_id,
16 auth_config_id=auth_config_id,
17 config={"auth_scheme": "API_KEY", "val": {"generic_api_key": user_api_key}}
18 )
19
20 # API Key authentication is immediate - no redirect needed
21 print(f"Successfully connected Lever for user {user_id}")
22 print(f"Connection status: {connection_request.status}")
23
24 return connection_request.id
25
26
27connection_id = authenticate_toolkit(user_id, lever_auth_config_id)
28
29# You can verify the connection using:
30connected_account = composio.connected_accounts.get(connection_id)
31print(f"Connected account: {connected_account}")

Tools

Executing tools

To prototype you can execute some tools to see the responses and working on the Lever toolkit’s playground

Python
1from composio import Composio
2from openai import OpenAI
3import json
4
5openai = OpenAI()
6composio = Composio()
7
8# User ID must be a valid UUID format
9user_id = "0000-0000-0000" # Replace with actual user UUID from your database
10
11tools = composio.tools.get(user_id=user_id, toolkits=["LEVER"])
12
13print("[!] Tools:")
14print(json.dumps(tools))
15
16def invoke_llm(task = "What can you do?"):
17 completion = openai.chat.completions.create(
18 model="gpt-4o",
19 messages=[
20 {
21 "role": "user",
22 "content": task, # Your task here!
23 },
24 ],
25 tools=tools,
26 )
27
28 # Handle Result from tool call
29 result = composio.provider.handle_tool_calls(user_id=user_id, response=completion)
30 print(f"[!] Completion: {completion}")
31 print(f"[!] Tool call result: {result}")
32
33invoke_llm()

Tool List

Tool Name: Create Note

Description

Tool to create a note on an opportunity profile or add a threaded comment to an existing note.

Action Parameters

createdAt
integer
note_id
string
notifyFollowers
boolean
opportunity
stringRequired
perform_as
string
score
integer
secret
boolean
value
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Delete Interview

Description

Tool to delete an interview from an opportunity panel. Use when you need to remove an externally managed interview on behalf of a user. Only interviews with externallyManaged=true can be deleted.

Action Parameters

interview
stringRequired
opportunity
stringRequired
perform_as
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Delete Note

Description

Tool to delete a note on an opportunity. Use when you need to remove an API-created note.

Action Parameters

note
stringRequired
opportunity
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Delete Panel

Description

Tool to delete a panel from an opportunity. Use when you need to remove an externally managed panel on behalf of a user. Only panels with externallyManaged=true can be deleted.

Action Parameters

opportunity
stringRequired
panel
stringRequired
perform_as
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get File Metadata

Description

Tool to retrieve metadata for a single file on an opportunity. Use when you have opportunity and file UIDs and need details like name, size, and status before downloading.

Action Parameters

file
stringRequired
opportunity
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Note

Description

Tool to retrieve a single note for an opportunity. Use when you need to fetch detailed information for a specific note after confirming the opportunity and note IDs.

Action Parameters

expand
array
include
array
note
stringRequired
opportunity
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Panel

Description

Tool to retrieve a single interview panel for an opportunity. Use when you need to fetch detailed panel info by opportunity and panel UIDs.

Action Parameters

expand
array
include
array
opportunity
stringRequired
panel
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List Opportunity Files

Description

Tool to list all files on an opportunity. Use after obtaining the opportunity UID.

Action Parameters

opportunity
stringRequired
uploaded_at_end
integer
uploaded_at_start
integer

Action Response

data
arrayRequired
error
string
successful
booleanRequired

Tool Name: List Notes

Description

Tool to list notes on an opportunity profile. Use when you have an opportunity UID and need to retrieve its notes.

Action Parameters

expand
array
include
array
limit
integer
offset
string
opportunity
stringRequired

Action Response

data
arrayRequired
error
string
hasNext
booleanRequired
next
string
successful
booleanRequired

Tool Name: List Offers

Description

Tool to list offers for an opportunity. Use when you have an opportunity UID and need to retrieve its offers.

Action Parameters

expand
array
include
array
limit
integer
offset
string
opportunity
stringRequired

Action Response

data
arrayRequired
error
string
hasNext
booleanRequired
next
string
successful
booleanRequired

Tool Name: Remove Opportunity Tags

Description

Tool to remove tags from an opportunity. Use when you need to detach specific labels from an existing opportunity before further updates or archiving.

Action Parameters

opportunity
stringRequired
perform_as
string
tags
array

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Update Interview

Description

Tool to update an interview on an externally-managed panel. Use when modifying all details of an externally-managed panel interview via API.

Action Parameters

date
integerRequired
duration
integerRequired
feedbackReminder
string
feedbackTemplate
string
interview
stringRequired
interviewers
arrayRequired
location
string
note
string
opportunity
stringRequired
panel
stringRequired
perform_as
stringRequired
subject
string

Action Response

data
arrayRequired
error
string
hasNext
booleanRequired
successful
booleanRequired

Tool Name: Update Note

Description

Tool to update a note on an opportunity profile. Endpoint: PUT /opportunities/{opportunity}/notes/{note} Notes: Only notes originally created via the API can be updated.

Action Parameters

completedAt
integer
createdAt
integer
note
stringRequired
opportunity
stringRequired
score
integer
secret
boolean
user
string
values
array

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Update Panel

Description

Tool to update an externally-managed panel for an opportunity. Use when modifying panel details such as applications, timezone, interviews, or notes after confirming the panel is externally-managed.

Action Parameters

applications
array
externalUrl
string
feedbackReminder
string
interviews
arrayRequired
note
string
opportunity
stringRequired
panel
stringRequired
perform_as
stringRequired
timezone
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired