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'
   }]
   ...
}