CSO JSON RPC API

Om de vacatures op deze website met open data te ontsluiten, is een API ontwikkeld.
Wil je als CSO-deelnemer gebruik maken van het vacature-aanbod via de API? Neem dan contact op:
Telefoon: 06-25599212
E-mailadres: helpdesk@rhinofly.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. 1 Het CSO-Platform
  2. 2 Over de API
  3. 3 Gebruik van de API
    1. 3.1 Algemeen
    2. 3.2 JobAPI
    3. 3.3 Sandbox
    4. 3.4 Beveiliging
  4. 4 Reference documentation
  5. 5 Example documentation
    1. 5.1 getApiKey
    2. 5.2 isValidApi
    3. 5.3 getJob
    4. 5.4 getJobs
    5. 5.5 getJobCount
    6. 5.6 getJobEnumerations
    7. 5.7 getOrganisations
    8. 5.8 getOrganisationsWithFilter
    9. 5.9 getJobCountForEnumeration
    10. 5.10 saveJob
    11. 5.11 removeJob
    12. 5.12 RemoteJobFilter
    13. 5.13 RemoteJobFieldSelection
    14. 5.14 RemoteOrganisationFilter
    15. 5.15 RemoteJobEnumerationCount



1 Het CSO-Platform

Het CSO-platform (Carrièresites Overheid) faciliteert arbeidsmarktcommunicatie voor de Nederlandse overheid en bestaat uit verschillende websites:

Naast vacaturepublicaties biedt het CSO-platform ruimte aan informatie over de overheid als werkgever en specifieke informatie over zowel rijks- als niet-rijksorganisaties. Het CSO-platform is opgezet en wordt beheerd door het Expertisecentrum Organisatie en Personeel (EC-O&P)

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://sandbox.www.werkenvoornederland.nl
  • https://sandbox.m.werkenvoornederland.nl
  • https://sandbox.www.werkenbijdeoverheid.nl
  • https://sandbox.m.werkenbijdeoverheid.nl
  • https://sandbox.www.rijkstalentencentrum.nl
  • https://sandbox.mobi.rijkstalentencentrum.nl
  • https://sandbox.rtc.rijkstalentencentrum.nl

3.4 Beveiliging

Niet alle vacature-gegevens op het CSO-platform zijn publiek beschikbaar. Daarom zijn de volgende beveilingsaspecten geïmplementeerd:

  1. Gebruikersnaam (username) en wachtwoord (password)
  2. Autorisatie op elk request door middel van een meegestuurde API key
  3. Beveiligde verbinding via Secure Sockets Layer

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.

>> Ga naar de reference documentation

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
tvDistinctions tutoyeren, vousvoyeren je, u
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"
            dateCreated: 946681200000
            dateUpdated: null
            label: "Vaste aanstelling (eventueel met een proeftijd)"
         },
         ...
      ],
      drivingLicences: [{
            __type__: "fly.cso.domain.enumerations.DrivingLicence"
            ID: 307
            code: "a"
            dateCreated: 946681200000
            dateUpdated: null
            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": "AcademicTransfer",
            "code": "00300",
            "abbreviation": "AT",
            "HPKdays": 0
        }, {
            "__type__": "fly.cso.api.v1.data.job.RemoteOrganisation",
            "name": "Algemene Rekenkamer",
            "code": "01020",
            "abbreviation": "AR",
            "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": "AcademicTransfer",
            "code": "00300",
            "abbreviation": "AT",
            "HPKdays": 0
        }, {
            "__type__": "fly.cso.api.v1.data.job.RemoteOrganisation",
            "name": "Algemene Rekenkamer",
            "code": "01020",
            "abbreviation": "AR",
            "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",
                "dateCreated": 946681200000,
                "dateUpdated": null
            },
            "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",
                "dateCreated": 946681200000,
                "dateUpdated": null
            },
            "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.

  1. 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.

  2. 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.

  3. 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.

  4. 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 mits 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 mits 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 mits 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": "Job Jop...",
        "description": "Test job",
        "__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@rhinofly.nl",
                "__TYPE__": "RemoteJobAddress"
            },
            "__TYPE__": "RemoteJobApplicationContact"
        }
    },
    "publication": {
        "visible": true,
        "__TYPE__": "RemoteJobPublicationData",
        "publicationSets": [{
                "__TYPE__": "RemoteJobPublicationSet",
                "publications": [{
                        "publicationStatus": {
                            "__TYPE__": "JobPublicationStatus",
                            "code": "PUB.02"
                        },
                        "__TYPE__": "RemoteJobPublication",
                        "dateStart": "2014-04-10",
                        "dateEnd": "2014-05-10"
                    }, {
                        "publicationStatus": {
                            "__TYPE__": "JobPublicationStatus",
                            "code": "PUB.04"
                        },
                        "__TYPE__": "RemoteJobPublication",
                        "dateStart": "2014-04-11",
                        "dateEnd": "2014-05-11"
                    }, {
                        "publicationStatus": {
                            "__TYPE__": "JobPublicationStatus",
                            "code": "PUB.06"
                        },
                        "__TYPE__": "RemoteJobPublication",
                        "dateStart": "2014-04-12",
                        "dateEnd": "2014-05-12"
                    }
                ]
            }
        ]
    },
    "__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",
                "dateCreated": 946681200000,
                "dateUpdated": null
            },
            "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",
                "dateCreated": 946681200000,
                "dateUpdated": null
            },
            "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

