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.letsemploy.org to allow verification of the data structure. Atlassian Inc. made a JSON Schema Viewer to browse through the schema.
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 vacancies, called jobs. In the sample, we only see one vacancy/job but there is currently no limit how many job entries you add.
{
"version": "1.0",
"lastUpdated": "2025-09-13T12:00:00Z",
"employer": {
"name": "Acme Corp",
"location": {
"city": "New York",
"country": "US"
},
"industry": "Software",
"url": "https://example.com"
},
"jobs": [
{
"publishedAt": "2025-08-30",
"category": "Engineering",
"title": "Software Engineer",
"referenceId": "SE-2023-001",
"applyBefore": "2026-12-31",
"language": "en",
"description": "Develop and maintain software applications.",
"jobType": "permanent",
"workType": "hybrid",
"experienceLevel": "mid",
"workLoad": {
"minPercentage": 80,
"maxPercentage": 100
},
"tags": ["python", "flask", "backend"],
"locations":
[
{
"city": "New York",
"country": "US"
},
{
"city": "San Francisco",
"country": "US"
}
],
"salary": {
"minAmount": 70000,
"maxAmount": 120000,
"currency": "USD",
"period": "yearly"
},
"url": "https://example.com/job/1"
}
]
}
- The
employerjson object with minimal information about the employer. - The list of
vacanciesobjects 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.