Skip to main content
The careers site is your public-facing job board — a clean, branded page where anyone on the internet can browse your open roles and apply, without logging in. It’s the bridge between your internal recruitment and the outside world: you publish a job opening to the careers site, a candidate finds it and applies, and their application lands straight in your applicant pipeline as a new applicant tagged with the source “Careers Page”. This page covers how openings appear publicly, how a candidate applies, and how those applications flow back into recruitment. You’ll find this at (public): /careers/:slug (your job board), /careers/:slug/:openingSlug (a single role)
📷 Screenshot: Public careers job board with the hero, filters, and job cards — to be added.

How it fits together

There are two halves to the careers site:
  1. The careers site itself — your branded board, identified by a slug (e.g. acme-corp/careers/acme-corp), with a display name and an optional logo. It can be scoped to one business so only that business’s openings show.
  2. The published openings — only job openings that are Open and published appear on the board. Publishing is done from the opening (see below); everything else stays internal.
The board and each role’s page are public (no sign-in), and the apply endpoint is rate-limited to keep out abuse.

Publishing an opening to the careers site

An opening only reaches the public board once it’s published. On the job opening detail page:
  • Publish pushes a non-closed opening live to the careers page (needs hr-recruitment:approve). A Published badge then shows.
  • Unpublish pulls it back off the public board.
An opening also drops off the board automatically once it is Closed or past its closes-on date. What a published opening shows publicly is controlled per opening: the job title, location, employment type, description, and — only if you chose to publish them — the salary range and the applications-received count. If you didn’t tick “publish salary range”, the band stays hidden from candidates.

What a candidate sees

The job board (/careers/:slug)

A branded hero (your display name and logo), a search box, and filters for employment type and location (filters only appear when there’s more than one value to choose from). Each role shows as a card with its title, employment-type badge, location, salary (if published), when it was posted, and when it closes. The board says “No open positions right now” when nothing is live.

A single role (/careers/:slug/:openingSlug)

The full posting: title, posted/closes dates, metadata pills (location, employment type, salary range, closing date, and applications received if published), the role description, and an Apply Now button.

Applying

The Apply form asks for: On submit, the candidate sees an “Application submitted” confirmation. Behind the scenes the application:
  • Creates a new job applicant against that opening, with source “Careers Page” and source name set to your site’s display name (so the dashboard can credit the careers site as a channel).
  • Bumps the opening’s applications-received count.
Guard rails on the public apply:
  • Duplicate guard — the same email can’t apply to the same opening twice (“You have already applied for this position.”).
  • Closed / unpublished — applying to an opening that isn’t published and Open is refused.
  • An opening can carry a custom application form with extra required fields; if it does, the public apply enforces those required fields server-side.

Where applications go

Every public application appears in your applicants pipeline at /hr/recruitment/applicants as a new Open (Applied) applicant against the relevant opening, sourced “Careers Page”. From there it’s a normal candidate — move them through the pipeline, schedule interviews, and make an offer.
⚠️ Current state — no in-app careers-site management screen. Creating a careers site (its slug, display name, logo, and which business it’s scoped to) is supported by the backend API, but there is no admin page in the app to create or manage careers sites today — the create/list/edit capability exists in the API only and isn’t wired to any screen. In practice a careers site is provisioned for you (by setup/support), after which publishing openings and receiving public applications work as described above. The public board and apply flow themselves are fully live. (Flagged for the team.)

Permissions

The public board and apply flow need no permission and no login. Managing careers sites (API-only today) is a configuration action: