# Turn Lever hires into BambooHR records and a Slack welcome

> When a candidate is marked hired in Lever, we create their BambooHR employee record, announce them in Slack, and log the hire in your new starter tracker.

- Workflow type: code
- Services: Lever, BambooHR, Slack Bot, Google Sheets
- Categories: HR & People, Operations
- Published: 2026-08-07

## What it does

- Kicks off the moment a candidate is marked hired in Lever, so the handoff never waits on someone remembering to copy details across.
- Reads the candidate's name, email, and phone from their Lever profile, plus job title, start date, and compensation from their signed offer.
- Creates the new starter in BambooHR with job title, hire date, department, and location already filled in.
- Announces the new starter in your people ops Slack channel and logs them in a shared new hire tracker, flagging anyone whose start date is still missing.

## What you'll need

- A Lever account with admin access, so hire events can be sent through automatically
- A BambooHR account that is allowed to add employees
- A Slack workspace and the channel where your people ops team wants announcements
- A Google Sheets new hire tracker with columns for candidate name, role, start date, recruiter, and Lever profile link

## Prompt

When a candidate is marked hired in Lever, I want their employee record opened in BambooHR and the team told, with nobody retyping anything. Trigger this workflow from a Lever webhook on the candidate hired event, which gives me the opportunity ID of the person who was just hired.

Start by calling Lever Retrieve Opportunity for that opportunity ID, expanding the contact and the owner so I get the candidate profile and the recruiter who owns them in one call. Then call Lever Get Contact for the canonical person record and read their full name, email, and phone number. Hold on to the opportunity's Lever profile URL (the show URL on the opportunity) so I can link back to it later, and hold on to the owner's name as the recruiter.

Next call Lever List Offers on an Opportunity and take the most recent signed or accepted offer. Read the job title, the start date, and the compensation details off it. For department and location, call Lever Retrieve Posting for the posting on the hired application and use its team or department category and its location category.

Before creating anything, call BambooHR Get Employee Directory and check whether an employee with that work email already exists. If one does, skip the create step entirely and say so in the Slack message rather than creating a duplicate record.

Otherwise create the new starter with BambooHR Create Employee, mapping first name, last name, work email, job title, hire date, department, and location from the Lever record. Lever timestamps come back as Unix milliseconds, so convert the offer start date into the YYYY-MM-DD format BambooHR expects for the hire date. BambooHR returns the new employee ID in the Location header rather than in the response body, so read it from there and keep it for the announcement.

Then post a new hire announcement to the people ops channel with Slack Bot Send a Message. Include the new starter's name, job title, start date, the recruiter who owned the opportunity, a link to their Lever profile, and the new BambooHR employee ID.

Finally append a row to the new hire tracker with Google Sheets Append Values, holding candidate name, role, start date, recruiter, and the Lever profile link.

If the offer has no start date recorded yet, still create the BambooHR record and still post and log everything, but leave the hire date empty and call out the missing start date clearly in the Slack message so someone chases it. Write "Start date missing" in the start date column of the tracker row.

## How to customize

- Change which Slack channel gets the announcement and what the welcome message says.
- Adjust which columns the new hire tracker records, or point it at a different spreadsheet and tab.
- Change how the department and location on the Lever job posting map to the labels your BambooHR account uses.

## FAQ

### What happens if the offer has no start date yet?

The employee record is still created in BambooHR with everything else filled in, and the Slack announcement calls out that the start date is missing so someone can chase it. The tracker row records it as missing too.

### Which candidate details get copied into BambooHR?

First name, last name, work email, job title, hire date, department, and location, all taken from the candidate's Lever profile and their signed offer. Nobody retypes anything.

### Will it create a duplicate if someone is marked hired twice?

No. Before creating anything it checks your BambooHR employee directory for that work email. If the person already exists, it skips the create step and says so in the Slack message.

### Can the announcement go somewhere other than a company-wide channel?

Yes. You choose the channel, so it can go to a private people ops channel, a team channel, or anywhere your bot has been invited.

### Do we have to use Google Sheets for the tracker?

The workflow appends to a Google Sheet by default, and you can point it at whichever spreadsheet and tab you already use for new starters. If you do not want a tracker at all, that step can simply be removed.

Use this prompt in General Input: https://www.generalinput.com/prompts/turn-lever-hires-into-bamboohr-records-and-a-slack-welcome