Publication schema
Job publication schema definitions
JSON schema
{
    "$schema": "http://json-schema.org/draft-04/schema", 
    "id": "http://api.xeebo.com/schema/xeebo-rest-publication-schema-v1.0.0.json", 
    "title": "Publication schema", 
    "description": "Job publication schema definitions", 
    "type": "object", 
    "definitions": {
        "versionType": {
            "title": "Schema Version", 
            "description": "Schema version string", 
            "type": "string", 
            "pattern": "^[0-9]\\.[0-9]\\.[0-9]$"
        }, 
        "idType": {
            "title": "Identifier", 
            "description": "Company, job or publication identifier", 
            "type": "string"
        }, 
        "isoDatetimeType": {
            "title": "Datetime", 
            "description": "ISO datetime string", 
            "type": [
                "string", 
                "null"
            ], 
            "format": "datetime"
        }, 
        "countryCodeType": {
            "title": "Country code", 
            "description": "An iso-3166-alpha-2 country code", 
            "type": [
                "string", 
                "null"
            ]
        }, 
        "textType": {
            "title": "Text", 
            "description": "Text including text linebreaks, e.g. \n", 
            "type": [
                "string", 
                "null"
            ]
        }, 
        "textLineType": {
            "title": "TextLine", 
            "description": "Text without linebreaks", 
            "type": [
                "string", 
                "null"
            ]
        }, 
        "htmlSimpleType": {
            "title": "Simple HTML", 
            "description": "HTML including the following elements <br />, <p>, <ul>, <li>, <b>", 
            "type": [
                "string", 
                "null"
            ]
        }, 
        "comNameType": {
            "title": "Company identifier (company id, not real company name)", 
            "description": "The xeebo company identifier. Same as used in your company profile page url.", 
            "$ref": "#/definitions/idType"
        }, 
        "jobNameType": {
            "title": "Job identifier", 
            "description": "A unique job identifier given from your system", 
            "$ref": "#/definitions/idType"
        }, 
        "pubNameType": {
            "title": "Publication identifier", 
            "description": "A unique publication identifier given from your system", 
            "$ref": "#/definitions/idType"
        }, 
        "categoryType": {
            "title": "Category Type", 
            "description": "Job category types, see categories.json", 
            "type": "array", 
            "items": {
                "type": "string"
            }
        }, 
        "sectorType": {
            "title": "Sector Type", 
            "description": "Company sector types, see sectors.json", 
            "type": "array", 
            "items": {
                "type": "string"
            }
        }, 
        "headlineType": {
            "title": "Publication headline", 
            "description": "The publication headline", 
            "$ref": "#/definitions/textLineType"
        }, 
        "introType": {
            "title": "Publication intro", 
            "description": "The publication intro text", 
            "$ref": "#/definitions/htmlSimpleType"
        }, 
        "titleType": {
            "title": "Job title", 
            "description": "The publication job title (required)", 
            "type": "string"
        }, 
        "captionType": {
            "title": "Job title caption", 
            "description": "The publication job title caption aka sub title", 
            "$ref": "#/definitions/textLineType"
        }, 
        "descriptionType": {
            "title": "Job description", 
            "description": "The publication description text", 
            "$ref": "#/definitions/htmlSimpleType"
        }, 
        "requirementType": {
            "title": "Job requirement", 
            "description": "The job requirement text", 
            "$ref": "#/definitions/htmlSimpleType"
        }, 
        "dutyType": {
            "title": "Job duty", 
            "description": "The job duty text", 
            "$ref": "#/definitions/htmlSimpleType"
        }, 
        "benefitType": {
            "title": "Job benefit", 
            "description": "The job benefit text", 
            "$ref": "#/definitions/htmlSimpleType"
        }, 
        "infoType": {
            "title": "Job info", 
            "description": "The job info text", 
            "$ref": "#/definitions/htmlSimpleType"
        }, 
        "summaryType": {
            "title": "Job summary", 
            "description": "The job summary text", 
            "$ref": "#/definitions/htmlSimpleType"
        }, 
        "footerType": {
            "title": "Publication footer", 
            "description": "The publication footer text", 
            "$ref": "#/definitions/htmlSimpleType"
        }, 
        "categoriesType": {
            "title": "Job categories", 
            "description": "A list of job categories", 
            "$ref": "#/definitions/categoryType"
        }, 
        "sectorsType": {
            "title": "Company sectors", 
            "description": "A list of company sectors", 
            "$ref": "#/definitions/sectorType"
        }, 
        "employmentType": {
            "title": "Job employment type", 
            "description": "The job employment type", 
            "type": [
                "string", 
                "null"
            ], 
            "enum": [
                "permanent", 
                "temporary", 
                "apprenticeship", 
                "internship", 
                "tryout", 
                "holiday", 
                "freelance", 
                "supplementary"
            ]
        }, 
        "occupationType": {
            "title": "Occupation", 
            "description": "The occupation (simple job name)", 
            "type": "string"
        }, 
        "workloadType": {
            "title": "Job workload", 
            "description": "The job workload given as min and max integer", 
            "type": "object", 
            "properties": {
                "min": {
                    "title": "Minimal amount of workload", 
                    "description": "Minimal amount of workload in percent", 
                    "type": [
                        "integer", 
                        "null"
                    ], 
                    "enum": [
                        0, 
                        10, 
                        20, 
                        30, 
                        40, 
                        50, 
                        60, 
                        70, 
                        80, 
                        90, 
                        100
                    ]
                }, 
                "max": {
                    "title": "Maximal workload", 
                    "description": "Maximal amount of workload in percent", 
                    "type": [
                        "integer", 
                        "null"
                    ], 
                    "enum": [
                        10, 
                        20, 
                        30, 
                        40, 
                        50, 
                        60, 
                        70, 
                        80, 
                        90, 
                        100
                    ]
                }
            }, 
            "required": [
                "min", 
                "max"
            ], 
            "additionalProperties": false
        }, 
        "careerStatusType": {
            "title": "Career status", 
            "description": "The minmal career status reuqired for this job. 10:Learner, 20:Student 30:Job Beginner 40:Professional experienced 50:Supervisor 60:Manager 70:Director", 
            "type": "string", 
            "enum": [
                "10", 
                "20", 
                "30", 
                "40", 
                "50", 
                "60", 
                "70"
            ]
        }, 
        "positionType": {
            "title": "Postion type", 
            "description": "The job position type. 10:Employee, 20:Position with responsibilities, 30:Executive position", 
            "type": "string", 
            "enum": [
                "10", 
                "20", 
                "30"
            ]
        }, 
        "workExperienceYearsType": {
            "title": "Work experience years", 
            "description": "The minimal work experience years required for this job", 
            "type": "integer"
        }, 
        "minimalAgeYears": {
            "title": "Minimal age", 
            "description": "The minimal age in years required for this job", 
            "type": "integer"
        }, 
        "skillsType": {
            "title": "Skills", 
            "description": "A list of skills required for this job", 
            "type": "array", 
            "items": {
                "type": "string"
            }
        }, 
        "educationFieldType": {
            "title": "Eduction Field", 
            "description": "The international standard classification of Education (Level 2) required for this job. http://www.unesco.org/education/information/nfsunesco/doc/isced_1997.htm", 
            "type": "string", 
            "enum": [
                "01", 
                "09", 
                "14", 
                "21", 
                "22", 
                "31", 
                "32", 
                "34", 
                "38", 
                "42", 
                "44", 
                "46", 
                "48", 
                "52", 
                "54", 
                "58", 
                "62", 
                "64", 
                "72", 
                "76", 
                "81", 
                "84", 
                "85", 
                "86"
            ]
        }, 
        "educationLevelType": {
            "title": "Eduction Level", 
            "description": "The educational background required for this job. European Qualifications Framework (EQF) Level, http://ec.europa.eu/education/lifelong-learning-policy/eqf_en.htm", 
            "type": "string", 
            "enum": [
                "1", 
                "2", 
                "3", 
                "4", 
                "5", 
                "6", 
                "7", 
                "8"
            ]
        }, 
        "educationType": {
            "title": "Education", 
            "description": "Education description", 
            "type": "object", 
            "properties": {
                "field": {
                    "$ref": "#/definitions/educationFieldType"
                }, 
                "level": {
                    "$ref": "#/definitions/educationLevelType"
                }
            }
        }, 
        "criteriaType": {
            "title": "Search criteria", 
            "description": "Searchable job criteria", 
            "type": "object", 
            "properties": {
                "age": {
                    "$ref": "#/definitions/minimalAgeYears"
                }, 
                "categories": {
                    "$ref": "#/definitions/categoriesType"
                }, 
                "sectors": {
                    "$ref": "#/definitions/sectorsType"
                }, 
                "education": {
                    "$ref": "#/definitions/educationType"
                }, 
                "employment": {
                    "$ref": "#/definitions/employmentType"
                }, 
                "experience": {
                    "$ref": "#/definitions/workExperienceYearsType"
                }, 
                "occupation": {
                    "$ref": "#/definitions/occupationType"
                }, 
                "position": {
                    "$ref": "#/definitions/positionType"
                }, 
                "skills": {
                    "$ref": "#/definitions/skillsType"
                }, 
                "status": {
                    "$ref": "#/definitions/careerStatusType"
                }, 
                "workload": {
                    "$ref": "#/definitions/workloadType"
                }
            }, 
            "additionalProperties": false
        }, 
        "addressType": {
            "title": "Company address", 
            "description": "The company address", 
            "type": "object", 
            "properties": {
                "name": {
                    "title": "Name", 
                    "description": "Workplace location, department or company name", 
                    "type": [
                        "string", 
                        "null"
                    ]
                }, 
                "department": {
                    "title": "Workplace department", 
                    "description": "The department of address line or first address line", 
                    "type": [
                        "string", 
                        "null"
                    ]
                }, 
                "poBox": {
                    "title": "Post office box", 
                    "description": "The company post office box", 
                    "type": [
                        "string", 
                        "null"
                    ]
                }, 
                "street": {
                    "title": "Street", 
                    "type": [
                        "string", 
                        "null"
                    ]
                }, 
                "zip": {
                    "title": "Postal code", 
                    "description": "The postal code reference for a given city", 
                    "type": [
                        "string", 
                        "null"
                    ]
                }, 
                "city": {
                    "title": "The location city", 
                    "type": [
                        "string", 
                        "null"
                    ]
                }, 
                "state": {
                    "title": "The location state", 
                    "type": [
                        "string", 
                        "null"
                    ]
                }, 
                "country": {
                    "title": "Country code", 
                    "description": "The aplha-2 country code", 
                    "type": [
                        "string", 
                        "null"
                    ], 
                    "pattern": "^[A-Z]{2}$"
                }
            }, 
            "additionalProperties": false
        }, 
        "contactType": {
            "title": "Company contact", 
            "description": "The company contact person", 
            "type": "object", 
            "properties": {
                "salutation": {
                    "title": "Salutation", 
                    "description": "The contact persons salutation female (F), mae (M)", 
                    "type": [
                        "string", 
                        "null"
                    ], 
                    "enum": [
                        "M", 
                        "F"
                    ]
                }, 
                "firstName": {
                    "title": "Firstname", 
                    "description": "The contact persons firstname", 
                    "type": [
                        "string", 
                        "null"
                    ]
                }, 
                "lastName": {
                    "title": "Lastname", 
                    "description": "The contact persons lastname", 
                    "type": [
                        "string", 
                        "null"
                    ]
                }, 
                "email": {
                    "title": "Salutation", 
                    "description": "The contact persons email contact address", 
                    "type": [
                        "string", 
                        "null"
                    ], 
                    "format": "email"
                }
            }, 
            "additionalProperties": false
        }, 
        "workplaceType": {
            "title": "Job workplace", 
            "description": "The job workplace identifier or workplace description", 
            "type": "object", 
            "properties": {
                "id": {
                    "title": "Workplace ID", 
                    "description": "Workplace id (external identifier) as defined in xeebo", 
                    "type": [
                        "string", 
                        "null"
                    ]
                }, 
                "name": {
                    "title": "Name", 
                    "description": "Workplace location, department or company name", 
                    "type": [
                        "string", 
                        "null"
                    ]
                }, 
                "department": {
                    "title": "Workplace department", 
                    "description": "The department of address line or first address line", 
                    "type": [
                        "string", 
                        "null"
                    ]
                }, 
                "street": {
                    "title": "Street", 
                    "type": [
                        "string", 
                        "null"
                    ]
                }, 
                "zip": {
                    "title": "Postal code", 
                    "description": "The postal code reference for a given city", 
                    "type": [
                        "string", 
                        "null"
                    ]
                }, 
                "city": {
                    "title": "The location city", 
                    "type": [
                        "string", 
                        "null"
                    ]
                }, 
                "state": {
                    "title": "The location state", 
                    "type": [
                        "string", 
                        "null"
                    ]
                }, 
                "country": {
                    "title": "Country code", 
                    "description": "The aplha-2 country code", 
                    "type": [
                        "string", 
                        "null"
                    ], 
                    "pattern": "^[A-Z]{2}$"
                }
            }, 
            "additionalProperties": false
        }, 
        "countryType": {
            "title": "Job location country", 
            "description": "The job location country", 
            "$ref": "#/definitions/countryCodeType"
        }, 
        "localeType": {
            "title": "Publication language", 
            "description": "The job publication text language locale as lower case iso-639-alpha-2 language locale code", 
            "type": [
                "string", 
                "null"
            ]
        }, 
        "publishedType": {
            "title": "Publish marker", 
            "description": "Boolean marker for published publications", 
            "type": "boolean"
        }, 
        "docType": {
            "title": "Document", 
            "description": "Document", 
            "type": "object", 
            "properties": {
                "typ": {
                    "title": "Document type", 
                    "description": "The document type", 
                    "type": "string", 
                    "enum": [
                        "letter", 
                        "resume", 
                        "certificate", 
                        "diploma", 
                        "qualification", 
                        "check", 
                        "other"
                    ]
                }, 
                "maxAmount": {
                    "title": "Maximal amount of documents", 
                    "description": "The maximal amount of documents allowed for upload of this document type", 
                    "type": [
                        "integer", 
                        "null"
                    ]
                }, 
                "minAmount": {
                    "title": "Minimal amount of documents", 
                    "description": "The minimal amount of documents allowed for upload of this document type", 
                    "type": [
                        "integer", 
                        "null"
                    ]
                }, 
                "required": {
                    "title": "Document required", 
                    "description": "Marks the document as required", 
                    "type": [
                        "boolean", 
                        "null"
                    ]
                }, 
                "size": {
                    "title": "Document data size", 
                    "description": "The document data size in bytes", 
                    "type": [
                        "integer", 
                        "null"
                    ]
                }
            }, 
            "additionalProperties": false
        }, 
        "documentsType": {
            "title": "Application documents", 
            "description": "List of required and optional application documents", 
            "type": "array", 
            "items": {
                "$ref": "#/definitions/docType"
            }, 
            "minItems": 0
        }, 
        "questionOptionType": {
            "title": "Question Option", 
            "description": "The question option type", 
            "properties": {
                "label": {
                    "type": [
                        "integer", 
                        "string", 
                        "null"
                    ]
                }, 
                "value": {
                    "type": [
                        "integer", 
                        "string", 
                        "null"
                    ]
                }
            }, 
            "additionalProperties": false
        }, 
        "questionBaseType": {
            "title": "Question", 
            "description": "The application question definition", 
            "type": "object", 
            "properties": {
                "id": {
                    "title": "Question id", 
                    "description": "The application question id", 
                    "type": "string"
                }, 
                "title": {
                    "title": "Question title", 
                    "description": "The application question title", 
                    "type": "string"
                }, 
                "description": {
                    "title": "Question description", 
                    "description": "The application question description", 
                    "type": [
                        "string", 
                        "null"
                    ]
                }, 
                "required": {
                    "title": "Marks the question as required", 
                    "type": "boolean"
                }
            }
        }, 
        "checkBoxQuestionType": {
            "title": "Checkbox Question", 
            "description": "The checkbox question type", 
            "type": "object", 
            "allOf": [
                {
                    "$ref": "#/definitions/questionBaseType"
                }, 
                {
                    "properties": {
                        "typ": {
                            "title": "Question type", 
                            "description": "The question type", 
                            "type": "string", 
                            "enum": [
                                "checkbox"
                            ]
                        }, 
                        "default": {
                            "title": "Default question value", 
                            "description": "The default question value", 
                            "type": "array", 
                            "items": {
                                "type": [
                                    "integer", 
                                    "string", 
                                    "null"
                                ]
                            }, 
                            "minItems": 0
                        }, 
                        "options": {
                            "title": "Question options", 
                            "description": "The application question text", 
                            "type": "array", 
                            "items": {
                                "$ref": "#/definitions/questionOptionType"
                            }
                        }
                    }
                }
            ]
        }, 
        "radioQuestionType": {
            "title": "Radio Question", 
            "description": "The radio question type", 
            "type": "object", 
            "allOf": [
                {
                    "$ref": "#/definitions/questionBaseType"
                }, 
                {
                    "properties": {
                        "typ": {
                            "title": "Question type", 
                            "description": "The question type", 
                            "type": "string", 
                            "enum": [
                                "radio"
                            ]
                        }, 
                        "default": {
                            "title": "Default question value", 
                            "description": "The default question value", 
                            "type": [
                                "integer", 
                                "string", 
                                "null"
                            ]
                        }, 
                        "options": {
                            "title": "Question options", 
                            "description": "The application question text", 
                            "type": "array", 
                            "items": {
                                "$ref": "#/definitions/questionOptionType"
                            }
                        }
                    }
                }
            ]
        }, 
        "selectQuestionType": {
            "title": "Select Question", 
            "description": "The select question type", 
            "type": "object", 
            "allOf": [
                {
                    "$ref": "#/definitions/questionBaseType"
                }, 
                {
                    "properties": {
                        "typ": {
                            "title": "Question type", 
                            "description": "The question type", 
                            "type": "string", 
                            "enum": [
                                "select"
                            ]
                        }, 
                        "default": {
                            "title": "Default question value", 
                            "description": "The default question value", 
                            "type": [
                                "integer", 
                                "string", 
                                "null"
                            ]
                        }, 
                        "options": {
                            "title": "Question options", 
                            "description": "The application question text", 
                            "type": "array", 
                            "items": {
                                "$ref": "#/definitions/questionOptionType"
                            }
                        }
                    }
                }
            ]
        }, 
        "multiSelectQuestionType": {
            "title": "Multi Select Question", 
            "description": "The multi select question type", 
            "type": "object", 
            "allOf": [
                {
                    "$ref": "#/definitions/questionBaseType"
                }, 
                {
                    "properties": {
                        "typ": {
                            "title": "Question type", 
                            "description": "The question type", 
                            "type": "string", 
                            "enum": [
                                "multiselect"
                            ]
                        }, 
                        "default": {
                            "title": "Default question value", 
                            "description": "The default question value", 
                            "type": "array", 
                            "items": {
                                "type": [
                                    "integer", 
                                    "string", 
                                    "null"
                                ]
                            }, 
                            "minItems": 0
                        }, 
                        "options": {
                            "title": "Question options", 
                            "description": "The application question text", 
                            "type": "array", 
                            "items": {
                                "$ref": "#/definitions/questionOptionType"
                            }
                        }
                    }
                }
            ]
        }, 
        "textAreaQuestionType": {
            "title": "Multiline Text Question", 
            "description": "The multiline text (textarea) question type", 
            "type": "object", 
            "allOf": [
                {
                    "$ref": "#/definitions/questionBaseType"
                }, 
                {
                    "properties": {
                        "typ": {
                            "title": "Question type", 
                            "description": "The question type", 
                            "type": "string", 
                            "enum": [
                                "textarea"
                            ]
                        }, 
                        "default": {
                            "title": "Default text value", 
                            "description": "The default answer text value", 
                            "type": [
                                "string", 
                                "null"
                            ]
                        }
                    }
                }
            ]
        }, 
        "textLineQuestionType": {
            "title": "Text Line Question", 
            "description": "The single text line question type", 
            "type": "object", 
            "allOf": [
                {
                    "$ref": "#/definitions/questionBaseType"
                }, 
                {
                    "properties": {
                        "typ": {
                            "title": "Question type", 
                            "description": "The question type", 
                            "type": "string", 
                            "enum": [
                                "textline"
                            ]
                        }, 
                        "default": {
                            "title": "Default text value", 
                            "description": "The default answer text value", 
                            "type": [
                                "string", 
                                "null"
                            ]
                        }
                    }
                }
            ]
        }, 
        "questionGroupType": {
            "title": "Question Group", 
            "description": "The application question group group definition", 
            "type": "object", 
            "properties": {
                "id": {
                    "title": "Question group id", 
                    "description": "The application question group group id", 
                    "type": "string"
                }, 
                "typ": {
                    "title": "Question group type", 
                    "description": "The application question group type", 
                    "type": "string", 
                    "enum": [
                        "group"
                    ]
                }, 
                "title": {
                    "title": "Question group text", 
                    "description": "The application question group text", 
                    "type": "string"
                }, 
                "description": {
                    "title": "Question group description", 
                    "description": "The application question group description", 
                    "type": [
                        "string", 
                        "null"
                    ]
                }, 
                "questions": {
                    "title": "Question group questions", 
                    "description": "The application question group questions", 
                    "type": "array", 
                    "items": {
                        "anyOf": [
                            {
                                "$ref": "#/definitions/checkBoxQuestionType"
                            }, 
                            {
                                "$ref": "#/definitions/radioQuestionType"
                            }, 
                            {
                                "$ref": "#/definitions/selectQuestionType"
                            }, 
                            {
                                "$ref": "#/definitions/multiSelectQuestionType"
                            }, 
                            {
                                "$ref": "#/definitions/textAreaQuestionType"
                            }, 
                            {
                                "$ref": "#/definitions/textLineQuestionType"
                            }
                        ]
                    }, 
                    "minItems": 0
                }
            }, 
            "additionalProperties": false
        }, 
        "questionnaireType": {
            "title": "Application questionnaire", 
            "description": "Questionnaire", 
            "type": "object", 
            "properties": {
                "id": {
                    "title": "Questionnaire id", 
                    "description": "The application Questionnaire id", 
                    "type": "string"
                }, 
                "typ": {
                    "title": "Questionnaire type", 
                    "description": "The questionnaire type", 
                    "type": "string", 
                    "enum": [
                        "questionnaire"
                    ]
                }, 
                "title": {
                    "title": "Questionnaire text", 
                    "description": "The application questionnaire text", 
                    "type": "string"
                }, 
                "description": {
                    "title": "Questionnaire description", 
                    "description": "The application questionnaire description", 
                    "type": [
                        "string", 
                        "null"
                    ]
                }, 
                "groups": {
                    "title": "Questionnaire groups", 
                    "description": "The application questionnaire groups", 
                    "type": "array", 
                    "items": {
                        "$ref": "#/definitions/questionGroupType"
                    }, 
                    "minItems": 0
                }
            }, 
            "additionalProperties": false
        }, 
        "questionsType": {
            "title": "Application questionnaires", 
            "description": "List of required and optional application questionnaires", 
            "type": "array", 
            "items": {
                "anyOf": [
                    {
                        "$ref": "#/definitions/checkBoxQuestionType"
                    }, 
                    {
                        "$ref": "#/definitions/radioQuestionType"
                    }, 
                    {
                        "$ref": "#/definitions/selectQuestionType"
                    }, 
                    {
                        "$ref": "#/definitions/multiSelectQuestionType"
                    }, 
                    {
                        "$ref": "#/definitions/textAreaQuestionType"
                    }, 
                    {
                        "$ref": "#/definitions/textLineQuestionType"
                    }, 
                    {
                        "$ref": "#/definitions/questionGroupType"
                    }, 
                    {
                        "$ref": "#/definitions/questionnaireType"
                    }
                ]
            }, 
            "minItems": 0
        }, 
        "startDateType": {
            "title": "Publication start date", 
            "description": "Date where the publication starts", 
            "$ref": "#/definitions/isoDatetimeType"
        }, 
        "endDateType": {
            "title": "Publication end date", 
            "description": "Date where the publication ends", 
            "$ref": "#/definitions/isoDatetimeType"
        }, 
        "createdDateType": {
            "title": "Publication created date", 
            "description": "Date where the publication was created", 
            "$ref": "#/definitions/isoDatetimeType"
        }
    }
}
JSON schema data description
Path/Attribute Title Description Required