Stage: Hiring

For HR administrators

Hiring: candidates move through the pipeline of an opening (screening, assessment, interview, offer) until one is hired.

Resources

ResourceAPIPages
Applicationsread, create (add a candidate to an opening), stage move, reject, hireApplications
Interviewsread, create (offer slots), update (re-propose or cancel)Interviews
Offersread, offer-letter downloadOffers

Typical flow

  1. Add a candidate to an opening: POST /api/v1/applications with { "openingId": "…", "candidate": { "externalSystem": "jobboard", "externalId": "C-881" } }.
  2. Follow screening and assessment results with application.updated and application.stage_changed.
  3. Offer interview slots: POST /api/v1/interviews; the candidate picks one (interview.updated), and the panel scores it (interview.completed).
  4. Move to OFFERED (recruitment.offer.issue), then read the offer letter from /api/v1/offers/{id}/file (needs recruitment.candidate.contact).
  5. Hire: POST /api/v1/applications/{id}/hire. The candidate becomes an employee: you receive application.hired and employee.created, and the candidate's external links move to the employee.

Rules worth knowing

  • Adding a candidate follows the opening's hiring pathway, as on the careers page (409 conflict with opening_internal_only or not_yet_external); a candidate applies once per opening (already_applied).
  • The opening must be OPEN (opening_not_open).
  • Hiring runs the same handoff as the Hire button in the app, including the seat-capacity check (position_full).
  • A hired application is final: moving, rejecting or hiring it again returns 409 conflict (already_hired). A rejected application can't be hired (already_rejected); move it back to an active stage first.
  • Cancelling an already cancelled interview changes nothing; a completed one returns 409 conflict (interview_closed).