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

# Actieve vacatures

> Een speciale pagina voor het beheren van actieve vacaturevermeldingen met filtering, sortering en deactivering.

## Wat zijn actieve vacatures?

Een "actieve" vacature in Recruitier is een vermelding die nog live staat op de carrierepagina
van het bedrijf en vermoedelijk nog sollicitaties accepteert. Actieve vacatures zijn niet
gedetecteerd als verlopen, verwijderd of ingevuld. Door jouw outreach te richten op actieve
vacatures vergroot je de kans om bedrijven te bereiken die nog aan het werven zijn.

Recruitier houdt de status bij van elke vacaturevermelding in zijn database. Wanneer een vacature
voor het eerst wordt gescraped, wordt deze als actief beschouwd (`is_active = true`,
`is_expired = false`). In de loop van de tijd monitort het platform of de vermelding beschikbaar
blijft, en wanneer deze verdwijnt, markeert het de vacature als verlopen.

<Tip>
  De pagina Actieve vacatures is jouw primaire werkruimte bij het voorbereiden van outreach. Het
  toont alleen actieve vermeldingen over al jouw searches heen, zodat elke vacature die je ziet
  nog open en bruikbaar is.
</Tip>

## De pagina Actieve vacatures

De pagina Actieve vacatures is een **zelfstandige pagina** die toegankelijk is vanuit de
hoofdnavigatie. In tegenstelling tot de totale vacatureweergave (die alle vacatures toont
inclusief verlopen), toont deze pagina uitsluitend actieve vermeldingen van al jouw searches in
een speciale tabel.

### Tabelindeling

De tabel Actieve vacatures toont een rij per actieve vacature met de volgende kolommen:

| Kolom                       | Details                                                      |
| --------------------------- | ------------------------------------------------------------ |
| **Titel**                   | De functietitel, klikbaar om de detailpagina te openen       |
| **Bedrijf**                 | Naam van het aanwervende bedrijf                             |
| **Locatie**                 | Stad/regio waar de vacature gebaseerd is                     |
| **Datum**                   | Wanneer de vacature werd geplaatst of voor het eerst ontdekt |
| **Ervaring**                | Ervaringsniveau (junior, medior, senior, lead)               |
| **Flexibiliteit**           | Remote, hybride of op locatie                                |
| **Arbeidsovereenkomsttype** | Fulltime, parttime, contract, tijdelijk, stage               |
| **Medewerkers**             | Aantal medewerkers van het bedrijf                           |
| **Contacten**               | Aantal ontdekte contacten voor deze vacature                 |
| **Search**                  | Welke search deze vacature heeft opgeleverd                  |
| **Tags**                    | Kleurgecodeerde tagchips toegepast op de vacature            |

### Zoekbalk

Bovenaan de pagina laat een **zoekbalk** je vacatures filteren door zoekwoorden in te typen. De
zoekopdracht matcht op functietitels, bedrijfsnamen en locaties, waardoor de tabel in realtime
wordt verfijnd terwijl je typt.

### Filteren

De pagina Actieve vacatures biedt verschillende filtermechanismen in de werkbalk:

* **Tagfilter** -- Selecteer een of meer tags om alleen vacatures met die tags te tonen
* **Ervaringsniveau** -- Filter op junior, medior, senior of lead
* **Arbeidsovereenkomsttype** -- Filter op fulltime, parttime, contract, tijdelijk of stage
* **Flexibiliteit** -- Filter op remote, hybride of op locatie

Deze filters verschijnen als dropdownselectoren in de werkbalk. Alleen filters met beschikbare
opties in jouw huidige gegevensset worden getoond. Met een **Reset**-knop worden alle actieve
filters gewist wanneer je terug wilt keren naar de volledige weergave.

De paginakop toont het totale aantal actieve vacatures en, wanneer filters zijn toegepast, het
aantal vacatures dat overeenkomt met jouw huidige filters.

### Sorteren

Een sorteer-dropdown laat je de tabel sorteren op elke sorteerbare kolom. Klik op de
richtingsknop (pijl omhoog/omlaag) om te schakelen tussen oplopende en aflopende volgorde.
Sorteerbare kolommen zijn onder andere functietitel, bedrijfsnaam, locatie, plaatsingsdatum en
aantal medewerkers.

