/hr/recruitment/openings (list), /hr/recruitment/openings/new (create), /hr/recruitment/openings/:id (detail)
📷 Screenshot: Job Openings list with the “New Opening” button — to be added.
Before you start
- Which business am I in? Openings belong to the business selected in the switcher and are only visible within it. Creating an opening requires a business to be selected.
- Each opening gets a reference number automatically (a tenant-wide series, e.g.
HR-JOP-2026-0001).
The opening lifecycle (statuses)
An opening has just two statuses:
The transitions are guarded on the server:
- Close an Open opening → Closed, and stamps the close date. (Closing an opening that’s already closed is refused: “Opening is already closed.”)
- Reopen a Closed opening → Open, clearing the close date.
Closing fills the requisition: If the opening was created from a requisition, closing it automatically marks that requisition Filled and records its time-to-fill. This is how the dashboard’s average time to fill gets its data.
Creating an opening
There are two ways to start an opening:- From a requisition — open an Open & Approved requisition and choose Create Job Opening. This pre-fills the title, positions, department, position, salary minimum, and description. See Job requisitions.
- From scratch — from the openings list choose New Opening (needs
hr-recruitment:write).
📷 Screenshot: New opening form — Position Details, Compensation, Timeline & Source, Job Description — to be added.The form is grouped into cards:
Position details
Compensation
⚠️ Current state: The salary range is not validated to ensure the minimum is less than the maximum — you can enter an inverted range and it will save. Double-check the figures yourself. (Flagged for the team.)
Timeline & source
Job description
A rich-text editor for responsibilities, qualifications, and skills. New openings are created in Open status. To reuse a standard setup, see opening templates.The opening detail page
The detail page has two tabs:- Overview — employment type, source of hire, currency, posted/closed dates, status, and the full job description.
- Applicants — every applicant attached to this opening, with their status, contact details, and applied date. A New Applicant button lets you add a candidate straight onto this opening (it pre-selects this opening). Clicking a row opens the applicant.
⚠️ Current state: An Edit button is wired on the detail page but only appears for openings whose document state is still “draft” — and every opening is created already submitted, so the Edit button effectively never shows, and the link it points to isn’t implemented. To change an opening’s details today, the practical workaround is to close it and create a fresh one (or have it adjusted via the API). (Flagged for the team.)
Publishing to the careers site
Publishing pushes an opening onto your public careers site so external candidates can see it and apply. Choose Publish on an Open opening (needshr-recruitment:approve). When you publish:
- A public slug (URL-friendly link) is generated from the job title.
- The opening becomes visible on the public careers pages and shows a Published badge in the app.
- Publish salary range — whether the pay range is shown on the public posting (off by default).
- Publish applications received — whether the count of applications is shown (on by default).
Permissions
Related
- Recruitment overview & dashboard — where openings sit in the funnel
- Job requisitions — the request a opening can be created from
- Opening templates — reusable starting points for openings
- Job applicants — the candidates who apply
- The public careers site — where published openings appear