Servidor MCP

Nationale Vacaturebank Jobs

nl.nationalevacaturebank.www/jobs
Negocio y operaciones Público y accesible MCP 2025-11-25

Qué hace este MCP

Searches and retrieves live Dutch job postings from Nationale Vacaturebank with detailed listing information.

get_job
Get job
Fetch the full details of a single job posting by id. Use this after `search_jobs` to retrieve the complete description, requirements, salary breakdown, and company information for a listing. Returns an error result if the id is unknown.
Solo lectura Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'pattern': '^(\\d+|[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$', 'description': 'Numeric or UUID job identifier. Get this from search_jobs results.'}}}
Esquema de salida
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'title', 'description', 'requirements', 'publishingDate', 'url', 'company', 'location', 'workingHours', 'workingPlace', 'salary', 'contractType', 'educationLevel', 'careerLevel', 'categories', 'industries', 'customFields'], 'properties': {'id': {'type': 'string'}, 'url': {'type': 'string', 'format': 'uri'}, 'title': {'type': 'string'}, 'salary': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'company': {'type': 'object', 'required': ['name', 'description'], 'properties': {'name': {'type': 'string'}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'location': {'type': 'string'}, 'categories': {'type': 'array', 'items': {'type': 'string'}}, 'industries': {'type': 'array', 'items': {'type': 'string'}}, 'careerLevel': {'type': 'string'}, 'description': {'type': 'string'}, 'contractType': {'type': 'string'}, 'customFields': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'required': ['title', 'content'], 'properties': {'title': {'type': 'string'}, 'content': {'type': 'string'}}, 'additionalProperties': False}}, {'type': 'null'}]}, 'requirements': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'workingHours': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'workingPlace': {'anyOf': [{'enum': ['Werken op afstand', 'Werken op locatie', 'Hybride'], 'type': 'string'}, {'type': 'null'}]}, 'educationLevel': {'type': 'string'}, 'publishingDate': {'type': 'string'}}, 'additionalProperties': False}
search_jobs
Search jobs
Search the live Dutch job catalogue for openings matching the given criteria. Use this when the user wants to find jobs by role, location, salary, contract type, remote/onsite preference, or education level. Each result carries an `id` you can pass to `get_job` for the full record. Pagination metadata (`page`, `totalPages`, `total`) is included so the client can decide whether to fetch the next page.
Solo lectura Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'page': {'type': 'integer', 'default': 1, 'maximum': 100, 'minimum': 1, 'description': "1-based page index. Combine with 'limit' for pagination."}, 'sort': {'enum': ['relevance', 'date', 'distance', 'popularity'], 'type': 'string', 'default': 'relevance', 'description': "Sort order. 'relevance' weighs the query, 'date' is freshness, 'distance' requires 'location', 'popularity' weighs view count."}, 'limit': {'anyOf': [{'type': 'number', 'const': 1}, {'type': 'number', 'const': 2}, {'type': 'number', 'const': 6}, {'type': 'number', 'const': 10}, {'type': 'number', 'const': 25}], 'default': 10, 'description': 'Number of results to return. Capped at 25 to keep responses compact; use pagination for more.'}, 'query': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Free-text keywords. Optional; if omitted, returns the most recent jobs matching the other filters.'}, 'category': {'type': 'array', 'items': {'enum': ['Administratief/Secretarieel', 'Automatisering/Internet', 'Beleid/Bestuur/Staf', 'Beveiliging/Defensie/Politie', 'Commercieel/Verkoop', 'Consultancy/Advies', 'Design/Creatie/Journalistiek', 'Directie/Management algemeen', 'Financieel/Accounting', 'Financiele dienstverlening', 'HR/Training/Opleiding', 'Horeca/Detailhandel', 'Inkoop/Logistiek/Transport', 'Juridisch', 'Klantenservice/Callcenter/Receptie', 'Marketing/PR/Communicatie', 'Medisch/Zorg', 'Onderwijs/Onderzoek/Wetenschap', 'Productie/Uitvoerend', 'Techniek', 'Overig'], 'type': 'string'}, 'minItems': 1, 'description': "Filter by job category (the on-site 'Vakgebied' filter). Multi-select. Dutch values, e.g. 'Automatisering/Internet' (IT), 'Medisch/Zorg' (medical/care), 'Marketing/PR/Communicatie'."}, 'distance': {'enum': ['0', '10', '20', '30', '40', '50', '75', '100', 'city'], 'type': 'string', 'description': "Search radius in kilometres around the given location. Use 'city' for an exact city match or '0' for nationwide (500 km)."}, 'industry': {'type': 'array', 'items': {'enum': ['Accountancy', 'Advies/Consultancy', 'Afval en milieu', 'Automotive', 'Banken/Financiële dienstverlening', 'Beveiliging/Bewaking', 'Bouw/Installatie', 'Chemie/Petrochemie', 'Detailhandel', 'Elektronica', 'Energie/Gas/Water', 'FMCG', 'Facilitaire dienstverlening', 'Farmacie', 'Gezondheidszorg/Welzijn', 'Handel/Groothandel', 'Horeca', 'ICT', 'Industrie', 'Internet', 'Juridische dienstverlening', 'Kunst/Cultuur/Entertainment', 'Landbouw/Bosbouw/Visserij', 'Makelaardij/Vastgoed', 'Maritiem', 'Media/Uitgeverijen/TV', 'Mode/Textiel/Cosmetica', 'Onderwijs/Opleiding', 'Overheid/Non-profit', 'Personen vervoer', 'Reclame/PR/Communicatie', 'Sport/Recreatie/Toerisme', 'Techniek', 'Telecom', 'Transport/Opslag/Distributie', 'Uitzend/Detachering/W&S', 'Verzekeringen/Assurantiën', 'Zakelijke dienstverlening', 'Overig'], 'type': 'string'}, 'minItems': 1, 'description': "Filter by industry (the on-site 'Branche' filter). Multi-select. Dutch values, e.g. 'ICT', 'Gezondheidszorg/Welzijn', 'Onderwijs/Opleiding'."}, 'location': {'type': 'string', 'maxLength': 120, 'minLength': 1, 'description': "Dutch city, municipality, or province name. Combined with 'distance' for radius search."}, 'postedBy': {'enum': ['direct_employer_and_media_bureau', 'human_resource_manager'], 'type': 'string', 'description': "Filter by who posted the listing. 'direct_employer_and_media_bureau' = direct employer, 'human_resource_manager' = third-party recruiter. Omit to include both."}, 'salaryMin': {'enum': [0, 1500, 2500, 3500, 5000, 7000], 'type': 'number', 'description': 'Minimum gross monthly salary in euros. Discrete steps: 0, 1500, 2500, 3500, 5000, 7000.'}, 'careerLevel': {'type': 'array', 'items': {'enum': ['Geen ervaring', 'Starter', 'Ervaren', 'Leidinggevend', 'Senior management', 'Directie'], 'type': 'string'}, 'minItems': 1, 'description': "Filter by career level. Multi-select. Dutch values: 'Geen ervaring' (no experience), 'Starter', 'Ervaren' (experienced), 'Leidinggevend' (manager), 'Senior management', 'Directie' (board)."}, 'contractType': {'type': 'array', 'items': {'enum': ['Bijbaan', 'Freelance', 'Interim', 'Leer-werk overeenkomst', 'Stage', 'Thuiswerk', 'Tijdelijk', 'Vakantiewerk', 'Vast', 'Vrijwilliger', 'ZZP', 'Zelfstandig/Franchise'], 'type': 'string'}, 'minItems': 1, 'description': "Filter by contract type. Multi-select. Dutch labour-market values: 'Vast' (permanent), 'Tijdelijk' (temporary), 'Freelance', 'ZZP' (self-employed), 'Stage' (internship), etc."}, 'workingPlace': {'type': 'array', 'items': {'enum': ['remote', 'hybrid', 'onsite'], 'type': 'string'}, 'minItems': 1, 'description': "Filter by work arrangement. 'remote' = work from home only, 'hybrid' = mixed, 'onsite' = office only."}, 'educationLevel': {'type': 'array', 'items': {'enum': ['Postdoctoraal', 'WO', 'HBO', 'MBO', 'VWO', 'HAVO', 'VMBO/MAVO', 'LBO', 'Lagere school'], 'type': 'string'}, 'minItems': 1, 'description': "Filter by required education level. Multi-select. Use the Dutch abbreviation: 'WO' (university), 'HBO' (applied university), 'MBO' (vocational), etc."}, 'employmentType': {'enum': ['fulltime', 'parttime'], 'type': 'string', 'description': "Filter by hours. 'fulltime' = 33-40h/week, 'parttime' = 1-32h/week. Omit to include both."}}}
Esquema de salida
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['jobs', 'page', 'totalPages', 'total'], 'properties': {'jobs': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'title', 'company', 'location', 'salary', 'publishingDate', 'workingHours', 'description', 'url'], 'properties': {'id': {'type': 'string'}, 'url': {'type': 'string', 'format': 'uri'}, 'title': {'type': 'string'}, 'salary': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'company': {'type': 'string'}, 'location': {'type': 'string'}, 'description': {'type': 'string'}, 'workingHours': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'publishingDate': {'type': 'string'}}, 'additionalProperties': False}}, 'page': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': '1-based index of the page returned (echo of the input `page`).'}, 'total': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Total number of matching jobs across all pages.'}, 'totalPages': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Total number of pages available for this query at the current `limit`.'}}, 'additionalProperties': False}
Añadido
get_job
17 de September de 2026 a las 12:54
Añadido
search_jobs
17 de September de 2026 a las 12:54