### Vacatures deactiveren

Elke vacaturerij heeft een **Deactiveer**-actie. Het deactiveren van een vacature markeert deze
als niet langer actief in jouw verzameling, waardoor deze van de pagina Actieve vacatures wordt
verwijderd. Dit verschilt van het verwijderen van een vacature -- de vacature blijft in jouw
algehele verzameling en zoekresultaten maar wordt niet langer beschouwd als een actieve kans.

<Steps>
  <Step title="Klik op Deactiveer">
    Klik op de deactiveeractie in de vacaturerij die je wilt deactiveren.
  </Step>

  <Step title="Bevestig">
    Er verschijnt een bevestigingsdialoog die de actie uitlegt. Klik op **Deactiveer** om te
    bevestigen of op **Annuleer** om de vacature actief te houden.
  </Step>
</Steps>

<Warning>
  Het deactiveren van een vacature verwijdert deze van de pagina Actieve vacatures. Gebruik dit
  wanneer je weet dat een functie is ingevuld of niet langer relevant is, ook als de
  geautomatiseerde controles van Recruitier de wijziging nog niet hebben gedetecteerd.
</Warning>

## Hoe de actieve status wordt bepaald

Recruitier gebruikt een multi-signaalanpak om te bepalen of een vacature actief is:

### Levendheidscontroles

De scrapers van Recruitier bezoeken periodiek de URL's van geindexeerde vacaturevermeldingen
opnieuw om te verifioren dat ze nog live zijn. Als een vermelding een 404-fout teruggeeft,
doorverwijst naar een "functie ingevuld"-pagina of niet meer aanwezig is op de carrierepagina
van het bedrijf, wordt deze gemarkeerd voor vervalsing.

De levendheidscontrole gebruikt het veld `url` opgeslagen op de GescrapteVacature-entiteit (dat
uniek is per vermelding) om de voortdurende beschikbaarheid van de vermelding te verifioren.

### Vervalsingsdetectie

Wanneer een vacature niet slaagt voor een levendheidscontrole, markeert Recruitier deze met:

* **`is_expired` = true** -- De vermelding is niet meer beschikbaar
* **`is_active` = false** -- De vacature wordt niet langer als actief beschouwd
* **`expired_at`** -- Een tijdstempel dat registreert wanneer de vervalsing werd gedetecteerd

Eenmaal als verlopen gemarkeerd, behoudt de vacature al haar gegevens (beschrijving, bedrijf,
contacten) maar wordt niet langer als actief beschouwd in searches en filters.

### Tijdstempel van laatste waarneming

Elke gescrapte vacature heeft een **last\_seen**-tijdstempel dat wordt bijgewerkt elke keer dat
de scraper bevestigt dat de vermelding nog live is. Een vacature met een recente last\_seen-datum
is vrijwel zeker nog steeds actief. Een vacature die al weken niet is waargenomen, is waarschijnlijk
ingevuld.

<Note>
  Er kan een vertraging zijn tussen het moment dat een bedrijf een vermelding verwijdert en
  het moment dat Recruitier de verwijdering detecteert. Levendheidscontroles worden periodiek
  uitgevoerd, niet in realtime. Een als actief gemarkeerde vacature kan uren geleden zijn
  ingevuld maar nog niet zijn gecontroleerd. Overweeg voor tijdgevoelige outreach de originele
  URL van de vermelding te openen om beschikbaarheid te verifioren.
</Note>

## Het actieve filter elders gebruiken

Naast de speciale pagina Actieve vacatures is een filter "Alleen actief" beschikbaar in andere
weergaven in Recruitier.

### In zoekresultaten

Gebruik bij het bekijken van de resultaten van een search de schakelaar **Alleen actief** in de
filterbalk om verlopen vacatures te verbergen. Dit beperkt jouw weergave direct tot alleen die
vermeldingen waarvan Recruitier gelooft dat ze nog sollicitaties accepteren.

Dit filter is met name waardevol voor:

* **Outreachvoorbereiding** -- Neem alleen contact op met bedrijven over vacatures die nog open zijn
* **Kandidaatpresentaties** -- Toon jouw kandidaat alleen vacatures waar ze daadwerkelijk op kunnen
  solliciteren
