Reference: Job
In this reference we will go over the attributes of the job object and their valid value ranges.
Required Fields
When creating or updating a job with the endpoint /api/add-job-extern you can provide a field called "requiredFields". requiredFields is an array of either String or Object values. A possible value is for example: ["cv", { type: 'DISTANCEHOME', maxdistance: '30' }], which requires a CV and asks the user for his/her location and an additional reason why they want to apply for when the live away more than 30km.
There are 3 different types of possible values:
1. Predefined documents. A string value for documents. E.g. "certificate:high". You can specify any document types available in "/api/get-documenttypes-extern", by specifing: <type>:<key> (e.g: document:wp or certificate:high).
JSON Example:
var job = {
...
requiredFields: [
"document:recommendation"
]
...
}
2. You can specify following strings for predefined questions
cv: requireds a CV (either hokify cv or uploaded document)
education: ask for last/mentionable education
job: ask for last/metionable job
email: requires an email
phone: the user is required to provide a phone number
pic: user requires to upload a profil picture
birthday: birthday of the user is required
nationality: requires the user to provide his nationality
gender: requires the user to select a gender.
JSON Example:
var job = {
...
requiredFields: [
"education"
]
...
}
3. User defined questions.
By providing an object combined of a TYPE and other attributes, you can create a more complex query to a user.
3.1 OPEN_QUESTION: Open Questions - e.g. motivation question
question: the question ("e.g. "Do you want to buy my car?")
questiontype: internal value to associate the quesiton to something (e.g. "motivational",..). this is not visibile to the user
answerMaxLength: the maximum length of the answer in characters (e.g. 300)
answerMinLength: the minimum characters a user has to type (e.g. 0)
JSON Example:
var job = {
...
requiredFields: [ {
type: 'OPEN_QUESTION',
question: 'What is your favorite color?',
questiontype: 'color',
answerMinLength: 10,
answerMaxLength: 150
}]
...
}
3.2 ADDRESS: ask the user for his/her exact living address
JSON Example:
var job = {
...
requiredFields: [ {
type: 'ADDRESS'
}]
...
}
3.3 DATE: ask for a date
question: the question ("e.g. "When can you start?")
questiontype: internal value to associate the question to something (e.g. "motivational",..). this is not visibile to the user
label: a label for this date..e.g. "Start Date"
monthYearOnly: omnit or "true" .. if set to to true a user is only asked for month and year, and not for a day.
daterange: omnit or "past" or "future". if set to past, the user can only select dates in the past.
JSON Example:
var job = {
...
requiredFields: [ {
type: 'DATE',
question: 'When can you get started?',
questiontype: 'start date',
monthYearOnly: false,
daterange: 'future'
}]
...
}
3.4 DISTANCEHOME: ask the user for his living city and if a certain amount of distance is reached, an additional question why they still want to apply for this job.
maxdistance: the maximum distance in kilometer a user can live away from the job without the need to provide an additional reason why they want to apply. (e.g. 30)
JSON Example:
var job = {
...
requiredFields: [ {
type: 'DISTANCEHOME',
maxdistance: 30
}]
...
}
3.5 EDUCATIONLEVEL: ask the user if they have a specific education level
level: an education ID
JSON Example:
var job = {
...
requiredFields: [ {
type: 'EDUCATIONLEVEL',
level: '582c3c27ff4c0b3709894115' // Matura
}]
...
}
3.6 JOBLEVEL: ask the user if they have a specific job level
mainfield: a 2nd level field ID
yearsexpierence: how many years experience is required in this mainfield
subfield1: alternative field 1, 2nd level field ID
subfield2: alternative field 2, 2nd level field ID
subfield3: alternative field 3, 2nd level field ID
JSON Example:
var job = {
...
requiredFields: [ {
type: 'JOBLEVEL',
mainfield: '56e05f0114fcd6fe094b443b', // Web Entwicklung
yearsexperience: 5
}]
...
}
3.7 MULTIPLE_CHOICE: ask for multiple values that the user can pick from
question: the question ("e.g. "Can you pick some fruits please?")
shortquestion: a short version of the question ("picked fruits")
selectablevalues: a list of possible values, split by ";" .. e.g. (apple;banana;peach)
JSON Example:
var job = {
...
requiredFields: [ {
type: 'MULTIPLE_CHOICE',
question: 'With which tools/frameworks have you worked so far?',
shortquestion: 'tools',
selectablevalues: 'Swagger;Webstorm;Webpack;Vue.js'
}]
...
}
3.8 RANGE: a range slider that allows to pick a value between a min and a max range.
question: the question ("e.g. "How much do you wanna earn?")
shortquestion: a short version of the question ("Salary?")
unit: The unit of the selectable value (e.g. "Euro / Year")
defaultValue: initial Value (e.g. 10)
minValue: minimum value (e.g. 2)
maxValue: maximum value (e.g. 10000)
steps: how many steps between min and max value should be selectable (e.g. 10)
JSON Example:
var job = {
...
requiredFields: [ {
type: 'RANGE',
question: 'How many hours per week can you work?',
shortquestion: 'hours per week',
unit: 'hours/week',
defaultValue: 40,
minValue: 15,
maxValue: 60,
steps: 5
}]
...
}
3.9 SINGLE_CHOICE: ask for mulitple value where the user can pick only one from
question: the question ("e.g. "Can you pick some fruits please?")
shortquestion: a short version of the question ("picked fruits")
selectablevalues: a list of possible values, split by ";" .. e.g. (apple;banana;peach)
JSON Example:
var job = {
...
requiredFields: [ {
type: 'SINGLE_CHOICE',
question: 'What is the BEST programming language?',
shortquestion: 'programming language',
selectablevalues: 'VBA;PHP;ABAP;Fortran'
}]
...
}
3.10. YES_NO: ask a yes or no question
question: the question ("e.g. "Is black a real color?")
shortquestion: a short version of the question ("Color Black?")
JSON Example:
var job = {
...
requiredFields: [ {
type: 'YES_NO',
question: 'Are you comfortable with having fun during work time?',
shortquestion: 'fun'
}]
...
}
3.11. PRIVACY: ask a privacy question / GDPR
title: privacy title
privacyType: an internal type to re-identify the question
required: true or false if this question is required to apply for a job
text: the privacy text (NO HTML is allowed!)
JSON Example:
var job = {
...
requiredFields: [ {
type: 'PRIVACY',
title: 'test',
text: 'this is a privacy test'
}]
...
}