Closed beta · run Worlds on your machineBrowse worlds →
Docs menu · Lever API

Worlds / Hr and identity

Lever API

A local Lever with postings, opportunities, pipeline stages, interviews, feedback forms and requisitions. Test the recruiting agent that advances, archives and schedules candidates across postings.

Base path
/v1
Auth
API key over HTTP basic auth, the world key
Endpoints
14
Status
Active today

This reference previews the surface the Lever world serves in the closed beta. Paths mirror the public Lever API; the exact subset is confirmed when your workflow is scoped.

Connect

The run gives your agent these bindings. Keep your SDK; change only where it sends requests.

bindingmeaning
WORLDS_LEVER_URLThis world's origin followed by /v1
WORLDS_API_KEYThe world key, accepted wherever Lever expects a credential
WORLDS_WORLD_IDThe isolated world's identity
js · fetch
const base = process.env.WORLDS_LEVER_URL;
const auth = Buffer.from(process.env.WORLDS_API_KEY + ":").toString("base64");

const res = await fetch(base + "/v1/opportunities?limit=20", {
  headers: { Authorization: "Basic " + auth },
});

const { data } = await res.json();

API reference

Opportunities

A candidate's pursuit of a role, with stage and owner.

  • GET/v1/opportunitiesList opportunities
  • POST/v1/opportunitiesCreate an opportunity
  • GET/v1/opportunities/{id}Get an opportunity
  • PUT/v1/opportunities/{id}/stageMove an opportunity to a stage
  • PUT/v1/opportunities/{id}/archivedArchive an opportunity
Fields · 6
idstringOpportunity id
namestringCandidate name
emailsarrayEmail addresses
stagestringCurrent stage id
ownerstringOwning user id
archivedobjectArchive reason and time

Postings

Public job postings.

  • GET/v1/postingsList postings
  • GET/v1/postings/{id}Get a posting
  • POST/v1/postingsCreate a posting
Fields · 5
idstringPosting id
textstringTitle
statestringpublished, internal, closed, draft or pending
teamstringTeam
categoriesobjectLocation, commitment and department

Feedback

Interview feedback forms and their ratings.

  • GET/v1/opportunities/{id}/feedbackList feedback for an opportunity
  • GET/v1/opportunities/{id}/interviewsList interviews for an opportunity
  • POST/v1/opportunities/{id}/notesAdd a note
Fields · 5
idstringFeedback id
typestringinterview or note
userstringAuthor user id
fieldsarrayForm answers and scores
completedAtintegerCompletion time in ms

Stages and users

Pipeline stages and the users who work them.

  • GET/v1/stagesList stages
  • GET/v1/usersList users
  • GET/v1/users/{id}Get a user
Fields · 4
idstringStage or user id
textstringStage name
namestringUser name
accessRolestringRole of the user

Test workflow

  1. Prepare. Select the Lever setup for your workflow and review its starting records, including opportunities, postings, feedback.
  2. Connect. Configure your agent with this world's URL and key using the SDK example. Check that it reaches the intended API before running a test.
  3. Define. Describe the task, expected final changes and records that must stay untouched. Keep expected outcomes separate from the agent's instructions.
  4. Run and inspect. Use the dashboard or your workflow's generated CLI setup. Review final records and changes, then rerun from the same starting setup with the relevant failure conditions. Use Deployment and CI to automate the same workflow.

What to verify

  • opp 9f21 moved to On-site interview
  • opp 9e88 archived with reason Withdrew
  • opp 9e40 still at Offer
  • opp 9f30 unchanged
  • Requisition R-12 unchanged

Test file

A task file names the jobs, the policy your agent is given and what the grader reads back from the world's final state. The agent never sees the expected outcomes.

yaml · worlds/tasks.yaml
# worlds/tasks.yaml · Lever
version: 2
connector: lever
seed: lever-starter
mode: isolated
policy: >
  Clean up the Product Designer pipeline. Advance anyone with complete
  positive feedback and archive withdrawn candidates with reason Withdrew. Do
  not touch anyone at Offer.
tasks:
  - id: advance-opportunities-when-feedback-is-complete
    prompt: Advance opportunities when feedback is complete
  - id: archive-with-the-right-archive-reason
    prompt: Archive with the right archive reason
  - id: link-opportunities-to-the-correct-requisition
    prompt: Link opportunities to the correct requisition
expected:
  - opp 9f21 moved to On-site interview
  - opp 9e88 archived with reason Withdrew
  - opp 9e40 still at Offer
  - opp 9f30 unchanged
  - Requisition R-12 unchanged
scenarios:
  - rate-limited
  - missing-perform-as
  - bad-stage-id

See Tasks and outcomes for every field, and Deployment and CI to run the file on every pull request.

Failure conditions

Each one fires before the handler, at the same step on every run.

conditionwhat the agent sees
rate-limitedThe API returns 429 past its request rate
missing-perform-asWrites without perform_as are rejected
bad-stage-idMoving to an unknown stage returns 400
key-revokedThe API key is revoked and calls return 401

Starting data

Start each run from the same records and relationships. The overview below describes the Lever starter; use the setup supplied for your workflow when preparing your own snapshot.

RecordsStarting setup
postings10 published postings with owners and hiring managers
opportunities200 across New lead, Phone screen, On-site interview and Offer
feedbackFeedback forms, complete and outstanding
requisitions6 requisitions with headcount and status
archive reasonsHired, Underqualified, Withdrew, Position filled

The record shapes below reuse this world's API field definitions. They show illustrative values and placeholders, not an importable seed. API responses and seed input can differ; include all required records and references in the accepted import format for your workflow.

Opportunities records

Opportunities

A candidate's pursuit of a role, with stage and owner.

FieldTypeMeaning / relationship
idstringOpportunity id
namestringCandidate name
emailsarrayEmail addresses
stagestringCurrent stage id
ownerstringOwning user id
archivedobjectArchive reason and time
json · illustrative record shape
{
  "id": "<Opportunity id>",
  "name": "<Candidate name>",
  "emails": [],
  "stage": "<Current stage id>",
  "owner": "<Owning user id>",
  "archived": {}
}

See opportunities operations

Postings records

Postings

Public job postings.

FieldTypeMeaning / relationship
idstringPosting id
textstringTitle
statestringpublished, internal, closed, draft or pending
teamstringTeam
categoriesobjectLocation, commitment and department
json · illustrative record shape
{
  "id": "<Posting id>",
  "text": "<Title>",
  "state": "<published, internal, closed, draft or pending>",
  "team": "<Team>",
  "categories": {}
}

See postings operations

Feedback records

Feedback

Interview feedback forms and their ratings.

FieldTypeMeaning / relationship
idstringFeedback id
typestringinterview or note
userstringAuthor user id
fieldsarrayForm answers and scores
completedAtintegerCompletion time in ms
json · illustrative record shape
{
  "id": "<Feedback id>",
  "type": "<interview or note>",
  "user": "<Author user id>",
  "fields": [],
  "completedAt": 1
}

See feedback operations

Stages and users records

Stages and users

Pipeline stages and the users who work them.

FieldTypeMeaning / relationship
idstringStage or user id
textstringStage name
namestringUser name
accessRolestringRole of the user
json · illustrative record shape
{
  "id": "<Stage or user id>",
  "text": "<Stage name>",
  "name": "<User name>",
  "accessRole": "<Role of the user>"
}

See stages and users operations

See the Lever world in the catalog