{
  "openapi": "3.0.1",
  "info": {
    "title": "EasyCruit Reporting Service",
    "description": "Service for EasyCruit data reports management. <br/><b>Authorization</b> <br/>To use this API, create an application in <a href=\"https://oauth.developers.visma.com\">Visma Connect production</a> or <a href=\"https://oauth.developers.stagaws.visma.com\">Visma Connect stage and internal test</a> and enable integration with EasyCruit public API. <br/>Your EasyCruit user must have Visma Connect ACL enabled. <br/>Obtain an access token for a your tenant using your application credentials and the required API scope. <br/>Use this token in the Authorization: Bearer {token} HTTP header for all API requests. <br/><b>C# code examples</b>: <a href=\"https://github.com/Visma-EasyCruit/Visma.EasyCruit.Api.Examples/tree/main/API/ApiExamples\">here</a> <br/><b>Postman collection</b>: <a href=\"https://github.com/Visma-EasyCruit/Visma.EasyCruit.Api.Examples/tree/main/API\">here</a>",
    "contact": {
      "name": "Visma EasyCruit",
      "email": "ve-d-proddevvisma.neteasycruit@visma.com"
    },
    "version": "v1"
  },
  "paths": {
    "/api/reporting/v1/data-extract/tenants/{TenantId}/applications": {
      "get": {
        "tags": [
          "Reporting"
        ],
        "summary": "Get application report.",
        "description": "<b>Authorization</b> \\\n            This endpoint requires Bearer token authentication. Enter the token via the Authorize button at the top. \\\n            Requires reporting:read-application-report or reporting:read scope. \\\n            <b>Description</b> \\\n            Extracts all applications for a specific period. \\\n            The exported information includes: \\\n            • Candidate details \\\n            • Application status and source \\\n            • Vacancy and department information \\\n            • Dates of progress milestones \\\n            • Date of last communication \\\n            <b>Content Negotiation</b> \\\n            This endpoint supports multiple response formats based on the Accept header: \\\n            • application/vnd.openxmlformats-officedocument.spreadsheetml.sheet - Returns Excel spreadsheet \\\n            • application/json - Returns JSON data \\\n            • application/stream+json - Returns streaming JSON response",
        "parameters": [
          {
            "name": "Departments",
            "in": "query",
            "required": true,
            "schema": {
              "uniqueItems": true,
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              }
            }
          },
          {
            "name": "TenantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "FromDate",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "ToDate",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "Locale",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Spreadsheet is generated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ApplicationExtract"
                  }
                }
              },
              "application/stream+json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ApplicationExtract"
                  }
                }
              },
              "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ApplicationExtract"
                  }
                }
              },
              "text/csv": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ApplicationExtract"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/stream+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/csv": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/stream+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/csv": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden or tenant does not have reports ACL",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/stream+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/csv": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/reporting/v1/data-extract/tenants/{TenantId}/vacancies": {
      "get": {
        "tags": [
          "Reporting"
        ],
        "summary": "Get vacancy report.",
        "description": "<b>Authorization</b> \\\n            This endpoint requires Bearer token authentication. Enter the token via the Authorize button at the top. \\\n            Requires reporting:read-vacancy-report or reporting:read scope. \\\n            <b>Description</b> \\\n            Extracts all vacancies for a specific period. \\\n            The exported information includes: \\\n            • Vacancy reference number \\\n            • Vacancy progress dates \\\n            • Vacancy approval information \\\n            • Contact persons \\\n            • Vacancy questions \\\n            <b>Content Negotiation</b> \\\n            This endpoint supports multiple response formats based on the Accept header: \\\n            • application/vnd.openxmlformats-officedocument.spreadsheetml.sheet - Returns Excel spreadsheet \\\n            • application/json - Returns JSON data \\\n            • application/stream+json - Returns streaming JSON response",
        "parameters": [
          {
            "name": "Departments",
            "in": "query",
            "required": true,
            "schema": {
              "uniqueItems": true,
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              }
            }
          },
          {
            "name": "TenantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "FromDate",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "ToDate",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "Locale",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Spreadsheet is generated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VacancyExtract"
                  }
                }
              },
              "application/stream+json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VacancyExtract"
                  }
                }
              },
              "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VacancyExtract"
                  }
                }
              },
              "text/csv": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VacancyExtract"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/stream+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/csv": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/stream+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/csv": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden or tenant does not have reports ACL",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/stream+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/csv": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/reporting/v1/data-extract/tenants/{TenantId}/posting-channels": {
      "get": {
        "tags": [
          "Reporting"
        ],
        "summary": "Get posting channel report.",
        "description": "<b>Authorization</b> \\\n            This endpoint requires Bearer token authentication. Enter the token via the Authorize button at the top. \\\n            Requires reporting:read-posting-channel-report or reporting:read scope. \\\n            <b>Description</b> \\\n            Extracts all jobs posted for a specific period. \\\n            The exported information includes: \\\n            • Posting details \\\n            • Statistics of applicants / hires per posting \\\n            <b>Content Negotiation</b> \\\n            This endpoint supports multiple response formats based on the Accept header: \\\n            • application/vnd.openxmlformats-officedocument.spreadsheetml.sheet - Returns Excel spreadsheet \\\n            • application/json - Returns JSON data \\\n            • application/stream+json - Returns streaming JSON response",
        "parameters": [
          {
            "name": "Departments",
            "in": "query",
            "required": true,
            "schema": {
              "uniqueItems": true,
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              }
            }
          },
          {
            "name": "TenantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "FromDate",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "ToDate",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "Locale",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Spreadsheet is generated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PostingChannelExtract"
                  }
                }
              },
              "application/stream+json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PostingChannelExtract"
                  }
                }
              },
              "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PostingChannelExtract"
                  }
                }
              },
              "text/csv": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PostingChannelExtract"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/stream+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/csv": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/stream+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/csv": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden or tenant does not have reports ACL",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/stream+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/csv": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/reporting/v1/data-extract/tenants/{TenantId}/job-alerts": {
      "get": {
        "tags": [
          "Reporting"
        ],
        "summary": "Get job alert report.",
        "description": "<b>Authorization</b> \\\n            This endpoint requires Bearer token authentication. Enter the token via the Authorize button at the top. \\\n            Requires reporting:read-job-alert-report or reporting:read scope. \\\n            <b>Description</b> \\\n            Extracts all candidates with an active job alert based on the last activity in career center. \\\n            The exported information includes: \\\n            • Candidate details \\\n            • Candidate activity dates \\\n            • Job alert criteria \\\n            <b>Content Negotiation</b> \\\n            This endpoint supports multiple response formats based on the Accept header: \\\n            • application/vnd.openxmlformats-officedocument.spreadsheetml.sheet - Returns Excel spreadsheet \\\n            • application/json - Returns JSON data \\\n            • application/stream+json - Returns streaming JSON response",
        "parameters": [
          {
            "name": "TenantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "FromDate",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "ToDate",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "Locale",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Spreadsheet is generated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/JobAlertExtract"
                  }
                }
              },
              "application/stream+json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/JobAlertExtract"
                  }
                }
              },
              "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/JobAlertExtract"
                  }
                }
              },
              "text/csv": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/JobAlertExtract"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/stream+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/csv": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/stream+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/csv": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden or tenant does not have reports ACL",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/stream+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/csv": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/reporting/v1/data-extract/tenants/{TenantId}/vacancy-specific-questions": {
      "get": {
        "tags": [
          "Reporting"
        ],
        "summary": "Get vacancy specific questions report.",
        "description": "<b>Authorization</b> \\\n            This endpoint requires Bearer token authentication. Enter the token via the Authorize button at the top. \\\n            Requires reporting:read-vacancy-specific-question-report or reporting:read scope. \\\n            <b>Description</b> \\\n            Extracts all candidates for a selected vacancy along with their answers to the screening questions. \\\n            The exported information includes: \\\n            • Candidate details \\\n            • Application dates \\\n            • Vacancy questions and answers to them \\\n            <b>Content Negotiation</b> \\\n            This endpoint supports multiple response formats based on the Accept header: \\\n            • application/vnd.openxmlformats-officedocument.spreadsheetml.sheet - Returns Excel spreadsheet \\\n            • application/json - Returns JSON data \\\n            • application/stream+json - Returns streaming JSON response",
        "parameters": [
          {
            "name": "TenantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "VacancyId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Locale",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Spreadsheet is generated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VacancyQuestionExtract"
                  }
                }
              },
              "application/stream+json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VacancyQuestionExtract"
                  }
                }
              },
              "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VacancyQuestionExtract"
                  }
                }
              },
              "text/csv": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VacancyQuestionExtract"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/stream+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/csv": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/stream+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/csv": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden or tenant does not have reports ACL",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/stream+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/csv": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/reporting/v1/data-extract/tenants/{TenantId}/candidate-questions": {
      "get": {
        "tags": [
          "Reporting"
        ],
        "summary": "Get candidate questions report.",
        "description": "<b>Authorization</b> \\\n            This endpoint requires Bearer token authentication. Enter the token via the Authorize button at the top. \\\n            Requires reporting:read-candidate-question-report or reporting:read scope. \\\n            <b>Description</b> \\\n            Extracts all candidates for a selected vacancy along with their answers to the screening questions. \\\n            The exported information includes: \\\n            • Candidate details \\\n            • Self classification candidate questions \\\n            • HR classification candidate questions \\\n            <b>Content Negotiation</b> \\\n            This endpoint supports multiple response formats based on the Accept header: \\\n            • application/vnd.openxmlformats-officedocument.spreadsheetml.sheet - Returns Excel spreadsheet \\\n            • application/json - Returns JSON data \\\n            • application/stream+json - Returns streaming JSON response",
        "parameters": [
          {
            "name": "TenantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "FromDate",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "ToDate",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "Locale",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Spreadsheet is generated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CandidateQuestionExtract"
                  }
                }
              },
              "application/stream+json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CandidateQuestionExtract"
                  }
                }
              },
              "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CandidateQuestionExtract"
                  }
                }
              },
              "text/csv": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CandidateQuestionExtract"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/stream+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/csv": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/stream+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/csv": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden or tenant does not have reports ACL",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/stream+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/csv": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/reporting/v1/data-extract/tenants/{TenantId}/application-questions": {
      "get": {
        "tags": [
          "Reporting"
        ],
        "summary": "Get application question data report.",
        "description": "<b>Authorization</b> \\\n            This endpoint requires Bearer token authentication. Enter the token via the Authorize button at the top. \\\n            Requires reporting:read-application-question-report or reporting:read scope. \\\n            <b>Description</b> \\\n            Extracts all applications under selected departments along with their answers to the questions. \\\n            The exported information includes: \\\n            • Candidate details \\\n            • Application specific questions \\\n            <b>Content Negotiation</b> \\\n            This endpoint supports multiple response formats based on the Accept header: \\\n            • application/vnd.openxmlformats-officedocument.spreadsheetml.sheet - Returns Excel spreadsheet \\\n            • application/json - Returns JSON data \\\n            • application/stream+json - Returns streaming JSON response",
        "parameters": [
          {
            "name": "Departments",
            "in": "query",
            "required": true,
            "schema": {
              "uniqueItems": true,
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              }
            }
          },
          {
            "name": "TenantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "FromDate",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "ToDate",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "Locale",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Spreadsheet is generated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ApplicationQuestionExtract"
                  }
                }
              },
              "application/stream+json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ApplicationQuestionExtract"
                  }
                }
              },
              "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ApplicationQuestionExtract"
                  }
                }
              },
              "text/csv": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ApplicationQuestionExtract"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/stream+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/csv": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/stream+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/csv": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden or tenant does not have reports ACL",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/stream+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/csv": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/reporting/v1/data-extract/tenants/{TenantId}/users": {
      "get": {
        "tags": [
          "Reporting"
        ],
        "summary": "Get user report.",
        "description": "<b>Authorization</b> \\\n            This endpoint requires Bearer token authentication. Enter the token via the Authorize button at the top. \\\n            Requires reporting:read-user-report or reporting:read scope. \\\n            <b>Description</b> \\\n            Extracts all users under selected departments for a defined time period. \\\n            The exported information includes: \\\n            • User details \\\n            • User access controls \\\n            <b>Content Negotiation</b> \\\n            This endpoint supports multiple response formats based on the Accept header: \\\n            • application/vnd.openxmlformats-officedocument.spreadsheetml.sheet - Returns Excel spreadsheet \\\n            • application/json - Returns JSON data \\\n            • application/stream+json - Returns streaming JSON response",
        "parameters": [
          {
            "name": "Departments",
            "in": "query",
            "required": true,
            "schema": {
              "uniqueItems": true,
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              }
            }
          },
          {
            "name": "TenantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "FromDate",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "ToDate",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "Locale",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Spreadsheet is generated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/UserExtract"
                  }
                }
              },
              "application/stream+json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/UserExtract"
                  }
                }
              },
              "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/UserExtract"
                  }
                }
              },
              "text/csv": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/UserExtract"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/stream+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/csv": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/stream+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/csv": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden or tenant does not have reports ACL",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/stream+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/csv": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "ApplicationExtract": {
        "type": "object",
        "properties": {
          "candidateId": {
            "type": "integer",
            "format": "int32"
          },
          "vacancy": {
            "$ref": "#/components/schemas/VacancyData"
          },
          "department": {
            "$ref": "#/components/schemas/DepartmentData"
          },
          "vacancyStatus": {
            "type": "string",
            "nullable": true
          },
          "applicationUpdated": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "ranking": {
            "type": "string",
            "nullable": true
          },
          "averageRating": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "referenceCheck": {
            "type": "string",
            "nullable": true
          },
          "applicationDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "hiredDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "startDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "rejectionReason": {
            "type": "string",
            "nullable": true
          },
          "applicationSource": {
            "type": "string",
            "nullable": true
          },
          "personalDetails": {
            "$ref": "#/components/schemas/PersonalDetails"
          },
          "internalCategorisation": {
            "type": "string",
            "nullable": true
          },
          "receivedJobOffer": {
            "type": "string",
            "nullable": true
          },
          "currentJob": {
            "type": "string",
            "nullable": true
          },
          "employer": {
            "type": "string",
            "nullable": true
          },
          "evaluation": {
            "type": "string",
            "nullable": true
          },
          "statusHistory": {
            "$ref": "#/components/schemas/StatusHistory"
          },
          "teamReviewAverageScore": {
            "type": "number",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ApplicationQuestionExtract": {
        "type": "object",
        "properties": {
          "candidateId": {
            "type": "integer",
            "format": "int32"
          },
          "vacancy": {
            "$ref": "#/components/schemas/VacancyData"
          },
          "department": {
            "$ref": "#/components/schemas/DepartmentData"
          },
          "personalDetails": {
            "$ref": "#/components/schemas/PersonalDetails"
          },
          "applicationDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "applicationUpdated": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "internalCategorisation": {
            "type": "string",
            "nullable": true
          },
          "questions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Question"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CandidateQuestionExtract": {
        "type": "object",
        "properties": {
          "candidateId": {
            "type": "integer",
            "format": "int32"
          },
          "personalDetails": {
            "$ref": "#/components/schemas/PersonalDetails"
          },
          "internalCategorisation": {
            "type": "string",
            "nullable": true
          },
          "lastModified": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dateAdded": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "questions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Question"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CustomStatusData": {
        "type": "object",
        "properties": {
          "status1": {
            "$ref": "#/components/schemas/Status"
          },
          "status2": {
            "$ref": "#/components/schemas/Status"
          },
          "status3": {
            "$ref": "#/components/schemas/Status"
          },
          "status4": {
            "$ref": "#/components/schemas/Status"
          },
          "status5": {
            "$ref": "#/components/schemas/Status"
          },
          "status6": {
            "$ref": "#/components/schemas/Status"
          },
          "status7": {
            "$ref": "#/components/schemas/Status"
          },
          "status8": {
            "$ref": "#/components/schemas/Status"
          },
          "status9": {
            "$ref": "#/components/schemas/Status"
          },
          "status10": {
            "$ref": "#/components/schemas/Status"
          },
          "status11": {
            "$ref": "#/components/schemas/Status"
          },
          "status12": {
            "$ref": "#/components/schemas/Status"
          },
          "status13": {
            "$ref": "#/components/schemas/Status"
          },
          "status14": {
            "$ref": "#/components/schemas/Status"
          },
          "status15": {
            "$ref": "#/components/schemas/Status"
          },
          "status16": {
            "$ref": "#/components/schemas/Status"
          },
          "status17": {
            "$ref": "#/components/schemas/Status"
          },
          "status18": {
            "$ref": "#/components/schemas/Status"
          },
          "status19": {
            "$ref": "#/components/schemas/Status"
          },
          "status20": {
            "$ref": "#/components/schemas/Status"
          },
          "status21": {
            "$ref": "#/components/schemas/Status"
          },
          "status22": {
            "$ref": "#/components/schemas/Status"
          },
          "status23": {
            "$ref": "#/components/schemas/Status"
          },
          "status24": {
            "$ref": "#/components/schemas/Status"
          },
          "status25": {
            "$ref": "#/components/schemas/Status"
          },
          "status26": {
            "$ref": "#/components/schemas/Status"
          },
          "status27": {
            "$ref": "#/components/schemas/Status"
          },
          "status28": {
            "$ref": "#/components/schemas/Status"
          },
          "status29": {
            "$ref": "#/components/schemas/Status"
          },
          "status30": {
            "$ref": "#/components/schemas/Status"
          },
          "status31": {
            "$ref": "#/components/schemas/Status"
          },
          "status32": {
            "$ref": "#/components/schemas/Status"
          },
          "status33": {
            "$ref": "#/components/schemas/Status"
          },
          "status34": {
            "$ref": "#/components/schemas/Status"
          },
          "status35": {
            "$ref": "#/components/schemas/Status"
          },
          "status36": {
            "$ref": "#/components/schemas/Status"
          },
          "status37": {
            "$ref": "#/components/schemas/Status"
          },
          "status38": {
            "$ref": "#/components/schemas/Status"
          },
          "status39": {
            "$ref": "#/components/schemas/Status"
          },
          "status40": {
            "$ref": "#/components/schemas/Status"
          }
        },
        "additionalProperties": false
      },
      "DepartmentData": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "InterviewData": {
        "type": "object",
        "properties": {
          "infoMeeting": {
            "$ref": "#/components/schemas/InterviewInvitation"
          },
          "firstInterview": {
            "$ref": "#/components/schemas/InterviewInvitation"
          },
          "secondInterview": {
            "$ref": "#/components/schemas/InterviewInvitation"
          },
          "thirdInterview": {
            "$ref": "#/components/schemas/InterviewInvitation"
          },
          "interviewCancellationDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "InterviewInvitation": {
        "type": "object",
        "properties": {
          "interviewDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "sent": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "accepted": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "declined": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "newTimeProposed": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "JobAlertExtract": {
        "type": "object",
        "properties": {
          "candidateId": {
            "type": "integer",
            "format": "int32"
          },
          "initials": {
            "type": "string",
            "nullable": true
          },
          "firstName": {
            "type": "string",
            "nullable": true
          },
          "surnameAffix": {
            "type": "string",
            "nullable": true
          },
          "surname": {
            "type": "string",
            "nullable": true
          },
          "familyNameAffix": {
            "type": "string",
            "nullable": true
          },
          "familyName": {
            "type": "string",
            "nullable": true
          },
          "middleName": {
            "type": "string",
            "nullable": true
          },
          "nickname": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "language": {
            "type": "string",
            "nullable": true
          },
          "notificationPreferences": {
            "type": "string",
            "nullable": true
          },
          "category": {
            "type": "string",
            "nullable": true
          },
          "criteria": {
            "type": "string",
            "nullable": true
          },
          "criteriaId": {
            "type": "string",
            "nullable": true
          },
          "dateRegistered": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "lastModified": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "lastLogin": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PersonalDetails": {
        "type": "object",
        "properties": {
          "initials": {
            "type": "string",
            "nullable": true
          },
          "firstName": {
            "type": "string",
            "nullable": true
          },
          "middleName": {
            "type": "string",
            "nullable": true
          },
          "nickname": {
            "type": "string",
            "nullable": true
          },
          "surnameAffix": {
            "type": "string",
            "nullable": true
          },
          "surname": {
            "type": "string",
            "nullable": true
          },
          "familyNameAffix": {
            "type": "string",
            "nullable": true
          },
          "familyName": {
            "type": "string",
            "nullable": true
          },
          "gender": {
            "type": "string",
            "nullable": true
          },
          "emailAddress": {
            "type": "string",
            "nullable": true
          },
          "birthDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "postCode": {
            "type": "string",
            "nullable": true
          },
          "country": {
            "type": "string",
            "nullable": true
          },
          "region": {
            "type": "string",
            "nullable": true
          },
          "town": {
            "type": "string",
            "nullable": true
          },
          "city": {
            "type": "string",
            "nullable": true
          },
          "nationality": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PostingChannelExtract": {
        "type": "object",
        "properties": {
          "channel": {
            "type": "string",
            "nullable": true
          },
          "vacancy": {
            "$ref": "#/components/schemas/VacancyData"
          },
          "numberOfApplicants": {
            "type": "integer",
            "format": "int32"
          },
          "hiredCandidates": {
            "type": "integer",
            "format": "int32"
          },
          "costOfPublication": {
            "type": "string",
            "nullable": true
          },
          "firstDatePosted": {
            "type": "string",
            "format": "date-time"
          },
          "lastDatePosted": {
            "type": "string",
            "format": "date-time"
          },
          "employmentType": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "workingHours": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "workingDays": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "positionType": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "jobLevel": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "industrySector": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "salary": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "numberOfHours": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "branch": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "workArea": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "subCategory": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "role": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "remoteStatus": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "competences": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ProblemDetails": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "detail": {
            "type": "string",
            "nullable": true
          },
          "instance": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": { }
      },
      "Question": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "nullable": true
          },
          "answer": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RejectionData": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "date": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Status": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "date": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "StatusHistory": {
        "type": "object",
        "properties": {
          "invitedToTestDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "panelReviewDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "jobOfferDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "teamReviewRequestSentDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "lastCommunicationDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "rejection": {
            "$ref": "#/components/schemas/RejectionData"
          },
          "interviews": {
            "$ref": "#/components/schemas/InterviewData"
          },
          "customStatuses": {
            "$ref": "#/components/schemas/CustomStatusData"
          }
        },
        "additionalProperties": false
      },
      "UserExtract": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "string",
            "nullable": true
          },
          "firstName": {
            "type": "string",
            "nullable": true
          },
          "surname": {
            "type": "string",
            "nullable": true
          },
          "initials": {
            "type": "string",
            "nullable": true
          },
          "position": {
            "type": "string",
            "nullable": true
          },
          "chosenLanguage": {
            "type": "string",
            "nullable": true
          },
          "region": {
            "type": "string",
            "nullable": true
          },
          "ssoId": {
            "type": "string",
            "nullable": true
          },
          "workPhone": {
            "type": "string",
            "nullable": true
          },
          "mobilePhone": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "lastLoginDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "accountExpirationDate": {
            "type": "string",
            "nullable": true
          },
          "departmentName": {
            "type": "string",
            "nullable": true
          },
          "accessControls": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "VacancyData": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "referenceNumber": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "VacancyExtract": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "referenceNumber": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "firstDatePosted": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dateClosed": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "ownerId": {
            "type": "integer",
            "format": "int32"
          },
          "ownerName": {
            "type": "string",
            "nullable": true
          },
          "approvalStatus": {
            "type": "string",
            "nullable": true
          },
          "approvedBy": {
            "type": "string",
            "nullable": true
          },
          "dateApproved": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "department": {
            "$ref": "#/components/schemas/DepartmentData"
          },
          "contacts": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "country": {
            "type": "string",
            "nullable": true
          },
          "regions": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "questions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Question"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "VacancyQuestionExtract": {
        "type": "object",
        "properties": {
          "candidateId": {
            "type": "integer",
            "format": "int32"
          },
          "vacancy": {
            "$ref": "#/components/schemas/VacancyData"
          },
          "department": {
            "$ref": "#/components/schemas/DepartmentData"
          },
          "personalDetails": {
            "$ref": "#/components/schemas/PersonalDetails"
          },
          "applicationDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "applicationUpdated": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "internalCategorisation": {
            "type": "string",
            "nullable": true
          },
          "questions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Question"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      }
    },
    "securitySchemes": {
      "X-CSRF-TOKEN": {
        "type": "apiKey",
        "description": "CSRF token header",
        "name": "X-CSRF-TOKEN",
        "in": "header"
      },
      "Bearer": {
        "type": "http",
        "description": "Bearer token header",
        "scheme": "Bearer"
      }
    }
  },
  "security": [
    {
      "X-CSRF-TOKEN": [ ]
    },
    {
      "Bearer": [ ]
    }
  ]
}