Lever logo

Lever AI employee

Viktor is an AI employee that connects to Lever and helps you manage job postings and track candidates through hiring, running 16 Lever actions for you like Add Note, List Users, and List Stages. Ask in plain English from your workspace; Viktor does the work in Lever and reports back. Viktor connects in one click via OAuth.

Free to start
No credit card
SOC 2 Type 1
Works in Slack & Microsoft Teams

What is a Lever AI agent?

A Lever AI agent is an AI that connects to your Lever account and completes work in it - it doesn't just answer questions about Lever, it takes the actions. Viktor is an AI employee that works in Lever on your behalf and delivers the finished result to your workspace.

Unlike workflow builders such as Zapier or Make, there is nothing to configure - no triggers to map, no workflows to maintain. You describe the outcome in plain English, and Viktor picks the right Lever actions, chains them with the other 3,200+ tools it connects to, and asks for approval before anything sensitive runs.

About Lever

Flexible Recruiting Software for Today's Hiring Teams

  1. You ask in your workspace

    Describe what you need in plain English

  2. Viktor picks the actions

    Selects from 16 Lever actions, chains them together

  3. Runs in Lever

    Helps you manage job postings and track candidates through hiring - your real data.

  4. Reports back

    Delivers the finished result to your workspace

Try asking Viktor

What can you ask Viktor to do in Lever?

Messages you'd actually send. Paste one into your workspace, swap in your specifics, and Viktor takes it from there.

  • Screen the new applicants in Lever against this job description and shortlist the top five.

    — you, to @Viktor

  • Summarize this week's candidate pipeline from Lever for the hiring team.

    — you, to @Viktor

  • Draft outreach to the candidates in Lever who passed the phone screen.

    — you, to @Viktor

  • Keep Lever up to date after each interview - notes, stage, and next steps.

    — you, to @Viktor

How it works

How does Viktor work with Lever?

Step 1: Connect your stack

27 native integrations. 3,200+ tools via managed connectors. Most are one-click OAuth, some use API keys - Viktor handles auth and starts working. No webhooks, no Zapier zaps.

Maya Patel11:32 AM
@Viktor check this week's Stripe revenue against HubSpot and flag anything off before the board call.
Viktor
ViktorApp11:33 AM
On it. Cross-checking Stripe against HubSpot and fixing anything that doesn't line up before your board call.

Step 2: Tell Viktor what you need

Message Viktor in Slack like you'd message a teammate. "Reconcile this month's invoices and flag anything weird." "Pause Meta campaigns above $40 CPA and move the budget to winners." Plain English, any tool.

Viktor
ViktorApp9:12 AM
📊 Revenue check:
$84,210 (+6.4% WoW).
3 deals didn't match HubSpot.
Fixed 2, one needs your call.

revenue_raport.pdf

4 pages·PDF

Step 3: Viktor operates, you review

Viktor opens the tools, runs the work, and posts back what changed. Sensitive actions wait for your approval. Everything is logged. You stop doing the work and start reviewing it.

Actions

What can Viktor do in Lever?

