XML Documentation

Introduction

HerFuture can automatically import your vacancies via an XML feed. Below you will find the specification that the XML must meet.

How it works

  • You host an XML feed at a public URL (no login required) and add that URL in your HerFuture company settings.
  • We read the feed once a week, every Monday morning.
  • Imported jobs arrive unpublished. The HerFuture team reviews and publishes them within your job slot limit.
  • Jobs are matched on <id>, so each weekly sync updates the jobs we already have from you rather than duplicating them.

‍

Example

A <jobs> root element containing one <job> element per vacancy.

Wrapping values in <![CDATA[...]]> is recommended (it lets you use & and quotes freely), but plain text works too. Avoid a bare < in your description text, write "less than" instead (e.g. "less than 3 years", not "< 3 years").

‍

<?xml version="1.0" encoding="UTF-8"?>
<jobs>
  <job>
    <id><![CDATA[REQ-1001]]></id>
    <title><![CDATA[Junior Java Developer]]></title>
    <category><![CDATA[full-time]]></category>
    <location><![CDATA[Amsterdam]]></location>
    <description><![CDATA[Build scalable APIs in Java and Spring Boot.]]></description>
    <education><![CDATA[HBO, WO - Bachelor]]></education>
    <languages><![CDATA[EN, NL]]></languages>

    <!-- optional -->
    <experience><![CDATA[zero-to-two]]></experience>
    <salary_min><![CDATA[2500]]></salary_min>
    <salary_max><![CDATA[3000]]></salary_max>
    <salary_currency><![CDATA[EUR]]></salary_currency>
    <application_closing_date><![CDATA[2026-09-30]]></application_closing_date>
    <apply_url><![CDATA[https://example.com/careers/1001]]></apply_url>
  </job>
</jobs>

‍

XML tag specification

If any required field is missing or invalid, that job is skipped, the rest of your feed still imports.

Required fields

Field Description
id Your unique identifier for the vacancy. Must be stable, we use it to update the same job each week. Needs to be unique within your own feed. If the same id appears more than once in a feed, only the last job with that id is imported.
title Job title up to 60 characters. Longer titles are shortened to the first 60 characters.
category One of: internship, traineeship, full-time, part-time. Not case-sensitive.
location City where the job is based, up to 25 characters. Longer locations are shortened to the first 25 characters.
description The job description.
education One or more of: HBO, WO - Bachelor, WO - Master, comma-separated, case-insensitive. Unrecognised values are ignored, as long as at least one valid value remains.
languages One or more two-letter language codes, comma-separated (for example EN, NL). Not case-sensitive. Codes we don't recognise are ignored — if none are recognised, the job is imported without a language requirement, so double-check your codes.

Optional fields

Field Description
experience One of: zero-to-two, two-to-five, five-plus. Strongly recommended, without it we cannot target the job at the right experience level, and it will be shown to entry-level candidates by default. Any other value is ignored and treated as not provided.
salary_min / salary_max Gross monthly amounts, whole numbers, no currency symbols. You can also provide just one of the two. salary_max must be higher than salary_min — if it is lower, no salary is shown on the job. A value that isn't a whole number is ignored.
salary_currency EUR or GBP. Any other value — or no value — defaults to EUR and the salary is shown in euros, so only provide salaries in EUR or GBP.
application_closing_date Date the vacancy closes, in YYYY-MM-DD format. A date we can't read is ignored and the job is imported without a closing date. Dates in the past are not filtered out — remove closed vacancies from your feed instead.

‍

Got questions or need help?

We're here for you! Reach out to us at hello@herfuture.nl and we'll be happy to assist you.

HerFuture on the go