Skip to content

Commit 37cd3de

Browse files
committed
extend the docs
1 parent 6e35a9a commit 37cd3de

File tree

6 files changed

+71
-14
lines changed

6 files changed

+71
-14
lines changed

docs/faq.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
## Why a new format?
2+
3+
There are already existing formats for job ads, the most promising of which [job-posting JSON Schema](https://schema.org/JobPosting) seems also be supported by Google [^1].
4+
5+
However, a bot must crawl the entire website to find the job ads and it is bloated with data. For us, this format seems to be most useful for larger search bots such as Google. oJobPub does not restrict you from using this format on your job description website as well; it complements it.
6+
7+
Another schema that is very similar to ours is [*json-job*](http://lukasz-madon.github.io/json-job/). It is somewhat more comprehensive, but the project has not been active for over 10 years. It does not define where this data should be placed on your website. We could have used it, but we didn't want to wake sleeping daemons.
8+
9+
[^1]: [Google documentation about job-posting](https://developers.google.com/search/docs/appearance/structured-data/job-posting?hl=en)
10+
11+
## How can I help
12+
13+
14+
## How can I join
15+

docs/how/index.md

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ You need **your own website**: e.g. www.example.com, on which you publish your j
66
## 2. Create a ojobpub.json
77
Create file `/.well-known/ojobpub.json` (all lower case!) in a **specific JSON format containing structured meta information** about your job openings and link to the full job description on your website.
88

9+
!!! tip "file or application?"
10+
We write about ojobpub.json to be a static file because it the simplest case, how to provide the data. But there is no limitation, that this endpoint could be an application or dynamic script to provide the data.
11+
912
## 3. Validate
1013

1114
To validate the JSON data format, we provide a [oJobPub JSON schema](https://github.com/ojobpub/schema) and an app [validator.ojobpub.org](https://validator.ojobpub.org) to help validate the data file.
@@ -18,12 +21,7 @@ This helps us to see, how things are growing. Once this format is known and etab
1821

1922
## 5. Spread the Word
2023

21-
<<<<<<< Updated upstream
2224
Let others know you are publishing job openings using oJobPub by **adding a link** on your job site:
23-
=======
24-
Let others know you are publishing job openings using oJobPub by adding a link on your job site:
25-
26-
>>>>>>> Stashed changes
2725
```html
2826
<a href="https://ojobpub.org">Supports oJobPub.org</a>
2927
```

docs/how/ojobpub-format.md

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# oJobPub JSON Format
22

3+
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.
4+
35
Before we go to oJobPub JSON, let's clearify two terms:
46

57
- JSON
@@ -11,16 +13,19 @@ JSON (JavaScript Object Notation) is an open, lightweight, text-based data struc
1113

1214
## What is a JSON Schema
1315

14-
[JSON Schema](https://json-schema.org) 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 enforce consistency and data validity,
16+
[JSON Schema](https://json-schema.org) 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.
1517

1618
## oJobPub JSON
1719

18-
oJobPub is meant to be minimalistic, mainly containing meta infos about the job and a short 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.
20+
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](https://raw.githubusercontent.com/ojobpub/schema/refs/heads/main/v1/ojobpub.json) and an online validator tool [validator.ojobpub.org](https://validator.ojobpub.org) to allow verification of the data structure.
21+
1922

2023
!!! note
2124
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.
2225

23-
An possible output could look like this, 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](https://raw.githubusercontent.com/ojobpub/schema/refs/heads/main/v1/ojobpub.json) and an online validator tool [validator.ojobpub.org](https://validator.ojobpub.org) verify your written oJobPub JSON.
26+
In the following sample, we see first an `employer` object containing infos about the company: *name*, *location*, *industry*, (main website) *url*.
27+
28+
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.
2429

2530
```json
2631
{

docs/index.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ oJobPub is an initiative with the goal, to create a simlified, optimized and eff
44

55
## Benfits
66

7-
- **Efficient**: Employers manage open job positions in one place.
8-
- **Optimized**: Search engines index structured data.
9-
- **Reliable**: Candidates find current job openings more reliable.
10-
- **In Control**: Employers keep control of their data and application process.
11-
- **No additional costs** beyond what employers already payed for domain and web hosting.
7+
- [x] **Efficient**: Employers manage open job positions in one place.
8+
- [x] **Optimized**: Search engines index structured data.
9+
- [x] **Reliable**: Candidates find current job openings more reliable.
10+
- [x] **In Control**: Employers keep control of their data and application process.
11+
- [x] **No additional costs** beyond what employers already payed for domain and web hosting.

docs/project.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# About the Project
2+
3+
To establish a JSON schema as a standard format for publishing vacancies we follow the following strategy:
4+
5+
## 1. **Define a Governance Model**
6+
7+
First, we need to decide who will be in charge of maintaining the standard. This could be a non-profit organization, a consortium of industry players, or an open-source community. A clear governance model ensures the standard evolves transparently and in a way that benefits everyone.
8+
9+
* **Create a Core Team:** Assemble a small group of stakeholders, including recruiters, developers, and job board operators, to guide the initial development.
10+
* **Establish a Decision-Making Process:** Determine how changes to the schema will be proposed, discussed, and approved. This could be a formal voting process or a consensus-based approach.
11+
12+
## 2. **Build a Community**
13+
14+
A standard is only useful if it's widely adopted. This requires active engagement with the community.
15+
16+
* **Publish the Schema:** Make the schema publicly available on a platform like GitHub. Use a versioning system (e.g., `v1`, `v2`) to manage changes.
17+
* **Create Documentation:** Write clear and comprehensive documentation. Explain what each field is for, provide examples, and offer guidance on how to implement the schema.
18+
* **Launch a Website or Forum:** Create a dedicated space for discussion, bug reports, and feature requests. This is where you'll gather feedback and build momentum.
19+
* **Engage with Key Stakeholders:** Reach out to stakeholders. Show them the benefits of the standard and encourage them to participate.
20+
21+
## 3. **Formalize the Standard**
22+
23+
Once the schema is mature and has received sufficient community feedback, you can pursue formal recognition.
24+
25+
* **Write a Specification:** Turn the schema and its documentation into a formal specification document. This should include a detailed description of every field, data types, and any business rules.
26+
27+
## 4. **Promote Adoption and Provide Tools**
28+
29+
Promotion is key to making the standard a success.
30+
31+
* **Develop Client Libraries:** Create official libraries in popular programming languages (e.g., Python, JavaScript) to make it easy for developers to use the schema.
32+
* **Build Validation Tools:** Offer a free online tool where anyone can paste their JSON and validate it against the schema. This helps catch errors and encourages correct usage.
33+
* **Showcase Success Stories:** As companies start to adopt the standard, highlight their success. This provides social proof and demonstrates the real-world value of the format.
34+
* **Maintain and Iterate:** Continue to solicit feedback and release new versions of the schema as the industry evolves.

mkdocs.yml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
site_name: "oJobPub - Open Job Publishing Initiative"
22

33
nav:
4-
- About: index.md
4+
- Intro: index.md
55
- Why: why.md
66
- Solution: solution.md
77
- How:
88
- Overview: how/index.md
99
- ojobpub.json: how/ojobpub-format.md
1010
- FAQ: faq.md
11+
- About: project.md
1112

1213
theme:
1314
font: false
@@ -44,6 +45,10 @@ markdown_extensions:
4445
- pymdownx.details
4546
- admonition
4647
- attr_list
48+
- pymdownx.tasklist:
49+
custom_checkbox: true
50+
- def_list
51+
- footnotes
4752

4853
plugins:
4954
- search

0 commit comments

Comments
 (0)