Ask in plain English from your workspace. Viktor picks the right Lever actions, runs the work, and reports back. No workflows to build.

  • Other

    Update Opportunity Stage

    Moves a candidate to a different stage in the hiring pipeline. Use this when asked to advance, move, or update a candidate's stage. Use List Stages to find the target stage ID, and Search Opportunities to find the opportunity ID. Every stage change is logged in Lever's audit trail under the Perform As user. Example: call with opportunityId="<id>", stageId="<stageId>", performAs="<userId>" → moves the candidate to that stage and returns the updated opportunity.

  • Other

    Submit Feedback

    Submits an interview feedback form (scorecard) for an opportunity. Use this after an interview to record the interviewer's assessment. baseTemplateId is required — it identifies which feedback form template to submit against. Use List Feedback Templates to resolve the template id and its field IDs. panel and interview are optional but linked: if you specify one, you must specify the other. Use List Opportunity Items (resource=interviews) to find panel and interview IDs. Use List Opportunity Items (resource=feedback) to check if feedback has already been submitted for this panel. fieldValues is a JSON array of {"id": "<fieldid>", "value": "<answer>"} objects; the field IDs and valid values come from the template returned by List Feedback Templates. Perform As is required — feedback is attributed to this user. Use List Users to find user IDs. Example: call with opportunityId="<id>", performAs="<userId>", baseTemplateId="<templateId>", fieldValues=[{"id": "<fieldId>", "value": "strongyes"}] → submits the scorecard and returns the created feedback record.

  • Other

    Search Opportunities

    Searches and filters opportunities (candidate applications) in Lever. This is the primary tool for finding candidates — use it whenever asked to find, list, or filter candidates or applications. Supports filtering by job posting, pipeline stage, tag, origin, email, and archived status. Use List Postings to find posting IDs, List Stages to find stage IDs. The Lever API has no name or owner filter. To find a candidate by name, pass the name in email: when the value isn't a valid email address this tool lists opportunities and matches them by name/email locally (it does not send an invalid email to the API). The local name match sweeps up to the first several pages of results; if that cap is reached the $summary says so and the response next cursor lets you continue. When the user says 'my candidates', note that the API does not support filtering by owner directly — search by posting or stage and identify relevant records from the results. Set expand to include related objects inline (e.g. stage, owner, contact) and avoid follow-up calls. Returns cursor-paginated results; use the next field in the response to fetch subsequent pages. Example: to find a candidate by email, call with email="jane@example.com" → exact match; to find by name, call with email="Jane Doe" → local name match.

  • Other

    List Users

    Returns all users (recruiters, hiring managers, admins) in the Lever account. Use this to resolve team member names to user IDs before assigning ownership, filtering opportunities by owner, or setting the Perform As field on write operations. Returns each user's id, name, email, and access role. Returns one page (up to limit); if the response's hasNext is true, pass its next value to offset to fetch the following page. Example: call with no arguments → returns users each with id, name, email, and access role; pass a user's id as Perform As on write actions.

  • Other

    List Stages

    Returns all pipeline stages configured in the Lever account. Use this to resolve stage names to IDs before filtering candidates with Search Opportunities, moving a candidate with Update Opportunity Stage, or creating an opportunity at a specific stage. Returns each stage's id and text (display name). Returns one page (up to limit); if the response's hasNext is true, pass its next value to offset to fetch the following page. Example: call with no arguments → returns stages like { id: "lead-new", text: "New lead" }; pass a stage id to Update Opportunity Stage.

  • Other

    List Postings

    Returns job postings from Lever, optionally filtered by state, team, or location. Use this to discover posting IDs before searching opportunities with Search Opportunities or creating a new candidate with Create Opportunity. Returns each posting's id, name, state, team, department, and location. Returns one page (up to limit); if the response's hasNext is true, pass its next value to offset to fetch the following page. Example: to find published engineering roles, call with team="Engineering", state="published" → returns postings each with id, name, state, team, and location.

  • Other

    List Opportunity Items

    Returns sub-records attached to a single opportunity (candidate): notes, feedback, interviews, resumes, files, or offers. Use this when asked about a candidate's notes, interview feedback/scorecards, scheduled interviews, resumes, attached files, or offer. Set resource to choose which: notes (recruiter notes), feedback (interview scorecards — each with panel id, interviewer, and score), interviews (scheduled interviews — each with panel id, date, interviewers), resumes (parsed resumes — each with a resume id), files (other attached documents — each with file id, name, extension), or offers (offer details). Use Search Opportunities to find the opportunity ID first. The panel IDs returned by interviews/feedback are used by Submit Feedback; the resumes resource returns each resume's parsed data inline (status, file info, and extracted fields). For notes, feedback, interviews, and offers this returns one page (up to limit); if the response's hasNext is true, pass its next value to offset to fetch the following page. Gotcha: resumes and files are not paginated — Lever returns the full set in a single payload with no hasNext/next cursor, and limit/offset are ignored, so do not expect cursor metadata for them. Example: to read a candidate's interview feedback, call with opportunityId="<id>", resource="feedback" → returns feedback records each with panel id, interviewer, score, and completed form fields.

  • Other

    List Feedback Templates

    Returns the feedback form templates configured in the Lever account, including each template's field definitions. Use this before Submit Feedback to resolve the baseTemplateId and the field IDs required for fieldValues — without it those IDs are unknown. Returns each template's id, text (name), and fields (each with an id, type, and prompt text). Returns one page (up to limit); if the response's hasNext is true, pass its next value to offset to fetch the following page. Example: call with no arguments → returns templates like { id: "<templateId>", text: "Onsite Interview", fields: [{ id: "<fieldId>", type: "score-system", text: "Overall" }] }; pass that template id as baseTemplateId and the field ids inside fieldValues when calling Submit Feedback.

  • Other

    List Archive Reasons

    Returns all archive reasons configured in the Lever account. Use this to find a reason ID before archiving a candidate with Archive Opportunity. Filter by type to get only hired reasons or only non-hired (rejection) reasons. Returns each reason's id, text, and type. Returns one page (up to limit); if the response's hasNext is true, pass its next value to offset to fetch the following page. Example: call with type="non-hired" → returns rejection reasons each with id, text, and type; pass an id as the reason for Archive Opportunity.

Works with your stack

Viktor uses Lever together with your other tools

Ask for outcomes that span tools - Viktor pulls from Lever, cross-references the rest of your stack, and delivers one finished result.

Trusted by 63,000+ teams

The moment Viktor becomes part of the team.

Infrastructure for a $1M/yr agency built in 9 days
I discovered Viktor 9 days ago, and I have already built the infrastructure for a $1,000,000 a year content agency with zero staff.
Troy Dean

Troy Dean

Founder, Agency Mavericks

Saved:1 FTE/1 full time employee
Literally a game-changer for me, like adding another employee (or two).
Krysta Mueggenburg

Krysta Mueggenburg

Owner, Element Turf & Outdoor Solutions

Saved:10+ hrs/week
Claude Tag writes better specs. Viktor executes faster across tools. Viktor actually goes and creates the tickets.
Toni Lopez

Toni Lopez

Co-founder, Karumi (YC F25)

Lever integration FAQ

Yes. Lever is one of the 3,200+ tools Viktor connects to, via a managed connector. Once connected, anyone on your team can put Viktor to work in Lever from their workspace - no workflow builder, no code.

4.9 on G2G2 rating: 4.9 out of 5 stars

One hire. The output of a team.

Viktor works nights, remembers every decision, and connects to 3,200 tools. Start free with $100 in credits, then $50 a month.

Get Started for Free