> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hr-easy.nlead.ch/llms.txt
> Use this file to discover all available pages before exploring further.

# Stellenmeldepflicht (AIG Art. 21a)

> The duty to report vacancies, the five-working-day embargo, and the feedback obligation.

Switzerland requires employers to report vacancies in occupations with above-average
unemployment to the public employment service **before** advertising them anywhere
else. The duty comes from Art. 21a of the Foreign Nationals and Integration Act (AIG)
and is enforced against the employer, not the platform.

## Which vacancies are covered

The list of occupations subject to the duty is published by SECO and revised
periodically, based on the unemployment rate per occupation group.

The platform holds occupation reference data with the AVAM code, the ISCO code, the
unemployment rate and a regulated flag. The occupation code selected on a
[position](/guides/recruitment/positions) is what decides whether the duty applies —
which is why the code is a required field rather than a nicety.

## What the duty requires

<Steps>
  <Step title="Report before advertising">
    The vacancy is reported to the SECO Job-Room. The platform records the Job-Room ID
    and the management URL returned by the API.
  </Step>

  <Step title="Wait out the embargo">
    For **five working days** from publication in the Job-Room, the vacancy may not be
    advertised publicly. During this window it is visible only to registered jobseekers
    and to the RAV.

    The platform computes the earliest permitted external publication date as five
    *working* days ahead — weekends and Swiss national public holidays excluded, with
    Easter-relative holidays computed rather than maintained by hand.
  </Step>

  <Step title="Consider the dossiers the RAV sends">
    The RAV forwards suitable candidates. You must consider them, invite the suitable
    ones to an interview or an aptitude assessment, and inform the RAV of the outcome.
  </Step>

  <Step title="Report back">
    Whether a candidate was hired, and whether the vacancy was filled. The platform
    records how many were invited, how many were hired, and a free-text note.
  </Step>
</Steps>

## The lifecycle in the platform

| Status               | Meaning                                                                                      |
| -------------------- | -------------------------------------------------------------------------------------------- |
| `NOT_REQUIRED`       | The occupation is not covered.                                                               |
| `PENDING_JOBROOM`    | Reported; the embargo is running. Public advertising is blocked.                             |
| `RAV_REVIEW`         | The embargo has elapsed. Public advertising is permitted; the RAV may still send candidates. |
| `EMPLOYER_RESPONDED` | Feedback on invited and hired candidates has been recorded.                                  |
| `CLEARED`            | The obligation is discharged for this vacancy.                                               |

A scheduled job polls SECO for open reports and sweeps expired embargoes from
`PENDING_JOBROOM` into `RAV_REVIEW`, so the state reflects reality without anyone
watching a calendar.

## Per legal employer

The reporting duty is a **per-employer** obligation. On multi-entity installations the
Rechtsträger under which a report was submitted is recorded on the Stellenmeldung, so
the obligation is attributable to the right legal employer.

## Credential handling

The Job-Room access token is stored **separately** from the management URL and is never
embedded in a persisted link. A URL containing a token leaks it to every proxy, CDN and
log along the way.

## Where credentials come from

SECO issues API credentials on request. The platform supports a staging endpoint for
testing and a production endpoint for live reporting; where credentials are not
configured, the module degrades to manual tracking rather than failing.

## What is not automated

<AccordionGroup>
  <Accordion title="Deciding whether the duty applies">
    The platform flags it from the occupation code. Confirming that the code is right for the actual
    role is a human judgement.
  </Accordion>

  <Accordion title="Assessing RAV candidates">
    Suitability is a hiring decision, not a computation.
  </Accordion>

  <Accordion title="Exemptions">
    Internal appointments, short assignments, and family members can be exempt. Determine exemptions
    deliberately and record the reasoning.
  </Accordion>
</AccordionGroup>

<Warning>
  Publishing a covered vacancy publicly before the embargo has elapsed breaches Art. 21a and carries
  administrative penalties. The platform blocks external publication for the duration rather than
  merely warning about it.
</Warning>
