How can we help you?

Closing Job Approval Loopholes

Over the past couples months, we've identified and begun fixing some small loopholes in Job Approval logic that could lead to hiring more candidates than were originally approved. 

  1. When hiring a candidate into the last opening on a job, the recruiter could choose to keep the job open. This would add one opening on the job that never got approved and could not retroactively be run through approval.

  2. It’s currently possible to hire and unhire candidates on Closed and Draft jobs. While fairly uncommon, these situations end up creating and removing openings that never got approved.

  3. When reopening a closed job, the system automatically creates one opening that never got approved and cannot be run through approvals.

We wanted to make sure we closed these loopholes while staying consistent with our existing behavior around re-approvals. As a refresher, here’s how job approvals work today:

One-Stage Job Approval: When the job is first opened, it must be approved by one or more users. When the final user approves, it is automatically opened and there are no other limitations on what can be done to it. Candidates can be hired immediately, and any changes to Department, Openings, Custom Fields, etc. will never trigger reapproval.

Two-Stage Job Approval: When the job is first opened, it must be approved by one or more users. When the final user approves, it is automatically opened, but it’s not fully approved just yet. If a user tries to generate an offer for a candidate, they will see a warning message that the second-stage approvals are still pending.


Additionally, any major changes to the job will retrigger the second stage of approvals again. That means updates to Department, Openings, Custom Fields, etc. have to be made directly on the job’s Approvals tab and will trigger a new approval email to the second-stage approvers. Organizations who are serious about using Greenhouse Openings as the system of record should always set up two-stage job approvals for their roles.

How did we fix these loopholes?

  1. When hiring a candidate into the last role on a job, keeping the job open will automatically request second-stage approval again. This will only happen on jobs with two stage approvals, since it’s functionally the same as adding a single opening to the job:


  2. When a Closed or Draft job has two-stage approvals, it won’t be possible to hire or unhire candidates on it at all. The buttons will be inactive and will have a hover state explaining that the job needs to be reopened before the candidates can be hired or unhired:


  3. A new permission policy will be added for “Reopening a job with approval should require reapproval.”

    When it’s enabled, the “Re-open this job” button on a closed job’s dashboard will change to “Open as Draft” instead. Clicking it will put the job in draft mode and completely reset the approvals (both one- and two-stage) and allow the user to request approval for it again.  


    Please Note:
     This permission will be enabled by default for all companies with Approvals. If you would prefer to stick to the existing behavior where re-opened jobs do not require reapproval, you can disable it on the Configure > Permission Policies page.

  4. Every time an approver approves or denies a Job Approval, it will be logged on the Change Log. That way you will have a record of each time a job was approved, even if those approvers change over time.