* **Pipelinefocus** -- Concentreer jouw tijd op bruikbare kansen
* **Batchbewerkingen** -- Selecteer alle zichtbare (actieve) vacatures voor batchtag

### In de totale vacatureweergave

Het actieve filter is ook beschikbaar op de pagina Alle vacatures, waar het werkt over jouw
gehele verzameling ongeacht welke search de resultaten heeft geproduceerd. Gecombineerd met
tagfilters creert dit een krachtige "outreach-klare" weergave.

<Tip>
  Maak een standaard outreachworkflow: filter op "Alleen actief" + jouw tag "Shortlist" +
  ervaringsniveau "Senior". Dit geeft je een gefocuste lijst van jouw beste, nog-open kansen
  voor seniorkandidaten -- klaar voor directe outreach.
</Tip>

## Waarom actieve vacatures belangrijk zijn

Focus op actieve vacatures heeft een directe invloed op jouw plaatssuccespercentage:

### Hogere responspercentages

Bedrijven die actief aan het werven zijn, zullen veel eerder reageren op recruiter-outreach.
Wanneer je contact opneemt met een bedrijf over een actieve vacature, is jouw bericht tijdig en
relevant -- de hiring manager denkt op dit moment aan deze functie.

### Betere kandidaatervaring

Jouw kandidaat presenteren met vacatures die nog open zijn, behoudt vertrouwen. Niets ondermijnt
een recruiter-kandidaatrelatie sneller dan het aanbevelen van functies die al zijn ingevuld.

### Efficiont tijdbeheer

Recruitment is een tijdgevoelig beroep. Elke minuut besteed aan een verlopen vermelding is een
minuut niet besteed aan een live kans. Het actieve filter elimineert dit verspilde tijd.

### Concurrentievoordeel

Verse vermeldingen -- met name die geplaatst in de afgelopen dagen -- vertegenwoordigen kansen
waarbij het bedrijf nog niet is overspoeld met sollicitaties. Een van de eerste recruiters zijn
die contact opnemen over een pas geplaatste functie geeft je een aanzienlijke voorsprong.

<Info>
  Onderzoeken in de Nederlandse recruitmentsmarkt tonen consistent aan dat responspercentages het
  hoogst zijn in de eerste 48-72 uur na het plaatsen van een vacature. De monitoringfunctie
  gecombineerd met het actieve filter helpt je gebruik te maken van dit tijdvenster.
</Info>

## Indicatoren voor verlopen vacatures

Zelfs wanneer je het actieve filter niet gebruikt, zijn verlopen vacatures duidelijk gemarkeerd:

| Indicator                   | Locatie                | Beschrijving                                                                                                     |
| --------------------------- | ---------------------- | ---------------------------------------------------------------------------------------------------------------- |
| **Badge Verlopen**          | Resultatentatabel      | Een visuele badge op de vacaturerij in zoekresultaten en totale vacatureweergave                                 |
| **Tijdstempel verlopen op** | Vacaturedetailpagina   | De exacte datum en tijd waarop de vermelding als verlopen werd gedetecteerd (`expired_at`)                       |
| **Markering `is_expired`**  | Onderliggende gegevens | Een booleaans veld op GescrapteVacature dat frontend-componenten gebruiken om vervalsing-indicatoren te renderen |
| **Markering `is_active`**   | Onderliggende gegevens | Een booleaans veld dat het inverse is van is\_expired, gebruikt voor filtering                                   |

De badge Verlopen maakt het gemakkelijk om verouderde vermeldingen te identificeren, zelfs in een
ongefilterde weergave. Je kunt jouw resultaten scannen en verlopen vermeldingen mentaal overslaan,
of het actieve filter gebruiken om ze volledig te verwijderen.

## Recentheid als kwaliteitssignaal

Naast het actief/verlopen-onderscheid gebruikt Recruitier vacaturerecentheid als kwaliteitssignaal
in de zoekrangschikking:

### Recentiebonus bij scoring

Recent geplaatste vacatures ontvangen een **5% scoringsbonus** (RECENCY\_BONUS\_MAX) in
zoekresultaten. Deze bonus neemt lineair af over 180 dagen:

