For a listing of open vacancies, please see the vacancies section on the Jobs page. Vacancies are maintained in Greenhouse based on our job families. A vacancy is a temporarily open position. A job family is a permanent description that also applies to existing people with that title. Don't use vacancy and job family interchangeably. The relevant parts of a job family are copy-pasted to Greenhouse to open a vacancy.
To create a vacancy, a Hiring Manager will work with their Recruiting Manager or Recruiting Lead, as outlined in the steps below. For simplicity, this person will be referred to as a Recruiting Manager throughout this process. To note, a vacancy can only be created by a Recruiting Manager before it can be submitted for approval in Greenhouse. This process enables us to ensure Greenhouse the single source of truth for hiring metrics.
We will only create vacancies that are in plan and for specific teams, this means that will not create vacancies for the sole purpose of pooling candidates in one place.
The hiring manager carries the responsibility to ensure vacancies in Greenhouse align to what is included in the rolling 4Q forecast. Therefore, the Hiring Manager, Finance, and Recruiting can stay in sync on what was planned and track towards those goals.
Once the vacancy is approved, the Hiring Manager will review the position description in the /job-families folder and update it, if needed, by making a merge request and assigning it to the Executive to review and merge. If there is no existing job family, follow the steps to create a new job family, then continue. Please note that new job families require approval from the CEO. The Recruiting Manager will use the relevant elements from this job family to open the vacancy in Greenhouse. The job family should include:
A compensation benchmark for the role should be set by working with the Compensation & Benefits team.
For positions that are included in the Rolling 4 Quarter Forecast, the Recruiting Manager will create and open all approved vacancies simultaneously.
The Recruiting Manager will log in to Greenhouse and hover over the plus sign in the top right corner of their dashboard, and then click "Create a Job".
Click on "Start from a copy of an existing job". From there, you can choose to clone a vacancy, which is ideal if you are opening a vacancy that has been opened before, or something very similar has been opened before. If there is no close match, select Any Status at the top bar, select "Draft", and choose the template for the division. Please note: when creating a vacancy, the "Start from scratch" option should not be used, as important elements needed in a vacancy will not be included.
Once you've selected a vacancy to copy, the first screen will ask for basic job info.
The "Internal job name" is only viewable within Greenhouse, and the "External job name" is what appears on the jobs page. Enter in the vacancy name in these fields, including the specialty if applicable. These two fields should almost always be the same, but if you have questions on this, please reach out to the Compensation & Benefits team.
"Department" is the department this role will fall under. Always choose a department and not a division (e.g. for a Security Engineer vacancy, choose the "Security" department underneath the "Engineering" division, and do not choose "Engineering"). If you are unsure of what department to choose, reach out to the Compensation & Benefits team.
If a vacancy can be located anywhere where GitLab hires, check "Anywhere" next to "Office". If a vacancy is dedicated to a certain region or time zone, uncheck the "Anywhere" button and select any of the predetermined regions or time zones. If you need a region or time zone not represented in the list, please reach out to the recruiting operations team. In addition to the region or time zone you've selected, it's recommended to also choose "Remote" so that it's clear to applicants that the vacancy is both located in a particular area but also still remote.
Input the number of openings you want to hire for this role.
Click Generate IDs to create a requisition ID and opening IDs for your vacancies.
Under "Employment Type", select if your vacancy is a full-time, part-time, intern, or contract role. We strongly advise offering both full-time and part-time options for most of the vacancies. Please note: "contract" here refers to true independent contractors who work on short-term projects and is rarely used.
benchmark x level x 0.25 for the low end and benchmark x level x 0.8 on the high end.0.25 on the low end and 0.8 on the high end.If this vacancy is eligible for a bonus, input the range of the bonus amount under the "Bonus" field. If there are no bonuses associated with this vacancy, enter zero, it is a required field.
If this vacancy is eligible for stock options, input the range of offered stock options under the "Options" field. If you may be hiring various levels for this vacancy, input the range (e.g. if you may hire anywhere from Junior to Senior input a range), but if you only want to hire Seniors, then input the number of stock options associated with that level in both fields. If there are no stock options associated with this vacancy, enter zero.
Under "Type" choose if this is a new hire or a backfill.
Select if you'd like to be signed up for weekly recruiting emails or new candidate emails. You'll also be able to configure your notifications later, so don't worry if you're not sure yet.
On the right hand side, you'll be able to add optional background information for interviewers and advice on how to sell this vacancy. This is not required but gives great context for the interviewers and is recommended.
Click "Create Job & Continue".
To create a new category, scroll to the bottom of the screen and select "Add a Category", and add the name of the category. In the category you can add additional attributes.
To remove a category, hover over the category, and click "Delete Category".
To edit the attributes within a category, click "Edit" next to the category. You can then change the name of attributes, delete attributes, add brand new ones, or choose existing attributes from other vacancies. Keeping the attribute names the same and choosing existing attributes from other vacancies is recommended so that the attribute choices remain streamlined. However, if you have a particular attribute for this role that needs to be evaluated, don't hesitate to add it.
Click "Save" once you've configured your attributes and categories. If you don't want to save your changes after you've clicked "Edit" under a category, click "Cancel".
Once the scorecard is finished, click "This looks good, NEXT" at the right of your screen.
The "Interview Plan", is where you'll craft the hiring process and scorecards for each step in the process.
Every vacancy should have an "Application Review" stage. Typically no edits are needed on this stage.
Take Home Test to Assessment. Then hover over the second "Take Home Text" on the right of the stage and change the text again.{{MY_EMAIL_ADDRESS}} and "Subject" GitLab Application - {{CANDIDATE_NAME}} - {{JOB_NAME}} Questionnaire. In the Body, craft an email and insert your assessment questions. Below the body, make sure that the "link for candidates to submit tests" is ON. You can also add any attachments below that field if necessary.The next stage is the "Screening" call stage, which should be standard across the organization. Click "Edit" on this stage, scroll to the bottom, and choose the recruiter as the default interviewer and set interview duration to 30 minutes. It is important for this stage to be named the same across the organization for reporting purposes.
Some teams prefer to have the hiring manager stage broken out separate from "Team Interview" stage and in that case, a stage labeled "Hiring Manager Interview" should be added.
To add a new interview in a stage, hover over the stage and click "Add Interview", then you can copy over an interview from another job or create a new one. You can also move the interviews around within the stage and change the interview names.
The next stage (if applicable) is the "Executive Interview" stage. Depending on the level of the role the executive interviews may be conducted during the team interview stage. In this case, the executive interview section would be reserved for the CEO interview, if applicable. You can customize as needed following the guidelines for the team interview, including selecting attributes, adding custom questions, setting the interview length and selecting a default interviewer.
The next stage is "Reference Check", with at least three sections; a former manager and two former peers. These can be customized as needed. For executive-level roles, it is suggested you include the following; two former managers, two former peers, two former direct reports, and back-channel. The background check is performed during the Reference Check stage.
Once your interview plan is complete, click "This looks good, NEXT" at the right.
Click "This looks good, NEXT" at the right.
Scroll to the bottom of the page and click "Request Approval".
While pending approval, the recruiter assigned to the req should contact the hiring manager to setup a REQ intake session.
The REQ intake session should include the Recruiter, the Hiring Manager, the assigned Candidate Experience Specialist (optional) and Sourcer (optional).
Ahead of the call, Recruiter must create a REQ Intake Issue by using the [REQ Intake Issue Template] (https://gitlab.com/gl-recruiting/req-intake/issues/new?issue%5Bassignee_id%5D=&issue%5Bmilestone_id%5D=). The Recruiter, Hiring Manager, CES, and Sourcer should all be added to the issue so they can contribute ahead of the REQ Intake Session.
The Hiring Manager should come prepared to discuss the interview team, what is each interview assessing for so we can update/create the scorecard, time zone or location requirements (please note some of the job boards we post to requires a specific town even if the position can be located anywhere). The [REQ Intake Issue Template] (https://gitlab.com/gl-recruiting/req-intake/issues/new?issue%5Bassignee_id%5D=&issue%5Bmilestone_id%5D=) should be attached to the calendar invite so the hiring manager can fill out the form prior to the meeting.
When the REQ intake session is complete and the job is ready to be posted, the Recruiter notifies the assigned CES by an @ mention in the approval notes.
The Candidate Experience Specialist who is the coordinator for that vacancy should follow the below steps once they receive notice from the recruiter to post the new vacancy.
Go to the vacancy and under "Job Setup", review the configurations the Recruiting Manager has made and ensure everything is correct; reach out to them to ask clarifying questions if there is anything you don't understand or if there is anything missing.
Confirm each person in the hiring process has appropriate access and upgrade if necessary in Greenhouse.
Confirm each interviewer has a personal Zoom link.
Confirm each interviewer is listed on the Zoom Cheat Sheet.
Confirm each interviewer has completed an Interview Training Issue.
The CES may choose to send the following email to each member of the interview team:
Subject: Interview Training Issue, Zoom Personal Room and Google Office Hours
Body: xxx, in order to have you scheduled for interviews I needed to create a zoom personal "room" for you. Please note this link can be joined by anyone at any time if they already have the link so it's a good idea to turn on the waiting room function. You can even customize the waiting room message with a GitLab logo and custom text! These steps are done in a web browser, not the app.
Your personal zoom link: https://gitlab.zoom.us/my/gitlab.
Also can you please make sure you have your office hours set up in your calendar? This will help me schedule the interview right the first time and save you and the candidate time and frustration. You can learn how here.
And one final thing, if this is your first time conducting interviews on behalf of GitLab I will need to create an interview training issue for you. Please let me know if that is the case.
As always, If you have any questions let me know! Thanks, xxx
Job NamePost To should always be GitLab.Location always keep "Remote" listed in addition to any location requirement.Application Language should always be English.Description should be the copy/pasted from the job family on GitLab.com with the relevant information for the level/specialty/etc.To view the full job description and its compensation calculator, view our handbook (insert job family url). The compensation calculator can be found towards the bottom of the page.
Additional details about our process can be found on our hiring page.
If there are any links in the description, click on the link, then click the link icon in the text box toolbar, then change Target to New Window, then click "Ok" and repeat for any other links in the description; this will ensure all links work properly.
< > on the menu bar in the description text box to open the source code<div><span style="font-size: xx-small;"><span style="color: white">Remote-Global</span></span></div> at the bottom, and change the letters in Remote-XXX to the appropriate code for the current available LinkedIn job wrapping locations (ensure to copy exactly from the sheet as spaces matter). Default should be the Remote-Global tag.Basic Application Questions:
Additional Questions must include:
You can add additional custom application questions as needed to help sort through required qualifications or to replace the information asked in the assessment stage.
Settings
Choose a city to index the vacancy on Glassdoor and Indeed. Please reference the GitLab Country Guidelines to ensure you are not posting to a location where we cannot hire. The location should have been identified by the Hiring Manager during the Intake Call.
Click "Save" at the bottom of the screen.
Click the red button to publish the vacancy to our external job board.
On the Job Post you just edited click the three dots next to the pencil and click "Duplicate".
The Job Name automatically puts "Copy of" at the front of the title; remove this.
Select "INTERNAL" from the drop-down list under "Post To".
Do not edit Location, Application Language, Description, and Basic Application Questions.
Additional Questions section should only include the following questions:
Click "Save".
Click the red button to publish the vacancy to our internal job board.
After publishing, announce on Slack in #new-vacancies for team members to apply or send in referrals. Slack message template:
New Job Alert: TITLE
Apply internally: LINK
You can share this opening with your network: LINK
Review how to make a referral: https://about.gitlab.com/handbook/hiring/greenhouse/#making-a-referral
Adding a video to your job post is a great way for candidates to get to know the role, hiring manager, and GitLab before they even apply. Hiring managers, if there's not already a video created for your job family or role, consider recording one. Check out the job family video issue for guidance or support, or record your own role-specific video.
Examples:
Learn more about uploading to GitLab Unfiltered within the Communication section of the Handbook. If you're unable to create a video, please add a video about life at GitLab, like this one.
To add an embedded video to a job posting:
The Recruiter may conduct a calibration exercise with the Hiring Manager by presenting 2-3 unscreened resumes to make sure they are identifying the right skills and will adjust accordingly.
The Recruiter conducts direct sourcing efforts, reviews resumes, maintains the status of applicants, sets dispositions, and will screen on average 8-10 candidates per opening.
Once candidates have been identified and screened, the Recruiter will submit the top 4-5 qualified applicants to the Hiring Manager or designee for review.
The Hiring Manager will select which candidates they are interested in interviewing.
For difficult or hard-to-fill positions, the hiring team will use the available tools to source for additional candidates. Please communicate with the hiring team if sourcing is needed for a strategic, specialized, or difficult to fill position. In addition, Managers should also reach out to their own network for candidates and referrals. It is common for candidates to respond more frequently to those who they know are the hiring manager. One superpower of great Managers is having a strong network of talent from which to source.
Recruiters use various tools to identify talent by proactively reaching out to candidates for opportunities. In addition, they will partner with hiring managers to participate in sourcing to ensure they are targeting the right skillsets.
The Hiring Manager should always ask the team for passive referrals for open positions. GitLab team-members can refer candidates through our referral program.
The hiring team should publicize the vacancy through the following means:
GitLab | Remote only | Full time - It’s an exciting time to join GitLab. As a fast-growing, all-remote company, GitLab is a place where you can contribute and make an impact from anywhere in the world. You’ll be part of an ambitious, productive team that values transparency and collaboration. We’re hiring solutions architects, engineering managers, security engineers, recruiters, support engineers, product managers, strategic account leaders, and more roles in every department. Here’s our full list of vacancies: https://about.gitlab.com/jobs/ Here’s an inside look at GitLab’s interview process from one of our new team members: https://about.gitlab.com/blog/2019/03/28/what-its-like-to-interview-at-gitlab/ Want to learn more? Check out our company handbook: https://about.gitlab.com/handbook/Example commentGitLab (YC W15, All-remote) is hiring XXX. And the URL links to the vacancy. Example postingWhen using vacancy links to spread the word about our current vacancies, in order to keep data accurate, we can create specific tracking links through Greenhouse in order to include the specific source of different job boards, etc. To learn more about how to create the tracking links for jobs, please see the Greenhouse help article.
All vacancies must be posted on our jobs page for at least 3 business days before we can close it externally or make an offer; this includes all new positions and promotions. If a vacancy has been opened for at least 3 business days and has 50 or more applicants, the recruiting team may close the role to new applicants at that time and reopen if and when we need more applicants. Generally the job will remain published on the Internal job board to stay open for additional referrals.
The Recruiter will clear the pipeline of candidates in all stages of application and notify the candidates that the position has been either filled or closed.
Consider rejecting promising candidates with the reason Future Interest and making them a prospect so we can reconsider them in the future.
You can also add various tags to the candidates, which makes it easier to find them in Greenhouse later on if you are recruiting for the same or a similar position.
You can also set a reminder for a candidate if you anticipate reopening the role at a later date.
The Recruiter will close the position in Greenhouse. Please note that upon closing the vacancy this will cancel interviews but not remove them from calendars. It is best to manually delete any inflight interviews before closing the role.