1. The careers page
Every installation serves a public careers page from its own host. It renders published positions in the visitor’s locale, respects the internal-only and restricted visibility settings, and takes applications directly into the pipeline. The page inherits the installation’s branding — logo, colours, and typography are configured under Settings → Branding.2. The SECO Job-Room (Stellenmeldung)
Switzerland requires vacancies in occupations with high unemployment to be reported to the public employment service before they are advertised anywhere else. Swiss HR Easy implements this as a tracked lifecycle rather than a checkbox.The lifecycle
On submission the platform records the Job-Room ID, the management URL, and the
earliest permitted external publication date, computed as five working days
ahead — Swiss national public holidays and weekends excluded, with Easter-relative
holidays calculated rather than hard-coded.
The Job-Room access token is stored separately from the management URL and is never embedded in a
persisted link. A URL with a token in it leaks the token to every proxy and log along the way.
Staying in sync
A scheduled job polls SECO for each open Stellenmeldung and sweeps the ones whose embargo has expired fromPENDING_JOBROOM into RAV_REVIEW. Both sweeps are batched
with an explicit cap so a catch-up run cannot turn into an unbounded query; anything
over the cap is picked up on the next run. The endpoint is protected by a shared
CRON_SECRET.
If SECO credentials are not configured, the module degrades cleanly: reporting is
tracked manually and the poll reports zero polled rather than failing.
RAV feedback
When the RAV sends candidates, you record how many you invited and how many you hired, with an optional note. That closes the loop and moves the Meldung toEMPLOYER_RESPONDED.
The legal detail
Which occupations are covered, what the embargo actually forbids, and what you must keep on file.
3. Multi-channel distribution
Positions can be pushed to commercial job boards through an aggregator, so one publish action reaches LinkedIn, Indeed, jobs.ch and others without separate logins. A position is mapped to a channel payload once and re-used per channel.Turning distribution off
SetFEATURE_JOB_DISTRIBUTION=false to hide the distribution surfaces on an
installation that only advertises through its own careers page.