filter type RemoteJobFilter
  • contentFilter - nillable; type RemoteJobContentFilter
    • keywords - nillable; type string
    • name - nillable; type string
  • featuresFilter - nillable; type RemoteJobFeaturesFilter
    • detailFilter - nillable; type RemoteJobDetailFilter
      • educationLevels - nillable; type ArrayOf_tns5_EducationLevel - array of type EducationLevel - extension of type Enumeration
        • ID - nillable; type double (read only)
        • code - nillable; type string
        • dateCreated - nillable; type dateTime (read only)
        • dateUpdated - nillable; type dateTime (read only)
        • label - nillable; type string (read only)
        • children - nillable; type anyType
        • parent - nillable; type anyType
      • jobBranches - nillable; type ArrayOf_tns5_JobBranch - array of type JobBranch - extension of type Enumeration
        • ID - nillable; type double (read only)
        • code - nillable; type string
        • dateCreated - nillable; type dateTime (read only)
        • dateUpdated - nillable; type dateTime (read only)
        • label - nillable; type string (read only)
        • children - nillable; type anyType
        • parent - nillable; type anyType
      • jobCategories - nillable; type ArrayOf_tns5_JobCategory - array of type JobCategory - extension of type Enumeration
        • ID - nillable; type double (read only)
        • code - nillable; type string
        • dateCreated - nillable; type dateTime (read only)
        • dateUpdated - nillable; type dateTime (read only)
        • label - nillable; type string (read only)
        • children - nillable; type anyType
        • parent - nillable; type anyType
      • regions - nillable; type ArrayOf_tns5_Region - array of type Region - extension of type Enumeration
        • ID - nillable; type double (read only)
        • code - nillable; type string
        • dateCreated - nillable; type dateTime (read only)
        • dateUpdated - nillable; type dateTime (read only)
        • label - nillable; type string (read only)
        • children - nillable; type anyType
        • parent - nillable; type anyType
    • employmentConditionsFilter - nillable; type RemoteEmploymentConditionsFilter
      • contractTypes - nillable; type ArrayOf_tns5_ContractType - array of type ContractType - extension of type Enumeration
        • ID - nillable; type double (read only)
        • code - nillable; type string
        • dateCreated - nillable; type dateTime (read only)
        • dateUpdated - nillable; type dateTime (read only)
        • label - nillable; type string (read only)
        • children - nillable; type anyType
        • parent - nillable; type anyType
      • payScales - nillable; type ArrayOf_tns7_PayScale - array of type PayScale - extension of type Enumeration
        • ID - nillable; type double (read only)
        • code - nillable; type string
        • dateCreated - nillable; type dateTime (read only)
        • dateUpdated - nillable; type dateTime (read only)
        • label - nillable; type string (read only)
        • displayOrder - nillable; type double
        • persistentOrganisation - nillable; type anyType (read only)
        • salaryMax - nillable; type double
        • salaryMin - nillable; type double
      • salaryMax - nillable; type double
      • salaryMin - nillable; type double
  • filterMetadata - nillable; type RemoteFilterMetadata
    • maxRows - nillable; type double
    • orderBy - nillable; type ArrayOf_tns8_RemoteFilterMetadataOrderBy - array of 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 ArrayOf_xsd_anyType - array of type anyType
    • startRow - nillable; type double
  • includeSubtypes - nillable; type boolean (not yet implemented!)
  • onlineOnly - nillable; type boolean
  • organisations - nillable; type ArrayOf_tns3_RemoteOrganisation - array of type RemoteOrganisation
    • code - nillable; type string
    • name - nillable; type string (read only)
  • publicationDataFilter - nillable; type RemoteJobPublicationDataFilter
    • publicationPeriodFilter - nillable; type RemoteJobPublicationPeriodFilter
      • dateEnd - nillable; type dateTime
      • dateStart - nillable; type dateTime
    • publicationStatuses - nillable; type ArrayOf_tns5_JobPublicationStatus - array of type JobPublicationStatus - extension of type Enumeration
      • ID - nillable; type double (read only)
      • code - nillable; type string
      • dateCreated - nillable; type dateTime (read only)
      • dateUpdated - nillable; type dateTime (read only)
      • label - nillable; type string
    • sectors - nillable; type ArrayOf_tns3_RemoteSector - array of type RemoteSector
      • code - nillable; type string
      • name - nillable; type string (read only)

5.13 RemoteJobFieldSelection

Omschrijving

Met dit object is het mogelijk om nauwkeurig te bepalen welke detailinformatie wordt opgehaald per vacature.

FieldSelections 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

remoteJobFieldSelection type RemoteJobFieldSelection
  • jobContent - nillable; type RemoteJobContentFieldSelection
    • department - nillable; type boolean
    • employer - nillable; type boolean
  • jobExtraFields - 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

filter type RemoteOrganisationFilter
  • includeSubOrganisations - nillable; type boolean
  • levels - nillable; type ArrayOf_xsd_anyType - array of type anyType
  • 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

18-dec-2014