CSO JSON RPC API
Om de vacatures op deze website met open data te ontsluiten, is een API ontwikkeld.
Telefoon: +31 70 7000510
E-mailadres: helpdesk@werkenvoornederland.nl
Dit document beschrijft het gebruik van de CSO Vacature-API. Het bestaat uit een algemene beschrijving, use-cases, code-voorbeelden en een volledige reference documentation voor alle functies, objecten en eigenschappen. Het is geschreven voor de ontwikkelaars van software waarin een koppeling gemaakt wordt met het vacature-aanbod van het CSO-platform.
Inhoud
- 1 Het CSO-Platform
- 2 Over de API
- 3 Gebruik van de API
- 4 Reference documentation
-
5 Example documentation
- 5.1 getApiKey
- 5.2 isValidApi
- 5.3 getJob
- 5.4 getJobs
- 5.5 getJobCount
- 5.6 getJobEnumerations
- 5.7 getOrganisations
- 5.8 getOrganisationsWithFilter
- 5.9 getJobCountForEnumeration
- 5.10 saveJob
- 5.11 removeJob
- 5.12 RemoteJobFilter
- 5.13 RemoteJobFieldSelection
- 5.14 RemoteOrganisationFilter
- 5.15 RemoteJobEnumerationCount
1 Het CSO-Platform
Het CSO-platform (Carrièresites Overheid) faciliteert arbeidsmarktcommunicatie voor de Nederlandse overheid en bestaat uit verschillende websites:
- Werken voor Nederland
- Werken bij de Overheid
- Mobiliteitsbank Rijksoverheid
- Het Functiegebouw Rijk
- Rijkstalentencentrum
2 Over de API
De Vacature-API maakt het makkelijk om webapplicaties te ontwikkelen die naadloos aansluiten bij het CSO-platform.
De functionaliteit van de Vacature-API bestaat uit het tellen, ophalen en filteren van het vacature-aanbod, het ophalen van data met betrekking tot het gebruikte vacatureformaat en het opslaan van nieuwe vacatures. De toegangsrechten kunnen verschillen per API-account.
Bij elke aanroep moeten een geldige API key meegestuurd worden. Deze is beschikbaar op basis van een gebruikersnaam en wachtwoord.
3 Gebruik van de API
3.1 Algemeen
De JSON API accepteert HTTP POST requests met valide JSON in de request body. De aan te roepen functie voeg je toe aan het API-pad:
https://[sandbox.]api.cso20.net/v1/JobAPI/getApiKey.json
Hiermee roep je de functie getApiKey() aan. The json-extensie is verplicht.
Een typisch HTTP request ziet er als volgt uit:
POST /v1/JobAPI/getApiKey.json HTTP/1.1
Content-Type: application/json
Host: api.cso20.net
User-Agent: Mozilla/5.0
{"username":"jsonapitest","password":"test"}
Gebruik bij voorkeur application/json
als Content-Type
header voor het request. Echter, voor browser-ondersteuning van IE8 en IE9 wordt text/plain
ook geaccepteerd. De body bevat slechts een JSON string.
De API geeft altijd een Content-Type
header application/json
terug. Als de aanroep succesvol wordt uitgevoerd, krijg je de HTTP statuscode 200 terug. De JSON string die je in de body terug krijgt bevat dan de key "result"
met daarin de relevante data. Wanneer je een andere statuscode terug krijgt bevat de JSON een key "message"
met daarin meer informatie over wat er mis ging. De mogelijke status codes zijn:
Statuscode | Toelichting |
---|---|
200 | Succes |
400 | Ongeldige aanroep. Mogelijke oorzaken: ongeldige data, ongeldige JSON, ontbrekende argumenten |
403 | Toegang geweigerd. Mogelijke oorzaken: ongeldige API key, onbekende account-gegevens, geen toegang tot de API-functie |
404 | Niet gevonden. De vacature met de gegeven code is niet beschikbaar. |
405 | Niet ondersteund. Dit betekent dat de aanroep niet via HTTP POST is uitgevoerd. |
500 | Server error. De fout wordt gerapporteerd aan de beheerder en wordt zo spoedig mogelijk opgelost. |
Het is op dit moment vereist om alle JSON-objecten expliciet te voorzien van een type om correct geïnterpreteerd te worden. Dat betekent dat elk object vergezeld moet worden van een key "__type__"
met daarin de class name van het bedoelde object. Een deel van de API-functies geven vergelijkbare getypeerde objecten terug. Hieronder staan een aantal voorbeelden. Er wordt ook uitgelegd hoe je deze JSON-objecten precies definieert. Het is de bedoeling om dat in toekomstige releases overbodig te maken.
De voorbeelden zijn allemaal geschreven in Javascript. We voeren de aanroepen uit met behulp van jQuery. In principe zijn deze voorbeelden gemakkelijk om te schrijven naar je favoriete progammeertaal.
3.2 JobAPI
URL/locatie: | https://[sandbox.]api.cso20.net/v1/JobAPI/ |
Transport-protocol: | JSON over HTTP(S) |
Functies: | |
Tekenset: | Voor de respons wordt de tekenset UTF-8 gebruikt |
De service kan benaderd worden door HTTP POST requests naar:
http://[sandbox.]api.cso20.net/v1/JobAPI/<method>.json
3.3 Sandbox
Voor het ontwikkelen van applicaties is een sandbox-omgeving beschikbaar gesteld. De gegevens in deze omgeving worden dagelijks opgeschoond en opnieuw gesynchroniseerd met de productieomgeving, verder is deze geheel afgeschermd van het echte CSO-platform. Voor de sandbox-omgeving zijn de volgende URL's beschikbaar:
- https://sandbox.api.cso20.net
- https://www-sandbox.werkenvoornederland.nl
- https://m-sandbox.werkenvoornederland.nl
- https://www-sandbox.werkenbijdeoverheid.nl
- https://www-sandbox.rijkstalentencentrum.nl
3.4 Beveiliging
Niet alle vacature-gegevens op het CSO-platform zijn publiek beschikbaar. Daarom zijn de volgende beveilingsaspecten geïmplementeerd:
- Gebruikersnaam (
username
) en wachtwoord (password
) - Autorisatie op elk request door middel van een meegestuurde API key
- Beveiligde verbinding via Secure Sockets Layer
3.5 Publicatiedatums
De invoer van publicatieperiodes wordt gevalideerd volgens dezelfde regels als die voor handmatige invoer in het vacaturebeheer. Deze regels zijn afhankelijk van een aantal factoren:
- de fases die zijn toegestaan voor de organisatie waarvoor de vacature wordt ingevoerd
- een eventuele verplichte HPK/VWNW-periode
- doorplaatsingen naar jobboards en print-media die zijn gedaan via het CSO-platform
Zie onderstaande diagrammen voor meer details.
4 Reference documentation
In de reference documentation staat een volledige beschrijving van de beschikbare componenten. Je vind er een overzicht van alle functies met hun argumenten. Daarnaast staat er een beschrijving van de gebruikte objecten.
5 Example documentation
5.1 getApiKey
Omschrijving
Een API key moet bij de meeste aanroepen meegestuurd worden.
Voor elk API-account is er op een gegeven moment maximaal één API key beschikbaar. Deze is 20 minuten geldig. Om te controleren of een API key nog geldig is gebruik je de functie isValidAPIKey
. Wanneer de gerbuikte API key niet meer geldig is kan er een nieuwe opgehaald worden met behulp van een aanroep naar de functie getApiKey
. Bij de aanroep stuur je je gebruikersnaam en wachtwoord mee.
Parameters
Functie | getApiKey.json |
Argumenten |
required username type string
required password type string
|
Resultaat |
result type string
|
Voorbeeld in Javascript (met jQuery):
var variables = {
username: "username",
password: "password"
};
var jsonString = JSON.stringify(variables);
$.ajax({
url: 'https://sandbox.api.cso20.net/v1/JobAPI/getApiKey.json',
data: jsonString,
contentType: 'application/json',
type: 'POST',
dataType: 'json'
}).done(function (data) {
console.log(data.result);
});
Voorbeeld in cURL:
curl \
--request POST \
--header "Content-Type:application/json" \
--data '{"username":"werkenvoornederland", "password":"wvnl"}' \
https://sandbox.api.cso20.net/v1/JobAPI/getApiKey.json
JSON-respons:
{"result":"6cc9b104-e5f1-4bf0-8d2f-d979fa53c5b5"}
Fout-afhandeling
Indien er een fout optreedt zal de server reageren in het JSON-formaat met een toepasselijke HTTP statuscode. De JSON string bevat een bericht met (meer) uitleg. Bij het meesturen van verkeerde account-gegevens krijg je bijvoorbeeld de volgende respons:
HTTP Status code: 403 Could not find an API user with the given credentials
JSON: {"message":"Could not find an API user with the given credentials"}
5.2 isValidApiKey
Omschrijving
Controleert of the API key (nog) geldig is.
Parameters
Functie | isValidApiKey.json |
Argumenten |
required apiKey type string
|
Resultaat |
result type boolean
|
Voorbeeld in Javascript (met jQuery):
var variables = {
apiKey: "6cc9b104-e5f1-4bf0-8d2f-d979fa53c5b5"
};
var jsonString = JSON.stringify(variables);
$.ajax({
url: 'https://sandbox.api.cso20.net/v1/JobAPI/isValidApiKey.json',
data: jsonString,
contentType: 'application/json',
type: 'POST',
dataType: 'json'
}).done(function (data) {
console.log(data.result);
});
JSON-respons:
{"result":true}
5.3 getJob
Omschrijving
Geeft een vacature terug op basis van het veld jobCode. De velden die worden gevuld voor de vacature specificeer je in een job field selection.
Op het CSO-platform hebben alle vacatures een unieke code. Dit veld heet jobCode
en wordt ook wel gebruikt als baanplein_ID
op de sites. Een vacature haal je op door een aanroep naar getJob
met een API key en een jobCode. De hoeveelheid detail in de respons kun je beïnvloeden door velden aan en uit te zetten in remoteJobFieldSelection
(zie de beschrijving van RemoteJobFieldSelection).
Parameters
Functie | getJob.json |
Argumenten |
required apiKey type string
required jobCode type string
required remoteJobFieldSelection type RemoteJobFieldSelection
|
Resultaat |
result type RemoteJob
|
Voorbeeld in Javascript (met jQuery) om de minimale hoeveelheid data van een vacature op te halen:
var emptyJobFieldSelection = {
__type__: "RemoteJobFieldselection"
};
var variables = {
apiKey: "6cc9b104-e5f1-4bf0-8d2f-d979fa53c5b5",
jobCode: "01130-041035402768",
remoteJobFieldSelection: emptyJobFieldSelection
};
var jsonString = JSON.stringify(variables);
$.ajax({
url: 'https://sandbox.api.cso20.net/v1/JobAPI/getJob.json',
data: jsonString,
contentType: 'application/json',
type: 'POST',
dataType: 'json'
}).done(function (data) {
console.log(data.result);
});
JSON-respons:
{
"result": {
"__type__": "fly.cso.api.v1.data.job.RemoteJob",
"code": "01130-041035402768",
"externalReferenceCode": "BD130283",
"dateCreated": 1366985316130,
"dateUpdated": 1366989199113,
"locked": false,
"organisation": null,
"content": null,
"features": null,
"publication": null
}
}
5.4 getJobs
Omschrijving
Geeft een lijst met vacatures terug. De zoekopdracht wordt gedefinieerd door een job filter.
Het argument remoteJobFilter
bevat alle criteria waaraan de vacatures moeten voldoen (zie de beschrijving van RemoteJobFilter). Daarnaast is het zoekresultaat afhankelijk van de rechten die horen bij het gebruikte account. Dit wordt bepaald aan de hand van de API key die wordt meegestuurd.
Parameters
Functie | getJobs.json |
Argumenten |
required apiKey type string
required remoteJobFilter type RemoteJobFilter
required remoteJobFieldSelection type RemoteJobFieldSelection
|
Resultaat |
result type RemoteJob[]
|
Voorbeeld in Javascript (met jQuery) om de minimale hoeveelheid data van een lijst met vacatures op te halen; wanneer de velden van de job filter allemaal leeg zijn wordt het volledige beschikbare aanbod getoond:
var emptyJobFilter = {
__type__: "RemoteJobFilter"
};
var emptyJobFieldSelection = {
__type__: "RemoteJobFieldselection"
};
var variables = {
apiKey: "6cc9b104-e5f1-4bf0-8d2f-d979fa53c5b5",
filter: emptyJobFilter,
fieldSelection: emptyJobFieldSelection
};
var jsonString = JSON.stringify(variables);
$.ajax({
url: 'https://sandbox.api.cso20.net/v1/JobAPI/getJobs.json',
data: jsonString,
contentType: 'application/json',
type: 'POST',
dataType: 'json'
}).done(function (data) {
console.log(data.result);
});
JSON-respons:
{
"result": [
{
"__type__": "fly.cso.api.v1.data.job.RemoteJob",
"code": "01130-345798789830",
"externalReferenceCode": "BD130281",
"dateCreated": 1366982034427,
"dateUpdated": 1366982026893,
"locked": false,
"organisation": null,
"content": null,
"features": null,
"publication": null
}, {
"__type__": "fly.cso.api.v1.data.job.RemoteJob",
"code": "01130-327697959875",
"externalReferenceCode": "BD130274",
"dateCreated": 1366889117723,
"dateUpdated": 1366889569633,
"locked": false,
"organisation": null,
"content": null,
"features": null,
"publication": null
},
...
{
"__type__": "fly.cso.api.v1.data.job.RemoteJob",
"code": "01130-211771021918",
"externalReferenceCode": "BD130244",
"dateCreated": 1366037901820,
"dateUpdated": 1366961440330,
"locked": false,
"organisation": null,
"content": null,
"features": null,
"publication": null
}
]
}
5.5 getJobCount
Omschrijving
Telt het aantal beschikbare vacatures dat voldoet aan de zoekcriteria in het meegegeven job filter.
Het argument remoteJobFilter
bevat alle criteria waaraan de vacatures moeten voldoen (zie de beschrijving van RemoteJobFilter). Daarnaast is het aantal afhankelijk van de rechten die horen bij het gebruikte account. Dit wordt bepaald aan de hand van de API key die wordt meegestuurd.
Parameters
Functie | getJobs.json |
Argumenten |
required apiKey type string
required remoteJobFilter type RemoteJobFilter
|
Resultaat |
result type integer
|
Voorbeeld in Javascript (met jQuery):
var emptyJobFilter = {
__type__: "RemoteJobFilter"
};
var variables = {
apiKey: "6cc9b104-e5f1-4bf0-8d2f-d979fa53c5b5",
filter: emptyJobFilter
};
var jsonString = JSON.stringify(variables);
$.ajax({
url: 'https://sandbox.api.cso20.net/v1/JobAPI/getJobCount.json',
data: jsonString,
contentType: 'application/json',
type: 'POST',
dataType: 'json'
}).done(function (data) {
console.log(data.result);
});
JSON-respons:
{"result":38}
5.6 getJobEnumerations
Omschrijving
Een deel van de mogelijke waarden in de eigenschappen van vacatures – voornamelijk van de vacaturekenmerken in het veld features
– zijn afkomstig uit keuzelijsten. Deze enumerations (= opsommingen) kunnen allemaal in één aanroep opgehaald worden.
Bij het invullen van enumerations moet altijd het veld code
ingevuld zijn. Het veld label
is bedoeld als toelichting en wordt door de API niet ingelezen. Hier volgt een overzicht van de beschikbare items:
Enumerations
Naam | Codes | Labels |
---|---|---|
contractTypes | CSD.dd[dd] (twee of vier cijfers) | Bijv.: Vaste aanstelling (eventueel met een proeftijd) |
drivingLicences | a, b, c, d, t, A1, A2, B+, BE, C1, C1E, CE, D1, D1E, DE | A, B, C, D, T, A1, A2, B+, BE, C1, C1E, CE, D1, D1E, DE |
jobApplicationTypes | electronic, written | Elektronisch, Schriftelijk |
onlineJobApplicationTypes | EST.dd | Bijv.: reactie URL |
jobBranches | CVG.dd[dd] | Bijv.: Administratief/Secretarieel, Cultureel/taalkundig |
jobCategories | CFT.dd[dd] | Bijv.: Management/Leidinggevend, Bestuurlijk |
jobPublicationStatuses | PUB.dd | HPK/VWNW, Intern, Interdepartementaal, Extern |
jobPublicationPeriods | -1, -3, -5, -7, -10, -30 | Bijv.: Gisteren, Laatste 3 dagen |
payScales | ID (acht hoofdletters/cijfers) | Bijv.: schaal 10 |
educationLevels | CWD.dd[dd] | Bijv.: Gepromoveerd, Master/doctoraal |
regions | BRG.dd[dd] of CC (twee hoofdletters; ISO 3166) | Bijv.: Friesland, Nederland, Algerije |
securityScreenings | VFN.01, VFN.02, VFN.03 | A, B, C |
jobStructureGroups | JSG.dd | Bijv.: Medewerker Advisering, (Senior) Adviseur |
Parameters
Functie | getJobEnumerations.json |
Argumenten |
required apiKey type string
|
Resultaat |
result type RemoteJobEnumerations
|
Voorbeeld in Javascript (met jQuery):
var variables = {
apiKey: "6cc9b104-e5f1-4bf0-8d2f-d979fa53c5b5"
};
var jsonString = JSON.stringify(variables);
$.ajax({
url: 'https://sandbox.api.cso20.net/v1/JobAPI/getJobEnumerations.json',
data: jsonString,
contentType: 'application/json',
type: 'POST',
dataType: 'json'
}).done(function (data) {
console.log(data.result);
});
JSON-respons:
{
"result": {
__type__: "fly.cso.api.v1.data.job.RemoteJobEnumerations",
contractTypes: [{
__type__: "fly.cso.domain.enumerations.ContractType",
ID: 228
children: Array[0]
code: "CSD.02"
label: "Vaste aanstelling (eventueel met een proeftijd)"
},
...
],
drivingLicences: [{
__type__: "fly.cso.domain.enumerations.DrivingLicence"
ID: 307
code: "a"
label: "A"
},
...
],
...
}
}
5.7 getOrganisations
Omschrijving
Geeft een lijst terug met alle deelnemende organisaties op het CSO-platform.
Bij het invullen van organisations moet altijd het veld code
ingevuld zijn. Het veld name
is bedoeld als toelichting en wordt door de API niet ingelezen.
Parameters
Functie | getOrganisations.json |
Argumenten |
required apiKey type string
|
Resultaat |
result type RemoteOrganisation[]
|
Voorbeeld in Javascript (met jQuery):
var variables = {
apiKey: "6cc9b104-e5f1-4bf0-8d2f-d979fa53c5b5"
};
var jsonString = JSON.stringify(variables);
$.ajax({
url: 'https://sandbox.api.cso20.net/v1/JobAPI/getOrganisations.json',
data: jsonString,
contentType: 'application/json',
type: 'POST',
dataType: 'json'
}).done(function (data) {
console.log(data.result);
});
JSON-respons:
{
"result": [{
"__type__": "fly.cso.api.v1.data.job.RemoteOrganisation",
"name": "Academic Transfer",
"code": "00300",
"abbreviation": "AT",
"slug": "academictransfer",
"HPKdays": 0
}, {
"__type__": "fly.cso.api.v1.data.job.RemoteOrganisation",
"name": "Algemene Rekenkamer",
"code": "01020",
"abbreviation": "AR",
"slug": "algemene-rekenkamer",
"HPKdays": 5
},
...
]
}
5.8 getOrganisationsWithFilter
Omschrijving
Geeft een lijst terug met de deelnemende organisaties op het CSO-platform die voldoen aan een filter.
Parameters
Functie | getOrganisationsWithFilter.json |
Argumenten |
required apiKey type string
required filter type RemoteOrganisationFilter
|
Resultaat |
result type RemoteOrganisation[]
|
Voorbeeld in Javascript (met jQuery) met een leeg organisationFilter
. Hiermee worden alle organisaties opgehaald:
var emptyOrganisationFilter = {
__type__: "RemoteOrganisationFilter"
}
var variables = {
apiKey: "6cc9b104-e5f1-4bf0-8d2f-d979fa53c5b5",
filter: emptyOrganisationFilter
};
var jsonString = JSON.stringify(variables);
$.ajax({
url: 'https://sandbox.api.cso20.net/v1/JobAPI/getOrganisationsWithFilter.json',
data: jsonString,
contentType: 'application/json',
type: 'POST',
dataType: 'json'
}).done(function (data) {
console.log(data.result);
});
JSON-respons:
{
"result": [{
"__type__": "fly.cso.api.v1.data.job.RemoteOrganisation",
"name": "Academic Transfer",
"code": "00300",
"abbreviation": "AT",
"slug": "academictransfer",
"HPKdays": 0
}, {
"__type__": "fly.cso.api.v1.data.job.RemoteOrganisation",
"name": "Algemene Rekenkamer",
"code": "01020",
"abbreviation": "AR",
"slug": "algemene-rekenkamer",
"HPKdays": 5
},
...
]
}
5.9 getJobCountForEnumeration
Omschrijving
Geeft het aantal vacatures terug per enumeration. Geeft bijvoorbeeld het aantal vacatures terug per regio.
Parameters
Functie | getOrganisationsWithFilter.json |
Argumenten |
required apiKey type string
required enumerationType type string: "EducationLevel", "JobBranch", "JobCategory", "ContractType", "Region"
required filter type RemoteJobFilter
|
Resultaat |
result type RemoteJobEnumerationCount[]
|
Voorbeeld in Javascript (met jQuery):
var emptyJobFilter = {
__type__: "RemoteJobFilter"
};
var variables = {
apiKey: "6cc9b104-e5f1-4bf0-8d2f-d979fa53c5b5",
enumerationType: "region",
filter: emptyJobFilter
};
var jsonString = JSON.stringify(variables);
$.ajax({
url: 'https://sandbox.api.cso20.net/v1/JobAPI/getJobCountForEnumeration.json',
data: jsonString,
contentType: 'application/json',
type: 'POST',
dataType: 'json'
}).done(function (data) {
console.log(data.result);
});
JSON-respons:
{
"result": [{
"__type__": "fly.cso.api.v1.data.job.RemoteJobEnumerationCount",
"enumeration": {
"__type__": "fly.cso.domain.enumerations.Region",
"children": [],
"ID": 109,
"label": "Groningen",
"code": "BRG.0204"
},
"jobSearchCount": 3
}, {
"__type__": "fly.cso.api.v1.data.job.RemoteJobEnumerationCount",
"enumeration": {
"__type__": "fly.cso.domain.enumerations.Region",
"children": [],
"ID": 111,
"label": "Overijssel",
"code": "BRG.0208"
},
"jobSearchCount": 4
},
...
}
]
}
5.10 saveJob
Omschrijving
Voegt een nieuwe vacature toe of wijzigt een bestaande.
Een vacatureobject heeft veel attributen. De minimale set aan attributen van een vacature staat hieronder.
Sommige attributen vereisen extra validatie.
Het attribuut publication
is het meest complex. Zie de onderstaande tabel voor uitleg over vacaturepublicatie en publicatieperiode's.
Validatie
Algemene eisen
Om een vacature op te slaan is een minimale set aan informatie nodig. Hieronder staan de attributen die minimaal aanwezig moeten zijn om een vacature te mogen opslaan.
internalReferenceCode | Vacaturenummer |
organisation | Organisatiecode |
jobContent.name | Functienaam |
jobContent.description | Functieomschrijving |
jobContent.requirements | Functie-eisen |
jobContent.applicationTypes | Sollicitatiewijze; schriftelijk, digitaal of beide. |
jobContent.locationData.city | Vacaturestandplaats |
jobFeatures.jobDetail.educationLevels | Werk-/denkniveau(s) |
jobFeatures.jobDetail.jobCategories | Functietype(s) |
jobFeatures.jobDetail.jobBranches | Vakgebied(en) |
jobFeatures.jobDetail.regions | Regio('s) |
jobFeatures.employmentConditionsData.hoursMax | Uren per week (max) |
jobFeatures.employmentConditionsData.contractType | Dienstverband; Vast of tijdelijk contract. |
publication.visible | Moet de vacature getoond worden aan het publiek? |
Specifieke eisen
Sommige attributen hebben specifieke eisen die afhankelijk zijn van andere attributen.
-
Sollicitatiegegevens:
De mogelijkheid om schiftelijk te solliciteren vereist extra attributen, zoals een postadres. De mogelijkheid om on-line te solliciteren vereist weer andere attributen, zoals een e-mailadres. Zie de tabel met Enumerations voor een overzicht van
applicationTypes
. -
Locatiegegvens
Er mogen alleen meerdere regio's worden aangeboden per vacature als die regio's zich in Nederland bevinden. Bij Nederlandse regio's zijn postcode en standplaats verplicht. Een buitenlandse regio is beperkt tot één en heeft geen postcode nodig.
-
Salaris
Sommige organisaties hanteren salarisschalen. Dit zijn meestal rijksorganisaties en de schaalverdeling is onderdeel van het functiegebouw van de Rijksoverheid. Vacatures van organisaties mèt salarisschalen hebben verplicht een salarisschaal nodig en mogen geen eigen salarisbedragen meesturen. Vacatures van organisaties zònder salarisschalen vise versa. Een salarisomschrijving is een alternatief voor zowel salarisschalen als salarisbedragen.
-
Publicatie
Een publicatieperiode van een vacature bestaat uit één of meerdere publicatiefases. Een publicatiefase is een periode waarin de vacature beschikbaar is voor een specifieke doelgroep. In de onsterstaande tabel is per publicatiefase uitgelegd voor welk publiek het bedoeld is.
Publicatiefase Omschrijving HPK In deze fase is de vacature beschikbaar voor kandidaten die in aanmerking komen voor herplaatsing, ook wel bekend als VWNW. Sommige organisaties zijn verplicht hun vacatures eerst aan deze groep kandidaten aan te bieden. Mobiliteitsbank.nl is het primaire kanaal voor deze fase. Andere fases mogen deze fase niet overlappen. Intern In deze fase is de vacature beschikbaar voor kandidaten werkzaam bij dezelfde overheidsorganisatie als die van de vacatureplaatsing. Mobiliteitsbank.nl is het primaire kanaal voor deze fase. Andere fases mogen overlappen met deze tenzij anders aangegeven. Interdepartementaal In deze fase is de vacature beschikbaar voor kandidaten werkzaam bij dezelfde overheidssector (bijvoorbeeld rijksoverheid) als die van de vacatureplaatsing. Mobiliteitsbank.nl is het primaire kanaal voor deze fase. Andere fases mogen overlappen met deze tenzij anders aangegeven. Extern In deze fase is de vacature beschikbaar voor kandidaten nog niet werkzaam bij de overheid. Werkenbijdeoverheid.nl en werkenvoornederland.nl zijn de primaire kanalen voor deze fase. Andere fases mogen overlappen met deze tenzij anders aangegeven.
Parameters
Functie | getOrganisationsWithFilter.json |
Argumenten |
required apiKey type string
required job type RemoteJob
|
Resultaat |
result type RemoteJobEnumerationCount[]
|
Voorbeeld in Javascript (met jQuery):
var job = {
"content": {
"name": "Adviseur",
"description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit.\n Nulla vel interdum velit.\n Vivamus faucibus mauris non ante posuere euismod. Donec suscipit pulvinar leo, vel euismod nisl auctor aliquam.",
"__TYPE__": "RemoteJobContent",
"requirements": "Geen"
},
"features": {
"featuresDetail": {
"regions": [{
"__TYPE__": "Region",
"code": "BRG.0214"
}, {
"__TYPE__": "Region",
"code": "BRG.0210"
}
],
"jobBranches": [{
"__TYPE__": "JobBranch",
"code": "CVG.02"
}, {
"__TYPE__": "JobBranch",
"code": "CVG.04"
}
],
"__TYPE__": "RemoteJobFeaturesDetail",
"jobCategories": [{
"__TYPE__": "JobCategory",
"code": "CFT.08"
}, {
"__TYPE__": "JobCategory",
"code": "CFT.04"
}
],
"educationLevels": [{
"__TYPE__": "EducationLevel",
"code": "CWD.04"
}
]
},
"location": {
"postcode": "3703CB",
"__TYPE__": "RemoteJobLocation",
"city": "Ergens"
},
"employmentConditions": {
"contractType": {
"__TYPE__": "ContractType",
"code": "CSD.02"
},
"payDescription": "pay description",
"payScales": [{
"__TYPE__": "PayScale",
"code": "MTBI9LD7"
}, {
"__TYPE__": "PayScale",
"code": "1Y08ZSFF"
}, {
"__TYPE__": "PayScale",
"code": "FF51QGU7"
}
],
"hoursMax": 40,
"__TYPE__": "RemoteJobEmploymentConditions"
},
"onlineApplicationTypes": [{
"__TYPE__": "OnlineJobApplicationType",
"code": "EST.02"
}
],
"__TYPE__": "RemoteJobFeatures",
"applicationTypes": [{
"__TYPE__": "JobApplicationType",
"code": "electronic"
}
],
"internalReferenceCode": "qwer",
"applicationContact": {
"location": {
"email": "testemailadres@minbzk.nl",
"__TYPE__": "RemoteJobAddress"
},
"__TYPE__": "RemoteJobApplicationContact"
}
},
"publication": {
"visible": true,
"__TYPE__": "RemoteJobPublicationData",
"publicationSets": [{
"__TYPE__": "RemoteJobPublicationSet",
"publications": [{
"publicationStatus": {
"__TYPE__": "JobPublicationStatus",
"code": "PUB.02"
},
"__TYPE__": "RemoteJobPublication",
"dateStart": 1397080800,
"dateEnd": 1399672800
}, {
"publicationStatus": {
"__TYPE__": "JobPublicationStatus",
"code": "PUB.04"
},
"__TYPE__": "RemoteJobPublication",
"dateStart": 1397167200,
"dateEnd": 1399759200
}, {
"publicationStatus": {
"__TYPE__": "JobPublicationStatus",
"code": "PUB.06"
},
"__TYPE__": "RemoteJobPublication",
"dateStart": 1397253600,
"dateEnd": 1399845600
}
]
}
]
},
"__TYPE__": "RemoteJob",
"organisation": {
"__TYPE__": "RemoteOrganisation",
"code": "01130"
}
};
var variables = {
apiKey: "6cc9b104-e5f1-4bf0-8d2f-d979fa53c5b5",
job:job
};
var jsonString = JSON.stringify(variables);
$.ajax({
url: 'https://sandbox.api.cso20.net/v1/JobAPI/saveJob.json',
data: jsonString,
contentType: 'application/json',
type: 'POST',
dataType: 'json'
}).done(function (data) {
console.log(data.result);
});
JSON-respons:
{
"result": [{
"__type__": "fly.cso.api.v1.data.job.RemoteJobEnumerationCount",
"enumeration": {
"__type__": "fly.cso.domain.enumerations.Region",
"children": [],
"ID": 109,
"label": "Groningen",
"code": "BRG.0204"
},
"jobSearchCount": 3
}, {
"__type__": "fly.cso.api.v1.data.job.RemoteJobEnumerationCount",
"enumeration": {
"__type__": "fly.cso.domain.enumerations.Region",
"children": [],
"ID": 111,
"label": "Overijssel",
"code": "BRG.0208"
},
"jobSearchCount": 4
},
...
}
]
}
5.11 removeJob
Omschrijving
Verwijdert een vacature.
Parameters
Functie | removeJob.json |
Argumenten |
required apiKey type string
required jobCode type string
|
Resultaat |
result type string
|
Voorbeeld in Javascript (met jQuery):
var variables = {
apiKey: "6cc9b104-e5f1-4bf0-8d2f-d979fa53c5b5",
jobCode: "09283-000012391287"
};
var jsonString = JSON.stringify(variables);
$.ajax({
url: 'https://sandbox.api.cso20.net/v1/JobAPI/removeJob.json',
data: jsonString,
contentType: 'application/json',
type: 'POST',
dataType: 'json'
}).done(function (data) {
console.log(data.result);
});
5.12 RemoteJobFilter
Omschrijving
Een filter wordt gebruikt om alleen vacatures op te halen die voldoen aan bepaalde criteria.
Het is bijvoorbeeld mogelijk om vacatures op te halen van een specifieke organisatie, uit een bepaalde periode of met een specifieke salarisschaal.
Parameters
-
contentFilter - nillable; type RemoteJobContentFilter
- keywords - nillable; type string
name - nillable; type string
-
featuresFilter - nillable; type RemoteJobFeaturesFilter
-
detailFilter - nillable; type RemoteJobDetailFilter
-
educationLevels - nillable; type EducationLevel[]
- ID - nillable; type double (read only)
- code - nillable; type string
- label - nillable; type string (read only)
- children - nillable; type anyType
- parent - nillable; type anyType
-
jobBranches - nillable; type JobBranch[]
- ID - nillable; type double (read only)
- code - nillable; type string
- label - nillable; type string (read only)
- children - nillable; type anyType
- parent - nillable; type anyType
-
jobCategories - nillable; type JobCategory[]
- ID - nillable; type double (read only)
- code - nillable; type string
- label - nillable; type string (read only)
- children - nillable; type anyType
- parent - nillable; type anyType
-
regions - nillable; type Region[]
- ID - nillable; type double (read only)
- code - nillable; type string
- label - nillable; type string (read only)
- children - nillable; type anyType
- parent - nillable; type anyType
-
educationLevels - nillable; type EducationLevel[]
-
employmentConditionsFilter - nillable; type RemoteEmploymentConditionsFilter
-
contractTypes - nillable; type ContractType[]
- ID - nillable; type double (read only)
- code - nillable; type string
- label - nillable; type string (read only)
- children - nillable; type anyType
- parent - nillable; type anyType
-
payScales - nillable; type PayScale[]
- ID - nillable; type double (read only)
- code - nillable; type string
- label - nillable; type string (read only)
- scale - nillable; type double
- salaryMin - nillable; type double
- salaryMax - nillable; type double
- persistentOrganisation - nillable; type anyType (read only)
displayOrder - nillable; type double
- salaryMax - nillable; type double
- salaryMin - nillable; type double
-
contractTypes - nillable; type ContractType[]
-
detailFilter - nillable; type RemoteJobDetailFilter
-
filterMetadata - nillable; type RemoteFilterMetadata
- maxRows - nillable; type double
-
orderBy - nillable; type RemoteFilterMetadataOrderBy[]
- descending - nillable; type boolean
- orderBy - nillable; type string: "publication.publicationSets.statusPublished", "publication.publicationSets.datePublished", "publication.publicationSets.daysLeft", "publication.publicationSets.jobApplicationRetentionMaxDate"
- orderByArguments - nillable; type string[] (not yet implemented!)
- startRow - nillable; type double
- includeSubtypes - nillable; type boolean (not yet implemented!)
- onlineOnly - nillable; type boolean
-
organisations - nillable; type RemoteOrganisation[]
- code - nillable; type string
- name - nillable; type string (read only)
-
publicationDataFilter - nillable; type RemoteJobPublicationDataFilter
-
publicationPeriodFilter - nillable; type RemoteJobPublicationPeriodFilter
- dateEnd - nillable; type long (milliseconds since epoch)
- dateStart - nillable; type long (milliseconds since epoch)
-
publicationStatuses - nillable; type JobPublicationStatus[]
- ID - nillable; type double (read only)
- code - nillable; type string
- label - nillable; type string
-
sectors - nillable; type RemoteSector[]
- code - nillable; type string
- name - nillable; type string (read only)
-
publicationPeriodFilter - nillable; type RemoteJobPublicationPeriodFilter
5.13 RemoteJobFieldSelection
Omschrijving
Met dit object is het mogelijk om nauwkeurig te bepalen welke detailinformatie wordt opgehaald per vacature.
FieldSelection
s zijn altijd van type boolean
en zijn gegroepeerd per onderdeel.
Welke teksten er per vacature worden opgehaald is bijvoorbeeld te bepalen met het attribuut jobContent
.
En welke kenmerken er per vacature worden opgehaald met het attribuut jobFeatures
.
Parameters
-
jobContent - nillable; type RemoteJobContentFieldSelection
- department - nillable; type boolean
- employer - nillable; type boolean
-
jobFeatures - nillable; type RemoteJobFeaturesFieldSelection
- applicationContact - nillable; type boolean
- applicationProcedureContact - nillable; type boolean
- applicationTypes - nillable; type boolean
- detail - nillable; type boolean
- employmentConditions - nillable; type boolean
- informationContact - nillable; type boolean
- location - nillable; type boolean
- onlineJobApplicationTypes - nillable; type boolean
tvDistinction - nillable; type boolean
-
jobPublication - nillable; type RemoteJobPublicationDataFieldSelection
- publicationSets - nillable; type boolean
- organisation - nillable; type boolean
5.14 RemoteOrganisationFilter
Omschrijving
Dit filter wordt gebruikt om alleen organisaties op te halen die voldoen aan bepaalde criteria.
Om bijvoorbeeld alle organisatie van een bepaalde sector op te halen moet dit filter worden toegepast.
Parameters
- includeSubOrganisations - nillable; type boolean
- levels - nillable; type string[]
-
organisation - nillable; type RemoteOrganisation
- code - nillable; type string
- name - nillable; type string (read only)
-
sector - nillable; type RemoteSector
- code - nillable; type string
- name - nillable; type string (read only)
5.15 RemoteJobEnumerationCount
Omschrijving
Dit object bevat het resultaat van de getJobCountForEnumeration functie.
- enumeration; type Enumeration
- jobSearchCount; type double