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

    1. cv: requireds a CV (either hokify cv or uploaded document)

    2. education: ask for last/mentionable education

    3. job: ask for last/metionable job

    4. email: requires an email

    5. phone: the user is required to provide a phone number

    6. pic: user requires to upload a profil picture

    7. birthday: birthday of the user is required

    8. nationality: requires the user to provide his nationality

    9. 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

      1. question: the question ("e.g. "Do you want to buy my car?")

      2. questiontype: internal value to associate the quesiton to something (e.g. "motivational",..). this is not visibile to the user

      3. answerMaxLength: the maximum length of the answer in characters (e.g. 300)

      4. 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

      1. question: the question ("e.g. "When can you start?")

      2. questiontype: internal value to associate the question to something (e.g. "motivational",..). this is not visibile to the user

      3. label: a label for this date..e.g. "Start Date"

      4. monthYearOnly: omnit or "true" .. if set to to true a user is only asked for month and year, and not for a day.

      5. 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.

      1. 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

      1. 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

      1. mainfield: a 2nd level field ID

      2. yearsexpierence: how many years experience is required in this mainfield

      3. subfield1: alternative field 1, 2nd level field ID

      4. subfield2: alternative field 2, 2nd level field ID

      5. 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

      1. question: the question ("e.g. "Can you pick some fruits please?")

      2. shortquestion: a short version of the question ("picked fruits")

      3. 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.

      1. question: the question ("e.g. "How much do you wanna earn?")

      2. shortquestion: a short version of the question ("Salary?")

      3. unit: The unit of the selectable value (e.g. "Euro / Year")

      4. defaultValue: initial Value (e.g. 10)

      5. minValue: minimum value (e.g. 2)

      6. maxValue: maximum value (e.g. 10000)

      7. 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

      1. question: the question ("e.g. "Can you pick some fruits please?")

      2. shortquestion: a short version of the question ("picked fruits")

      3. 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

      1. question: the question ("e.g. "Is black a real color?")

      2. 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

      1. title: privacy title

      2. privacyType: an internal type to re-identify the question

      3. required: true or false if this question is required to apply for a job

      4. text: the privacy text (NO HTML is allowed!)

JSON Example:

var job = {

...

requiredFields: [ {

type: 'PRIVACY',

title: 'test',

text: 'this is a privacy test'

}]

...

}