| Dagen geleden geplaatst | Recentiebonus |
| ----------------------- | ------------- |
| 0 (vandaag)             | +5,0%         |
| 30 dagen                | +4,2%         |
| 60 dagen                | +3,3%         |
| 90 dagen                | +2,5%         |
| 120 dagen               | +1,7%         |
| 150 dagen               | +0,8%         |
| 180+ dagen              | +0,0%         |

De bonus is additief -- het kan geen sterke matchscore vervangen, maar geeft recent geplaatste
vacatures een licht voordeel boven oudere vermeldingen met vergelijkbare relevantie. Dit betekent
dat jouw resultaten van nature de voorkeur geven aan verse kansen zonder matchkwaliteit op te offeren.

### Filter 'Geplaatst binnen'

Tijdens het aanmaken van searches (Stap 4 van de wizard) kun je resultaten beperken tot vacatures
geplaatst binnen specifieke tijdvensters:

* Afgelopen 24 uur
* Afgelopen week
* Afgelopen maand
* Afgelopen 6 maanden
* Ooit (geen beperking)

Dit filter wordt server-side toegepast en verkleint de resultatenset voor scoring.

### Sorteren op datum

Sorteer jouw resultaten op plaatsingsdatum om de meest recente vermeldingen eerst te zien,
ongeacht de matchscore. Dit is nuttig na jouw eerste beoordeling van de hoogst scorende resultaten
om recent geplaatste vacatures te ontdekken die niet het hoogst scoorden maar verse kansen
vertegenwoordigen.

<Note>
  De plaatsingsdatum is afkomstig van de meest betrouwbare beschikbare bron. Recruitier controleert
  meerdere bronnen in volgorde van betrouwbaarheid: JSON-LD gestructureerde data, LLM-extractie,
  HTML-metagegevens, zichtbare tekst, URL-patronen, sitemaps en tot slot de datum waarop Recruitier
  de vermelding voor het eerst ontdekte. De bron wordt bijgehouden zodat altijd de meest nauwkeurige
  datum wordt gebruikt.
</Note>

## Monitoren op nieuwe actieve vacatures

Wanneer je monitoring inschakelt op een opgeslagen search, controleert Recruitier continu op
nieuwe vacaturevermeldingen die voldoen aan jouw criteria. Wanneer nieuwe actieve vacatures worden
gevonden, worden ze:

1. Toegevoegd aan jouw zoekresultaten met een **"Nieuw"**-badge (`is_new = true`)
2. Meegeteld in de **teller voor nieuwe vacatures** (`new_jobs_count`) op de searchkaart
3. Afgeleverd als een **melding** via het realtime SSE-meldingssysteem van het platform

Dit monitoringsysteem zorgt ervoor dat je altijd op de hoogte bent van verse kansen zonder
handmatig searches opnieuw uit te voeren. Zie [Opgeslagen searches](/jobs/search/saved-searches)
voor meer informatie over searchmonitoring.

<Tip>
  Houd voor maximale responsiviteit de Recruitier-interface open in een browsertabblad.
  SSE-meldingen werken de teller voor nieuwe vacatures in realtime bij zonder dat een
  paginavernieuwing vereist is. Wanneer je een melding ziet, open de search direct om de nieuwe
  matches te beoordelen terwijl de vermeldingen nog vers zijn.
</Tip>

## Beste praktijken voor het werken met actieve vacatures

* **Schakel het actieve filter in** als standaard bij het beoordelen van resultaten voor outreach
* **Controleer plaatsingsdata** -- zelfs actieve vacatures die al enkele maanden oud zijn, kunnen
  al veel sollicitaties hebben ontvangen
* **Handel snel bij nieuwe matches** -- wanneer monitoring je waarschuwt over een nieuwe vacature,
  beoordeel deze dan snel om concurrerende recruiters voor te blijven
* **Beoordeel jouw verzameling periodiek** -- vacatures die actief waren toen je ze opsloeg, kunnen
  sindsdien zijn verlopen. Gebruik het actieve filter om jouw weergave bij te werken.
* **Gebruik het filter 'geplaatst binnen'** bij het aanmaken van searches om je vanaf het begin
  te richten op de meest verse vermeldingen
