Skip to content

oJobPub JSON Format

oJobPub is meant to be minimalistic, mainly containing meta infos about the job and a short job description, a summary. It is not meant to have all possible data of a job posting: e.g. the process of application is and will not be covered.

Before we go to oJobPub JSON, let's clearify two terms:

  • JSON
  • JSON Schema

What is JSON

JSON (JavaScript Object Notation) is an open, lightweight, text-based data structure format used to store and interchange data. Primarly for machines to write and read while still writable and readable by humans.

What is a JSON Schema

JSON Schema is an IETF standard providing a format for what JSON data is required for a given application and how to interact with it: Applying such standards for a JSON document enforces consistency and data validity.

oJobPub JSON

A possible output could look like the sample below, however, some of the (blue) keys (e.g. workload or jobDescription) are optional while others are required (e.g. jobTitle). This is why we also provide a oJobPub JSON Schema and an online validator tool validator.ojobpub.org to allow verification of the data structure.

Note

JSON might look complicated if you're not familiar with it, but don't worry — you won't have to write it by hand. Once this format is finalized, we'll provide tools to help you generate and validate the structure.

In the following sample, we see first an employer object containing infos about the company: name, location, industry, (main website) url.

Later we find a list of open job positions, called vacancies. In the sample, we only see one vacancy but there is currently no limit how many vacancy entries you add.

{
    "employer": {
        "name": "Acme Corp",
        "location": {
            "city": "New York",
            "country": "US"
        },
        "industry": "Software",
        "url": "https://example.com"
    },
    "vacancies": [
        {
            "datePublished": "2025-08-30",
            "jobCategory": "Engineering",
            "jobTitle": "Software Engineer",
            "jobRef": "SE-2023-001",
            "applyBefore": "2026-12-31",
            "language": "en",
            "jobDescription": "Develop and maintain software applications.",
            "jobType": "permanent",
            "workType": "hybrid",
            "experienceLevel": "mid",
            "workLoad": {
                "minPercentage": 80,
                "maxPercentage": 100
            },
            "tags": ["python", "flask", "backend"],
            "location": {
                "city": "Amsterdam",
                "country": "NL"
            },
            "jobUrl": "https://example.com/job/1"
        }
    ]
}
  1. The employer json object with minimal information about the employer.
  2. The list of vacancies objects with meta information about the job openings.

Tip

While not all properties are required for a valid file, we highly recommend you fill out as much metadata as possible.