Skip to content

Commit 34fc6c2

Browse files
committed
feat: added a draft to support a job description schema
1 parent 3f354a4 commit 34fc6c2

File tree

1 file changed

+141
-0
lines changed

1 file changed

+141
-0
lines changed

job-schema.json

Lines changed: 141 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,141 @@
1+
{
2+
"$schema": "http://json-schema.org/draft-04/schema#",
3+
"additionalProperties": true,
4+
"definitions": {
5+
"iso8601": {
6+
"type": "string",
7+
"description": "Similar to the standard date type, but each section after the year is optional. e.g. 2014-06-29 or 2023-04",
8+
"pattern": "^([1-2][0-9]{3}-[0-1][0-9]-[0-3][0-9]|[1-2][0-9]{3}-[0-1][0-9]|[1-2][0-9]{3})$"
9+
}
10+
},
11+
"properties": {
12+
"title": {
13+
"type": "string",
14+
"description": "e.g. Web Developer"
15+
},
16+
"company": {
17+
"type": "string",
18+
"description": "Microsoft"
19+
},
20+
"type": {
21+
"type": "string",
22+
"description": "Full-time, part-time, contract, etc."
23+
},
24+
"date": {
25+
"$ref": "#/definitions/iso8601"
26+
},
27+
"description": {
28+
"type": "string",
29+
"description": "Write a short description about the job"
30+
},
31+
"location": {
32+
"type": "object",
33+
"additionalProperties": true,
34+
"properties": {
35+
"address": {
36+
"type": "string",
37+
"description": "To add multiple address lines, use \\n. For example, 1234 Glücklichkeit Straße\\nHinterhaus 5. Etage li."
38+
},
39+
"postalCode": {
40+
"type": "string"
41+
},
42+
"city": {
43+
"type": "string"
44+
},
45+
"countryCode": {
46+
"type": "string",
47+
"description": "code as per ISO-3166-1 ALPHA-2, e.g. US, AU, IN"
48+
},
49+
"region": {
50+
"type": "string",
51+
"description": "The general region where you live. Can be a US state, or a province, for instance."
52+
}
53+
}
54+
},
55+
"remote": {
56+
"type": "string",
57+
"description": "the level of remote work available",
58+
"enum": [
59+
"Full",
60+
"Hybrid",
61+
"None"
62+
]
63+
},
64+
"salary": {
65+
"type": "string",
66+
"description": "100000"
67+
},
68+
"experience": {
69+
"type": "string",
70+
"description": "Senior or Junior or Mid-level"
71+
},
72+
"responsibilities": {
73+
"type": "array",
74+
"description": "what the job entails",
75+
"additionalItems": false,
76+
"items": {
77+
"type": "string",
78+
"description": "e.g. Build out a new API for our customer base."
79+
}
80+
},
81+
"qualifications": {
82+
"type": "array",
83+
"description": "List out your qualifications",
84+
"additionalItems": false,
85+
"items": {
86+
"type": "string",
87+
"description": "undergraduate degree, etc. "
88+
}
89+
},
90+
"skills": {
91+
"type": "array",
92+
"description": "List out your professional skill-set",
93+
"additionalItems": false,
94+
"items": {
95+
"type": "object",
96+
"additionalProperties": true,
97+
"properties": {
98+
"name": {
99+
"type": "string",
100+
"description": "e.g. Web Development"
101+
},
102+
"level": {
103+
"type": "string",
104+
"description": "e.g. Master"
105+
},
106+
"keywords": {
107+
"type": "array",
108+
"description": "List some keywords pertaining to this skill",
109+
"additionalItems": false,
110+
"items": {
111+
"type": "string",
112+
"description": "e.g. HTML"
113+
}
114+
}
115+
}
116+
}
117+
},
118+
"meta": {
119+
"type": "object",
120+
"description": "The schema version and any other tooling configuration lives here",
121+
"additionalProperties": true,
122+
"properties": {
123+
"canonical": {
124+
"type": "string",
125+
"description": "URL (as per RFC 3986) to latest version of this document",
126+
"format": "uri"
127+
},
128+
"version": {
129+
"type": "string",
130+
"description": "A version field which follows semver - e.g. v1.0.0"
131+
},
132+
"lastModified": {
133+
"type": "string",
134+
"description": "Using ISO 8601 with YYYY-MM-DDThh:mm:ss"
135+
}
136+
}
137+
}
138+
},
139+
"title": "Job Description Schema",
140+
"type": "object"
141+
}

0 commit comments

Comments
 (0)