* **Gooi verlopen vacatures niet volledig weg** -- ze kunnen nog steeds waardevolle informatie
  bieden over de wervingspatronen, teamstructuur en technologiestack van een bedrijf. Bewaar ze
  als referentie maar deprioriteer ze voor outreach.
* **Verifieer voor outreach** -- Open voor hoog-prioriteit kansen de originele URL van de vermelding
  om te bevestigen dat deze nog live is voordat je tijd investeert in een gepersonaliseerd
  outreachbericht

## Geavanceerd

### Actieve status in het datamodel

De actieve/verlopen-status wordt bijgehouden op de **GescrapteVacature-entiteit** (niet de
Vacature-entiteit), wat betekent dat de status wordt gedeeld door alle gebruikers die een Vacature
hebben gekoppeld aan die GescrapteVacature:

| Veld         | Entiteit          | Type           | Beschrijving                                                           |
| ------------ | ----------------- | -------------- | ---------------------------------------------------------------------- |
| `is_active`  | GescrapteVacature | Boolean        | True wanneer de vermelding als momenteel beschikbaar wordt beschouwd   |
| `is_expired` | GescrapteVacature | Boolean        | True wanneer de vermelding is gedetecteerd als niet langer beschikbaar |
| `expired_at` | GescrapteVacature | Tijdstempel    | Wanneer de vervalsing werd gedetecteerd                                |
| `url`        | GescrapteVacature | String (uniek) | De URL van de vermelding die wordt gebruikt voor levendheidscontroles  |

De Vacature-entiteit heeft toegang tot deze velden via `@property`-proxies, dus `job.is_active`
leest feitelijk `job.scraped_job.is_active`. Dit proxypatroon zorgt ervoor dat wanneer de status
van een GescrapteVacature verandert, alle gekoppelde Vacaturerecords automatisch de update
weerspiegelen zonder enige synchronisatie.

### Hoe levendheidscontrole werkt

De levendheidsmonitoingspipeline werkt als volgt:

1. **URL-wachtrij** -- Actieve GescrapteVacature-URL's worden in de wachtrij geplaatst voor
   periodiek opnieuw bezoeken
2. **HTTP-controle** -- De scraper bezoekt elke URL en controleert de HTTP-respons:
   * 200 OK met vacature-inhoud nog aanwezig: vacature blijft actief
   * 404 Niet gevonden: gemarkeerd voor vervalsing
   * 301/302 doorverwijzing naar een "functie ingevuld"- of carrierepagina: gemarkeerd voor
     vervalsing
   * Vacature-inhoud verwijderd van de pagina (URL bestaat maar vermelding is weg): gemarkeerd
     voor vervalsing
3. **Vervalsingsmarkering** -- Gemarkeerde vacatures hebben `is_active` ingesteld op false,
   `is_expired` ingesteld op true en `expired_at` ingesteld op het huidige tijdstempel
4. **Overdracht naar searches** -- De bijgewerkte status is direct zichtbaar in alle
   zoekresultaten en vacaturedetailpagina's vanwege de proxypropertyarchitectuur

### De formule voor recentiebonus

De recentiebonus wordt berekend als:

```
days_old = (current_date - list_date).days
if days_old >= 180:
    bonus = 0
else:
    bonus = RECENCY_BONUS_MAX * (1 - days_old / 180)
```

Waarbij `RECENCY_BONUS_MAX = 5%` (0,05 in decimaal). Dit produceert een lineaire afname van 5%
naar 0% over 180 dagen.

De bonus is **additief** en wordt toegepast na de basisscoreberekening. Het kan de score van een
vacature alleen verhogen, nooit verlagen. Dit zorgt ervoor dat een zes maanden oude uitstekende
match nog steeds hoger scoort dan een gloednieuwe slechte match.

### Actieve status en searchfilters

Het veld `is_active` is beschikbaar als een **Qdrant-natief filter**, wat betekent dat het direct
wordt toegepast in de vectordatabasequery bij het zoeken. Dit is het snelste filterpad -- het
verkleint de kandidaatset voordat enige scoring plaatsvindt. Wanneer je een search aanmaakt met
het filter "Alleen actief" ingeschakeld, worden verlopen vacatures uitgesloten op het niveau van
vectorzoekopdrachten, niet als een nabewerkingsstap.

