On this page


For a listing of open vacancies, please see the vacancies section on the Jobs page. Vacancies are maintained in Lever based on our roles. A vacancy is a temporarily open position, a position description is a permanent description that also applies to existing people with that title. Don't use vacancy and position description interchangeably. The relevant parts of a position description are copy-pasted to Lever to open a vacancy.

Vacancy Creation Process

If you want to hire for a position you will need to follow the steps below. A vacancy needs to be opened in Lever before we can start interviewing.

  1. Review the position description in the /roles folder and update, if needed, by making a merge request. If there is no position description, follow the steps to create a new role, then continue. The recruiters will use the relevant elements from this position description to open the role in Lever.
    • The position description should include:
    • Responsibilities
    • Specialty (e.g. Gitaly, Backend)
    • Level
    • Location (e.g. Anywhere, EMEA, Americas)
    • Requirements
    • Hiring Process, also update the internal hiring process repo
  2. Ensure the proper approvals are in place to hire for the role.
    • The role must be listed on the "Hiring Forecast" (found on the Google Drive).
    • A compensation benchmark for the role should be set but working with the people-ops team.
    • If the role is not listed on the "Hiring Forecast," the hiring manager will obtain approval from the Executive team member. The Executive team member escalates to the CFO and/or the CEO.
    • Roles listed on the Hiring Forecast will have a one of the following statuses:
    • Open - vacancy is open and we are actively sourcing and hiring for the role
    • Closed - no vacancy, not actively sourcing or hiring for the role
    • Filled - vacancy has been filled by internal or external candidate
    • Draining - vacancy is closed, no longer accepting new candidates, but will review existing candidates through the hiring process and fill the role if a qualified candidate is identified from existing candidates
    • Pending Approval - vacancy has been suggested by executive team member and is pending board, CEO, or CFO approval.
  3. To open a vacancy, please go to the People Ops Vacancy project and create a new issue. Next to title where it says "Choose a template", select the vacancy template. Follow the directions that populate in the issue.
  4. Once the issue is complete, People Ops will open the vacancy in Lever.

To find which recruiter works on what role and what roles are currently open, search the Google Drive for "2018 Hiring Listing".

Posting the Role in Lever

Once all steps in the vacancy issue are completed, a member of the Recruiting team will create the position in Lever, using the exact same position title and position description as provided in the issue. If this step is completed out of order, people are able to apply even though the position posting may not have been approved yet.

  1. In Lever, click "Create Job Posting" in top right corner.
  2. For location, select a specific timezone or "Remote".
  3. For department/team, select the appropriate team.
  4. For work type, choose full-time or intern.
  5. Under "Job Posting Status" you can choose whether this vacancy will be published upon creation, kept internal, or a draft.
  6. Description:
    • Copy and paste any opening paragraphs from the position description.
    • Beneath that, copy and paste the "About GitLab" section from another vacancy, which includes a short blurb about GitLab, what we value, and the top 10 reasons to work at GitLab.
  7. Under Lists create a new lists titled "Responsibilities" and "Requirements"
    • Copy and paste the relevant information from responsibilities, requirements, specialty, etc. from the position description.
    • Repeat with any other sections as needed.
    • Ensure the language and structure is gender neutral using this gender decoder. Make necessary edits to the vacancy description, and create a merge request to update the position description.
    • Include the hiring process in the Closing section, along with a link to the compensation calculator for the role if applicable.
      • For some positions, it may be possible or desirable to exclusively seek candidates outside of higher cost regions. This is a role by role decision between the Hiring Manager and People Operations. If it is decided to seek candidates outside of higher cost regions, then that needs to be explicitly communicated on the position description page in order to set fair expectations for candidates and recruiters alike. Sample text to consider placing on the position description page: "Globally, xx % of people live in metro areas with a rent index greater than yy, while at GitLab, this is zz % of people in this role currently. Therefore, in line with our value of staying frugal, we are now focusing on only hiring in metro areas with a rent index lower than yy. Please bear this in mind when using the compensation calculator below." (obviously, fill in the missing numbers).
    • Under Custom Questions, add the following: "Additional Questions", "Salary", and "Cover Letter". If there are additional specific questions for that role, either select the appropriate form or create a new one.
    • Finally, you can also customize the default Feedback Forms that interviewers will complete during different stages of the interview. If there is no custom feedback form, choose "General Feedback".
    • Once finished, click "Create Posting". If you chose "published" under "Job Posting Status", the vacancy will become live on our jobs page.