Daarentegen werkt de schakelaar "Alleen actief" op de resultatenpagina als een client-side of
nabewerkingsfilter op de al geretourneerde resultaten.

### Tips voor gevorderde gebruikers

<Accordion title="Verlopen vacatures gebruiken voor marktinformatie">
  Negeer verlopen vacatures niet volledig. Ze bieden waardevolle informatie:

  * **Wervingspatronen**: Een bedrijf dat de afgelopen 6 maanden 3 Python Developer-functies heeft
    geplaatst (nu verlopen) bouwt duidelijk hun Python-team uit. Ze staan mogelijk open voor het
    horen over kandidaten, zelfs zonder actieve vermelding.
  * **Technologiestack**: Verlopen vermeldingen onthullen welke technologieen het bedrijf gebruikt,
    waardoor je toekomstige outreach kunt afstemmen.
  * **Salarisbenchmarks**: Als verlopen vermeldingen salarisgegevens bevatten, gebruik deze dan
    om verwachtingen te stellen voor huidige onderhandelingen met dat bedrijf.
  * **Contacthergebruik**: Contacten ontdekt bij verlopen vermeldingen zijn nog geldig. De hiring
    manager die de verlopen functie heeft geplaatst, is waarschijnlijk nog steeds de juiste persoon
    om contact mee op te nemen voor toekomstige functies.
</Accordion>

<Accordion title="Jouw outreach timen voor maximale impact">
  Het venster van 48-72 uur na het plaatsen van een vacature is jouw prime outreachvenster. Zo
  maximaliseer je het:

  1. Schakel monitoring in op jouw belangrijkste searches
  2. Houd Recruitier open in een browsertabblad voor realtime SSE-meldingen
  3. Wanneer een melding van een nieuwe match binnenkomt, beoordeel deze direct
  4. Als het een sterke match is, initieer outreach dezelfde dag
  5. Vermeld dat je hebt opgemerkt dat de functie onlangs is geplaatst -- dit toont responsiviteit
</Accordion>

<Accordion title="Onderscheid maken tussen echt actief en technisch actief">
  Een vacature kan technisch actief zijn (nog op de carrierepagina) maar in de praktijk al
  ingevuld. Signalen om op te letten:

  * Meer dan 3 maanden geleden geplaatst zonder updates
  * Het bedrijf heeft onlangs een vergelijkbare maar niet identieke functie geplaatst (kan
    erop wijzen dat de originele is ingevuld en een nieuwe positie is geopend)
  * De URL van de vermelding is live maar de inhoud is veranderd om aan te geven dat het
    proces in de eindfase is
    Neem voor deze grensgevallen contact op, maar beheer verwachtingen -- vermeld dat je de
    functie hebt opgemerkt en vraag of deze nog open is.
</Accordion>

### Bedrijfsregels

* **Actief is de standaard**: Alle nieuw gescrapte vacatures beginnen als actief (`is_active = true`,
  `is_expired = false`)
* **Vervalsing is permanent**: Eenmaal als verlopen gemarkeerd keert een vacature niet terug naar
  actief, zelfs niet als de URL opnieuw toegankelijk wordt. Dit voorkomt valse reactivaties door
  tijdelijke websiteproblemen.
* **Gedeelde status**: Actief/verlopen-status is op de GescrapteVacature, niet op de Vacature. Als
  een vermelding verloopt, verschijnt deze als verlopen voor alle gebruikers die het in hun
  verzameling hebben.
* **Handmatige deactivering**: Gebruikers kunnen een vacature deactiveren vanuit de pagina Actieve
  vacatures, waardoor het uit de actieve weergave wordt verwijderd. Dit is nuttig wanneer je weet
  dat een functie is ingevuld voordat de geautomatiseerde controles de wijziging detecteren.

## Gerelateerd

* [Opgeslagen searches](/jobs/search/saved-searches) -- Searches monitoren op nieuwe actieve vacatures
* [Zoekresultaten](/jobs/search/search-results) -- Het actieve filter in resultaten gebruiken
* [Vacaturedetails](/jobs/job-details) -- Verlopen statusindicatoren op de detailpagina
* [Vacatures opslaan en beheren](/jobs/saving-and-managing) -- Actieve en verlopen vacatures beheren
  in jouw verzameling