All vacancies must be posted on our careers page for at least 3 business days before we can close it 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 will close the role to new applicants at that time and reopen only if and when we need more applicants.

To view a closed role in Lever, interviewers can either click the "Search" button in the left hand sidebar and type the title of the role and they will be shown all candidates for that role, or they can scroll to the bottom of the left hand sidebar and click the "Show Closed" button, which will show all open and closed vacancies they have access to in the sidebar, from which they can select whichever roles they want to view.

Sourcing, Screening, and Resume Submittal

  1. When a vacancy is opened a recruiter conducts an intake call with the hiring manager to get details about the position.
  2. Recruiter posts job in Lever and relevant internet job boards.
  3. 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.
  4. Recruiter conducts direct sourcing efforts, reviews resumes, maintains the status of applicants, sets dispositions, and will screen on average 8-10 candidates.
  5. Once candidates have been identified and screened, recruiter will submit the top 4-5 qualified applicants to the hiring manager or designee for review.
  6. Manager will select which candidates they are interested in interviewing.

Publicize the Vacancy

The manager should always ask the team for passive referrals for open positions. GitLab team members can refer candidates through our referral program.

The employment team will always publicize the vacancy through the following means:

  1. Tweet the new vacancy post with the help of the content marketing manager and team.
  2. Request "soft” referrals by encouraging all GitLab team members to post links to the jobs site on their LinkedIn profiles.
  3. Who's Hiring: On the first of the month, include a comment for GitLab in the Hacker News thread of "Who's Hiring" . Template text: REMOTE GitLab - We're hiring for developers, designers, product managers, site reliability engineers, and many more roles, see We're an all-remote company so everyone can participate and contribute equally. GitLab is an open-core application for the whole DevOps lifecycle with over 2000 contributors. Example comment

Note: The employment team may advertise the vacancy through the following sites and is open to posting to more, in order to widely publish a variety of vacancies:

  1. Alumni post as a Y Combinator alumni we can post directly to the front page of Hacker News. The EA vault has credentials so ask an EA to post. Template text: GitLab (YC W15, All-remote) is hiring XXX and more. Example
  2. LinkedIn (Able to post 3 vacancies simultaneously, please mention to employment team if you want your role listed here)
  3. StackOverflow (Able to post 3 vacancies simultaneously, please mention to employment team if you want your role listed here)
  4. TechLadies (Able to post 4 roles simultaneously, please mention to employment team if you want your role listed here; at this time we are not posting engineering roles to TechLadies)
  5. PowerToFly (All current vacancies are updated biweekly)
  6. RemoteBase (Free; position descriptions are synced directly to our respective position description sites)
  7. WeWorkRemotely ($200 for 30 days, per position, used infrequently)
  8. RemoteOK ($200 for 90 days, per position, used infrequently)
  9. Indeed Prime (Primarily used for non-engineering roles)
  10. Ruby Weekly ($199 per slot per newsletter, for engineering roles)

When using vacancy links to spread the word about our current vacancies, in order to keep data accurate, we can edit the link to include the specific source of different job boards, etc. At the end of the Lever vacancy link, add ?lever-origin=applied&lever-source%5B%5D=JOBBOARDNAME and replace JOBBOARDNAME with the appropriate source. If you wanted to share the Developer vacancy on LinkedIn, for example, the correct link to use would be When a candidate applies from this special link, it will automatically assign the source of the candidate as what is entered. For more information on this, please see the Lever help article.

Sourcing for Open Positions

For difficult or hard-to-fill positions, the employment team will use available tools to source for additional candidates. Please communicate with the employment 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 dedicate Fridays as "sourcing day". They use various tools to identify talent by pro-actively 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 skill sets.

Closing a vacancy

To close a vacancy:

  1. The employment team 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 adding tags to candidates who were interesting but were passed over in this hiring process, such as revisit. Adding tags makes it easier to find them in Lever later on if you are recruiting for the same or a similar position. You can also snooze a candidate if you anticipate reopening the role at a later date.
  2. Ask a Lever admin (People Ops) to close the position in Lever.

If the position was posted on any job site (i.e. Stack Overflow, PowerToFly) the employment team will email the partner or remove the position from that site.