---
updatedAt: 2026-04-28T11:26:09.000Z
---

Fetch the complete documentation index at: https://apidocs.hibob.com/llms.txt. Use this file to discover all available pages before exploring further.

# Search applications

Searches applications using filters and returns paginated results.

<ul>
  <li>Use the <code>fields</code> parameter to specify which fields to return</li>
  <li>Use the <code>filters</code> parameter to narrow down results</li>
  <li>Use cursor-based pagination with <code>limit</code> and <code>cursor</code></li>
</ul>

<p><b>Testing notes</b>:</p>
<ul>
  <li>Use the testing widget's <b>Try It!</b> option to test this endpoint.</li>
  <li>Use the <b>Examples > Request Example</b> option to see how to initiate body parameters.</li>
</ul>


# OpenAPI definition

```json
{
  "openapi": "3.1.1",
  "info": {
    "title": "Bob Hiring API",
    "description": "Public API for accessing Bob Hiring data including Job Openings, Candidates, and Applications.",
    "license": {
      "name": "Proprietary",
      "url": "https://apidocs.hibob.com/docs/api-terms-of-use"
    },
    "contact": {
      "name": "Hi Bob, Inc."
    },
    "version": "1.0.0"
  },
  "servers": [
    {
      "url": "https://api.hibob.com/v1",
      "description": "Production"
    },
    {
      "url": "https://api.sandbox.hibob.com/v1",
      "description": "Sandbox"
    }
  ],
  "x-readme": {
    "metrics-enabled": false
  },
  "tags": [
    {
      "name": "Applications",
      "description": "Search and retrieve application data"
    }
  ],
  "paths": {
    "/hiring/applications/search": {
      "post": {
        "tags": [
          "Applications"
        ],
        "operationId": "post_hiring-applications-search",
        "summary": "Search applications",
        "description": "Searches applications using filters and returns paginated results.\n\n<ul>\n  <li>Use the <code>fields</code> parameter to specify which fields to return</li>\n  <li>Use the <code>filters</code> parameter to narrow down results</li>\n  <li>Use cursor-based pagination with <code>limit</code> and <code>cursor</code></li>\n</ul>\n\n<p><b>Testing notes</b>:</p>\n<ul>\n  <li>Use the testing widget's <b>Try It!</b> option to test this endpoint.</li>\n  <li>Use the <b>Examples > Request Example</b> option to see how to initiate body parameters.</li>\n</ul>\n",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApplicationSearchRequest"
              },
              "examples": {
                "basicSearch": {
                  "summary": "Basic search - all applications",
                  "description": "Retrieve all applications with core fields",
                  "value": {
                    "fields": [
                      "/application/id",
                      "/application/candidateId",
                      "/application/jobOpeningId",
                      "/application/status",
                      "/application/stageId",
                      "/application/createdAt"
                    ],
                    "filters": [],
                    "limit": 100
                  }
                },
                "filteredSearch": {
                  "summary": "Filter by status",
                  "description": "Search for applications in specific status",
                  "value": {
                    "fields": [
                      "/application/id",
                      "/application/candidateId",
                      "/application/jobOpeningId",
                      "/application/status",
                      "/application/stageId",
                      "/application/sourceType",
                      "/application/dateApplied",
                      "/application/createdAt"
                    ],
                    "filters": [
                      {
                        "fieldId": "/application/status",
                        "operator": "equals",
                        "values": [
                          "in_progress"
                        ]
                      }
                    ],
                    "limit": 50
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successfully retrieved applications",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Maximum requests per minute",
                "schema": {
                  "type": "integer",
                  "example": 120
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Remaining requests in current window",
                "schema": {
                  "type": "integer",
                  "example": 119
                }
              },
              "X-RateLimit-Reset": {
                "description": "Seconds until rate limit resets",
                "schema": {
                  "type": "integer",
                  "example": 60
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationSearchResponse"
                },
                "examples": {
                  "successResponse": {
                    "summary": "Successful response with applications",
                    "value": {
                      "items": [
                        {
                          "/application/id": 7247348,
                          "/application/status": "in_progress",
                          "/application/candidateId": 7247347,
                          "/application/jobOpeningId": 7247345,
                          "/application/stageId": 42048,
                          "/application/sourcedBy": "system",
                          "/application/sourceType": "manual_upload",
                          "/application/dateApplied": "2024-07-03",
                          "/application/createdAt": "2024-07-03T12:00:19.272728040Z",
                          "/application/lastActivityTimestamp": "2024-07-03T12:00:20.481322049Z",
                          "/application/timeToHire": 0
                        }
                      ],
                      "response_metadata": {
                        "next_cursor": "eyJpZCI6NzI0NzM1MCwidHlwZSI6Im5leHRfcGFnZSJ9"
                      }
                    }
                  },
                  "successResponseWithAiMatchingScore": {
                    "summary": "Successful response including AI matching score",
                    "description": "Application search response that includes a completed `/application/aiMatchingScore` object.",
                    "value": {
                      "items": [
                        {
                          "/application/id": 7247348,
                          "/application/status": "in_progress",
                          "/application/candidateId": 7247347,
                          "/application/jobOpeningId": 7247345,
                          "/application/stageId": 42048,
                          "/application/aiMatchingScore": {
                            "status": "completed",
                            "requestedAt": "2024-07-03T12:05:00.000Z",
                            "score": 75,
                            "briefCvSummary": "Senior engineer with 8 years of experience in Kotlin and backend systems.",
                            "mode": "combined",
                            "scoredAt": "2024-07-03T12:05:12.000Z",
                            "calculation": {
                              "roleCriteriaScore": 50,
                              "skillScore": 86,
                              "weightsUsed": {
                                "skillsWeightPercent": 70,
                                "roleCriteriaWeightPercent": 30,
                                "tierWeights": {
                                  "critical": 86,
                                  "important": null,
                                  "niceToHave": 14
                                }
                              },
                              "notes": [
                                "weighted average across tiers"
                              ]
                            },
                            "skillsResults": [
                              {
                                "skill": "Kotlin",
                                "priority": "critical",
                                "matchLevel": "fully_met",
                                "score": 100,
                                "evidence": [
                                  "8 years Kotlin"
                                ]
                              },
                              {
                                "skill": "GraphQL",
                                "priority": "nice_to_have",
                                "matchLevel": "not_met",
                                "score": 0,
                                "evidence": []
                              }
                            ],
                            "roleCriteriaResults": [
                              {
                                "requirement": "Worked at a fintech",
                                "matchLevel": "partially_met",
                                "score": 50,
                                "evidence": [
                                  "Currently at payment startup"
                                ]
                              }
                            ]
                          }
                        }
                      ],
                      "response_metadata": {
                        "next_cursor": null
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request - Invalid parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                },
                "example": {
                  "code": "INVALID_ARGUMENT",
                  "message": "Invalid field ID",
                  "requestId": "a1b2c3d4e5f6"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized - Invalid or missing credentials",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden - IP not allowed or feature not enabled",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                },
                "example": {
                  "code": "FORBIDDEN",
                  "message": "Access denied: IP address is not allowed",
                  "requestId": "a1b2c3d4e5f6"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                },
                "example": {
                  "code": "RATE_LIMITED",
                  "message": "Rate limit exceeded. Try again in 45 seconds.",
                  "requestId": "a1b2c3d4e5f6"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "Basic": []
          },
          {
            "Bearer": []
          }
        ],
        "x-internal": false
      }
    }
  },
  "components": {
    "securitySchemes": {
      "Basic": {
        "type": "http",
        "scheme": "basic",
        "description": "Basic HTTP authentication using service user credentials"
      },
      "Bearer": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "OAuth 2.0",
        "description": "OAuth 2.0 authentication using an Access Token is available for registered partners only. Try It! does not support the full HiBob OAuth flow. You can follow <a href=\"https://apidocs.hibob.com/reference/oauth-20#testing-from-the-public-api-reference\" target=\"_blank\">these steps</a> to complete the OAuth 2.0 flow in Postman and then paste the token here."
      }
    },
    "schemas": {
      "ApplicationSearchRequest": {
        "type": "object",
        "required": [
          "fields"
        ],
        "default": {
          "fields": [
            "/application/id",
            "/application/candidateId",
            "/application/jobOpeningId",
            "/application/status",
            "/application/stageId",
            "/application/createdAt"
          ],
          "filters": [],
          "limit": 100
        },
        "properties": {
          "fields": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "/application/id",
                "/application/status",
                "/application/candidateId",
                "/application/jobOpeningId",
                "/application/stageId",
                "/application/sourcedBy",
                "/application/sourceInstanceId",
                "/application/sourceType",
                "/application/sourceInternalId",
                "/application/sourcedByNameResolved",
                "/application/source",
                "/application/dateApplied",
                "/application/createdAt",
                "/application/lastActivityTimestamp",
                "/application/initialConsentDueDate",
                "/application/timeToHire",
                "/application/referredBy",
                "/application/evaluationScore",
                "/application/evaluationRecommendation",
                "/application/evaluationCount",
                "/application/evaluations",
                "/application/jobAdId",
                "/application/agencyId",
                "/application/agencyReferenceId",
                "/application/agencyNote",
                "/application/agencyContactFirstName",
                "/application/agencyContactLastName",
                "/application/agencyContactEmail",
                "/application/desiredSalary",
                "/application/education",
                "/application/experience",
                "/application/volunteerExperience",
                "/application/professionalAssociationsMemberships",
                "/application/qualificationsLicenses",
                "/application/initialConsentRequestedAt",
                "/application/initialConsentConfirmed",
                "/application/offlineConsentMessage",
                "/application/offlineConsentGivenBy",
                "/application/complianceConsentStatus",
                "/application/lastConsentRequestDate",
                "/application/dateAvailable",
                "/application/lastEmployment",
                "/application/automaticRejectionEmailMessageId",
                "/application/importResumeFileName",
                "/application/hasOffer",
                "/application/workspaceType",
                "/application/siteId",
                "/application/interviewAlert",
                "/application/referralSource",
                "/application/referralNotes",
                "/application/cvSummaryDetails",
                "/application/aiMatchingScore",
                "/application/files",
                "/application/candidateContacts",
                "/application/modificationDate"
              ]
            },
            "description": "Required list of field IDs to include in the response (1–50 fields). The property must be provided; if omitted or not provided, the API returns an error. You must explicitly choose which fields to fetch. For all available field IDs, see the <code>fields</code> object defined on each item in the 200 response schema."
          },
          "filters": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "fieldId",
                "operator",
                "values"
              ],
              "properties": {
                "fieldId": {
                  "type": "string",
                  "enum": [
                    "/application/id",
                    "/application/candidateId",
                    "/application/jobOpeningId",
                    "/application/status",
                    "/application/stageId",
                    "/application/createdAt",
                    "/application/modificationDate"
                  ],
                  "description": "Field ID to filter by"
                },
                "operator": {
                  "type": "string",
                  "enum": [
                    "equals",
                    "notEqual",
                    "greaterThan",
                    "lessThan"
                  ],
                  "description": "Filter operator. Use 'equals'/'notEqual' for exact matching. Use 'greaterThan'/'lessThan' for date range filtering (e.g. modificationDate, createdAt).\n"
                },
                "values": {
                  "type": "array",
                  "items": {
                    "type": [
                      "string",
                      "number"
                    ]
                  }
                }
              }
            },
            "default": []
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 200,
            "default": 100
          },
          "cursor": {
            "type": "string"
          },
          "includeArchived": {
            "type": "boolean",
            "default": false
          }
        }
      },
      "ApplicationSearchResponseObject": {
        "type": "object",
        "description": "Flat key-value map of field IDs to values. Only requested fields are included.",
        "properties": {
          "/application/id": {
            "type": "integer",
            "format": "int64",
            "description": "Unique identifier for the application"
          },
          "/application/status": {
            "type": "string",
            "enum": [
              "in_progress",
              "withdrawn",
              "rejected",
              "pending_rejection",
              "pending_hire",
              "hired"
            ],
            "description": "Current status of the application. Possible values:<br /> <ul> <li><code>in_progress</code> – In Progress</li> <li><code>withdrawn</code> – Withdrawn</li> <li><code>rejected</code> – Rejected</li> <li><code>pending_rejection</code> – Pending rejection</li> <li><code>pending_hire</code> – Pending hire</li> <li><code>hired</code> – Hired</li> </ul>"
          },
          "/application/candidateId": {
            "type": "number",
            "description": "ID of the associated candidate.<br /><br />To fetch the candidate, use <a href=\"https://apidocs.hibob.com/reference/post_hiring-candidates-search\" target=\"_blank\">Search candidates ↗</a>. ID of the associated candidate.<br /><br />To fetch the candidate, use <a href=\"https://apidocs.hibob.com/reference/post_hiring-candidates-search\" target=\"_blank\">Search candidates ↗</a>."
          },
          "/application/jobOpeningId": {
            "type": "number",
            "description": "ID of the associated job opening.<br /><br />To fetch the job opening, use <a href=\"https://apidocs.hibob.com/reference/post_hiring-job-openings-search\" target=\"_blank\">Search job openings ↗</a>. ID of the associated job opening.<br /><br />To fetch the job opening, use <a href=\"https://apidocs.hibob.com/reference/post_hiring-job-openings-search\" target=\"_blank\">Search job openings ↗</a>."
          },
          "/application/stageId": {
            "type": "number",
            "description": "Pipeline stage ID"
          },
          "/application/sourcedBy": {
            "type": "string",
            "description": "Identifier of who sourced the application (depends on <code>sourceType</code>; may be an employee ID for internal sourcing).<br /><br />When the value is an employee ID, use <a href=\"https://apidocs.hibob.com/reference/post_people-identifier\" target=\"_blank\">Read company employee fields by employee ID ↗</a>."
          },
          "/application/sourceInstanceId": {
            "type": "number",
            "description": "Source instance ID"
          },
          "/application/sourceType": {
            "type": "string",
            "enum": [
              "api",
              "api_internal",
              "free_job_board",
              "paid_job_board",
              "my_contracts_job_board",
              "referral",
              "agency",
              "agency_archived",
              "manual_upload",
              "custom_campaign",
              "custom_job_board",
              "custom_social",
              "referral_import",
              "referral_internal",
              "copied_from_job_opening",
              "sourced_by",
              "candidate_database",
              "opn_network"
            ],
            "description": "Sourcing channel type. Possible values:<br /> <ul> <li><code>api</code> – External Career page</li> <li><code>api_internal</code> – Internal Career page</li> <li><code>free_job_board</code> – Free job board</li> <li><code>paid_job_board</code> – Paid job board</li> <li><code>my_contracts_job_board</code> – My contracts job board</li> <li><code>referral</code> – Referral</li> <li><code>agency</code> – Agency</li> <li><code>agency_archived</code> – Agency (legacy)</li> <li><code>manual_upload</code> – Manual upload</li> <li><code>custom_campaign</code> – Custom Campaign</li> <li><code>custom_job_board</code> – Custom Job Board</li> <li><code>custom_social</code> – Social media</li> <li><code>referral_import</code> – Referral (import)</li> <li><code>referral_internal</code> – Referral internal</li> <li><code>copied_from_job_opening</code> – Copied from job opening</li> <li><code>sourced_by</code> – Sourced by</li> <li><code>candidate_database</code> – Candidate database</li> <li><code>opn_network</code> – OPN Network</li> </ul>"
          },
          "/application/sourceInternalId": {
            "type": "string",
            "description": "Internal source identifier"
          },
          "/application/sourcedByNameResolved": {
            "type": "string",
            "description": "Resolved display name of the person who sourced the application. When <code>sourcedBy</code> is an employee ID, use <a href=\"https://apidocs.hibob.com/reference/post_people-identifier\" target=\"_blank\">Read company employee fields by employee ID ↗</a> for full employee data."
          },
          "/application/source": {
            "type": "string",
            "description": "Source of the application"
          },
          "/application/dateApplied": {
            "type": "string",
            "format": "date",
            "description": "Date when the candidate applied"
          },
          "/application/createdAt": {
            "type": "string",
            "format": "date-time",
            "description": "Timestamp when the application was created"
          },
          "/application/lastActivityTimestamp": {
            "type": "string",
            "format": "date-time",
            "description": "Timestamp of the last activity on this application"
          },
          "/application/initialConsentDueDate": {
            "type": "string",
            "format": "date-time",
            "description": "Due date for initial consent"
          },
          "/application/timeToHire": {
            "type": "number",
            "description": "Number of days from application to hire"
          },
          "/application/referredBy": {
            "type": "string",
            "description": "Employee ID of the person who referred the candidate.<br /><br />To read this employee, use <a href=\"https://apidocs.hibob.com/reference/post_people-identifier\" target=\"_blank\">Read company employee fields by employee ID ↗</a>."
          },
          "/application/evaluationScore": {
            "type": "number",
            "description": "Average evaluation score"
          },
          "/application/evaluationRecommendation": {
            "type": "string",
            "enum": [
              "pending",
              "undetermined",
              "no",
              "yes",
              "strong_yes"
            ],
            "description": "Overall evaluation recommendation. Possible values:<br /> <ul> <li><code>pending</code> – Pending</li> <li><code>undetermined</code> – Undetermined</li> <li><code>no</code> – No</li> <li><code>yes</code> – Yes</li> <li><code>strong_yes</code> – Strong yes</li> </ul>"
          },
          "/application/evaluationCount": {
            "type": "integer",
            "description": "Number of evaluations submitted"
          },
          "/application/evaluations": {
            "type": "array",
            "description": "Aggregated evaluation summaries per pipeline stage.",
            "items": {
              "type": "object",
              "properties": {
                "stageId": {
                  "type": "integer",
                  "description": "Pipeline stage ID"
                },
                "yesCount": {
                  "type": "integer",
                  "description": "Number of \"yes\" recommendations"
                },
                "noCount": {
                  "type": "integer",
                  "description": "Number of \"no\" recommendations"
                },
                "strongYesCount": {
                  "type": "integer",
                  "description": "Number of \"strong yes\" recommendations"
                },
                "pendingCount": {
                  "type": "integer",
                  "description": "Number of pending evaluations"
                },
                "recommendation": {
                  "type": "string",
                  "enum": [
                    "yes",
                    "no",
                    "strong_yes",
                    "pending"
                  ],
                  "description": "Overall recommendation for this stage, computed from individual counts."
                }
              }
            }
          },
          "/application/jobAdId": {
            "type": "number",
            "description": "ID of the job ad the candidate applied through.<br /><br />To fetch the job ad, use <a href=\"https://apidocs.hibob.com/reference/get_hiring-job-ads-id\" target=\"_blank\">Get the details of a single job ad ↗</a>."
          },
          "/application/agencyId": {
            "type": "number",
            "description": "Agency ID (if sourced through an agency)"
          },
          "/application/agencyReferenceId": {
            "type": "string",
            "description": "Candidate reference ID provided by the agency"
          },
          "/application/agencyNote": {
            "type": "string",
            "description": "Note from the agency"
          },
          "/application/agencyContactFirstName": {
            "type": "string",
            "description": "Agency contact first name"
          },
          "/application/agencyContactLastName": {
            "type": "string",
            "description": "Agency contact last name"
          },
          "/application/agencyContactEmail": {
            "type": "string",
            "description": "Agency contact email"
          },
          "/application/desiredSalary": {
            "type": "object",
            "description": "Desired salary with value and currency.",
            "properties": {
              "value": {
                "type": "number",
                "description": "Desired salary amount (e.g. 80000)"
              },
              "currency": {
                "type": "string",
                "description": "ISO 4217 currency code (e.g. \"USD\", \"EUR\", \"GBP\")"
              }
            }
          },
          "/application/education": {
            "type": "array",
            "description": "Education records associated with this application. Each item uses candidate education field IDs as keys.",
            "items": {
              "type": "object",
              "properties": {
                "/candidateEducation/school": {
                  "type": "string",
                  "description": "School or institution name"
                },
                "/candidateEducation/fieldOfStudy": {
                  "type": "string",
                  "description": "Field of study or major"
                },
                "/candidateEducation/degree": {
                  "type": "string",
                  "description": "Degree type (e.g. \"B.Sc\", \"M.A.\", \"Ph.D.\")"
                },
                "/candidateEducation/startDate": {
                  "type": "string",
                  "format": "date",
                  "description": "Start date (YYYY-MM-DD)"
                },
                "/candidateEducation/startDateDay": {
                  "type": "integer",
                  "description": "Day component of the start date"
                },
                "/candidateEducation/startDateMonth": {
                  "type": "integer",
                  "description": "Month component of the start date"
                },
                "/candidateEducation/startDateYear": {
                  "type": "integer",
                  "description": "Year component of the start date"
                },
                "/candidateEducation/endDate": {
                  "type": "string",
                  "format": "date",
                  "description": "End date (YYYY-MM-DD)"
                },
                "/candidateEducation/endDateDay": {
                  "type": "integer",
                  "description": "Day component of the end date"
                },
                "/candidateEducation/endDateMonth": {
                  "type": "integer",
                  "description": "Month component of the end date"
                },
                "/candidateEducation/endDateYear": {
                  "type": "integer",
                  "description": "Year component of the end date"
                }
              }
            }
          },
          "/application/experience": {
            "type": "array",
            "description": "Work experience records associated with this application. Each item uses candidate experience field IDs as keys.",
            "items": {
              "type": "object",
              "properties": {
                "/candidateExperience/title": {
                  "type": "string",
                  "description": "Job title"
                },
                "/candidateExperience/company": {
                  "type": "string",
                  "description": "Company name"
                },
                "/candidateExperience/industry": {
                  "type": "string",
                  "description": "Industry"
                },
                "/candidateExperience/summary": {
                  "type": "string",
                  "description": "Role description or summary"
                },
                "/candidateExperience/startDate": {
                  "type": "string",
                  "format": "date",
                  "description": "Start date (YYYY-MM-DD)"
                },
                "/candidateExperience/startDateDay": {
                  "type": "integer",
                  "description": "Day component of the start date"
                },
                "/candidateExperience/startDateMonth": {
                  "type": "integer",
                  "description": "Month component of the start date"
                },
                "/candidateExperience/startDateYear": {
                  "type": "integer",
                  "description": "Year component of the start date"
                },
                "/candidateExperience/endDate": {
                  "type": "string",
                  "format": "date",
                  "description": "End date (YYYY-MM-DD)"
                },
                "/candidateExperience/endDateDay": {
                  "type": "integer",
                  "description": "Day component of the end date"
                },
                "/candidateExperience/endDateMonth": {
                  "type": "integer",
                  "description": "Month component of the end date"
                },
                "/candidateExperience/endDateYear": {
                  "type": "integer",
                  "description": "Year component of the end date"
                },
                "/candidateExperience/isCurrent": {
                  "type": "boolean",
                  "description": "Whether this is the current position"
                },
                "/candidateExperience/durationDays": {
                  "type": "integer",
                  "description": "Duration in days (calculated from start/end dates)"
                }
              }
            }
          },
          "/application/volunteerExperience": {
            "type": "array",
            "description": "Volunteer experience records. Each item uses candidate volunteer experience field IDs as keys.",
            "items": {
              "type": "object",
              "properties": {
                "/candidateVolunteerExperience/organization": {
                  "type": "string",
                  "description": "Organization name"
                },
                "/candidateVolunteerExperience/startDate": {
                  "type": "string",
                  "format": "date",
                  "description": "Start date (YYYY-MM-DD)"
                },
                "/candidateVolunteerExperience/startDateDay": {
                  "type": "integer",
                  "description": "Day component of the start date"
                },
                "/candidateVolunteerExperience/startDateMonth": {
                  "type": "integer",
                  "description": "Month component of the start date"
                },
                "/candidateVolunteerExperience/startDateYear": {
                  "type": "integer",
                  "description": "Year component of the start date"
                },
                "/candidateVolunteerExperience/endDate": {
                  "type": "string",
                  "format": "date",
                  "description": "End date (YYYY-MM-DD)"
                },
                "/candidateVolunteerExperience/endDateDay": {
                  "type": "integer",
                  "description": "Day component of the end date"
                },
                "/candidateVolunteerExperience/endDateMonth": {
                  "type": "integer",
                  "description": "Month component of the end date"
                },
                "/candidateVolunteerExperience/endDateYear": {
                  "type": "integer",
                  "description": "Year component of the end date"
                }
              }
            }
          },
          "/application/professionalAssociationsMemberships": {
            "type": "array",
            "description": "Professional association memberships. Each item uses candidate professional association membership field IDs as keys.",
            "items": {
              "type": "object",
              "properties": {
                "/candidateProfessionalAssociationMembership/name": {
                  "type": "string",
                  "description": "Association or membership name"
                },
                "/candidateProfessionalAssociationMembership/startDate": {
                  "type": "string",
                  "format": "date",
                  "description": "Start date (YYYY-MM-DD)"
                },
                "/candidateProfessionalAssociationMembership/startDateDay": {
                  "type": "integer",
                  "description": "Day component of the start date"
                },
                "/candidateProfessionalAssociationMembership/startDateMonth": {
                  "type": "integer",
                  "description": "Month component of the start date"
                },
                "/candidateProfessionalAssociationMembership/startDateYear": {
                  "type": "integer",
                  "description": "Year component of the start date"
                }
              }
            }
          },
          "/application/qualificationsLicenses": {
            "type": "array",
            "description": "Qualifications and licenses. Each item uses candidate qualifications/license field IDs as keys.",
            "items": {
              "type": "object",
              "properties": {
                "/candidateQualificationsLicense/qualificationsLicensesName": {
                  "type": "string",
                  "description": "Qualification or license name"
                },
                "/candidateQualificationsLicense/qualificationsLicensesBody": {
                  "type": "string",
                  "description": "Issuing body or authority"
                },
                "/candidateQualificationsLicense/dateOfIssue": {
                  "type": "string",
                  "format": "date",
                  "description": "Date of issue (YYYY-MM-DD)"
                },
                "/candidateQualificationsLicense/dateOfExpiry": {
                  "type": "string",
                  "format": "date",
                  "description": "Date of expiry (YYYY-MM-DD)"
                }
              }
            }
          },
          "/application/initialConsentRequestedAt": {
            "type": "string",
            "format": "date-time",
            "description": "Timestamp when initial consent was requested"
          },
          "/application/initialConsentConfirmed": {
            "type": "boolean",
            "description": "Whether initial consent was confirmed"
          },
          "/application/offlineConsentMessage": {
            "type": "string",
            "description": "Offline consent message"
          },
          "/application/offlineConsentGivenBy": {
            "type": "string",
            "description": "Employee ID of the person who provided offline consent.<br /><br />To read this employee, use <a href=\"https://apidocs.hibob.com/reference/post_people-identifier\" target=\"_blank\">Read company employee fields by employee ID ↗</a>."
          },
          "/application/complianceConsentStatus": {
            "type": "string",
            "enum": [
              "expired",
              "missing_initial_consent",
              "missing_extended_consent",
              "pending_initial_consent",
              "pending_extended_consent",
              "extended_consent_expiring"
            ],
            "description": "Compliance consent status. Possible values:<br /> <ul> <li><code>expired</code> – Expired</li> <li><code>missing_initial_consent</code> – Missing initial consent</li> <li><code>missing_extended_consent</code> – Missing extended consent</li> <li><code>pending_initial_consent</code> – Pending initial consent</li> <li><code>pending_extended_consent</code> – Pending extended consent</li> <li><code>extended_consent_expiring</code> – Extended consent expiring</li> </ul>"
          },
          "/application/lastConsentRequestDate": {
            "type": "string",
            "format": "date",
            "description": "Date of the last consent request"
          },
          "/application/dateAvailable": {
            "type": "string",
            "format": "date",
            "description": "Date when the candidate is available to start"
          },
          "/application/lastEmployment": {
            "type": "string",
            "description": "Last employment details"
          },
          "/application/automaticRejectionEmailMessageId": {
            "type": "integer",
            "description": "ID of the automatic rejection email message"
          },
          "/application/importResumeFileName": {
            "type": "string",
            "description": "File name of the imported resume"
          },
          "/application/hasOffer": {
            "type": "boolean",
            "description": "Whether the application has an associated offer"
          },
          "/application/workspaceType": {
            "type": "string",
            "enum": [
              "remote",
              "hybrid",
              "on_site"
            ],
            "description": "Workspace type. Possible values:<br /> <ul> <li><code>remote</code> – Remote</li> <li><code>hybrid</code> – Hybrid</li> <li><code>on_site</code> – On-site</li> </ul>"
          },
          "/application/siteId": {
            "type": "number",
            "description": "Site ID.<br /><br />To fetch sites (IDs and names), use <a href=\"https://apidocs.hibob.com/reference/get_company-named-lists-listname\" target=\"_blank\">Get a specific company list by name ↗</a> with path parameter <code>listName</code> set to <code>site</code> (<code>GET /v1/company/named-lists/site</code>). Site ID.<br /><br />To fetch sites (IDs and names), use <a href=\"https://apidocs.hibob.com/reference/get_company-named-lists-listname\" target=\"_blank\">Get a specific company list by name ↗</a> with path parameter <code>listName</code> set to <code>site</code> (<code>GET /v1/company/named-lists/site</code>)."
          },
          "/application/interviewAlert": {
            "type": "object",
            "description": "Most recent interview alert. Uses a polymorphic <code>type</code> discriminator to indicate the alert kind.",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "candidate_scheduled",
                  "candidate_rescheduled",
                  "candidate_canceled",
                  "recruiter_canceled",
                  "no_time_slots",
                  "request_more_time_slots",
                  "request_to_reschedule",
                  "recruiter_nudged",
                  "recruiter_changed_field",
                  "recruiter_updated_time_slots",
                  "recruiter_created_self_scheduled_interview"
                ],
                "description": "Alert type discriminator"
              },
              "timestamp": {
                "type": "string",
                "format": "date-time",
                "description": "When the alert was triggered"
              },
              "isDismissed": {
                "type": "boolean",
                "description": "Whether the alert has been dismissed"
              },
              "isArchived": {
                "type": "boolean",
                "description": "Whether the alert has been archived"
              },
              "note": {
                "type": "string",
                "description": "Optional note (present on rescheduled, canceled, request alerts)"
              },
              "employeeFullName": {
                "type": "string",
                "description": "Full name of the employee (present on recruiter_canceled alerts)"
              },
              "fieldNames": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Changed field names (present on recruiter_changed_field alerts)"
              }
            }
          },
          "/application/referralSource": {
            "type": "string",
            "description": "Referral source"
          },
          "/application/referralNotes": {
            "type": "string",
            "description": "Referral notes"
          },
          "/application/cvSummaryDetails": {
            "type": "object",
            "deprecated": true,
            "description": "Deprecated. Use `/application/aiMatchingScore` instead. AI-generated CV summary. Contains a short summary, highlights, quick-view data, skills match analysis, and processing status.",
            "properties": {
              "shortSummary": {
                "type": "string",
                "description": "Brief AI-generated summary of the CV"
              },
              "status": {
                "type": "string",
                "enum": [
                  "ok",
                  "error"
                ],
                "description": "Processing status"
              },
              "errorMessage": {
                "type": "string",
                "description": "Error message if status is \"error\""
              },
              "timestamp": {
                "type": "string",
                "format": "date-time",
                "description": "When the summary was generated"
              },
              "highlights": {
                "type": "array",
                "description": "Key highlights from the CV",
                "items": {
                  "type": "object",
                  "properties": {
                    "rank": {
                      "type": "string",
                      "enum": [
                        "positive",
                        "neutral",
                        "negative"
                      ],
                      "description": "Highlight sentiment"
                    },
                    "text": {
                      "type": "string",
                      "description": "Highlight text"
                    }
                  }
                }
              },
              "quickView": {
                "type": "object",
                "description": "Quick-view snapshot of the candidate",
                "properties": {
                  "currentRole": {
                    "type": "string"
                  },
                  "totalExperience": {
                    "type": "string"
                  },
                  "averageTenure": {
                    "type": "string"
                  },
                  "industries": {
                    "type": "string"
                  },
                  "location": {
                    "type": "string"
                  },
                  "languages": {
                    "type": "string"
                  },
                  "educationSpecialization": {
                    "type": "string"
                  },
                  "remoteHybridExperience": {
                    "type": "string"
                  },
                  "internationalExperience": {
                    "type": "string"
                  },
                  "managerialExperience": {
                    "type": "string"
                  },
                  "visaStatus": {
                    "type": "string"
                  },
                  "roleSpecificInsights": {
                    "type": "object",
                    "properties": {
                      "techStack": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "domainExperience": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              },
              "skills": {
                "type": "object",
                "description": "Skills match analysis",
                "properties": {
                  "match": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "Skills that match the job requirements"
                  },
                  "missing": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "Required skills not found on the CV"
                  },
                  "complementary": {
                    "type": "object",
                    "properties": {
                      "skills": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "description": "Additional complementary skills"
                      },
                      "summary": {
                        "type": "string",
                        "description": "Summary of complementary skills"
                      }
                    }
                  }
                }
              }
            }
          },
          "/application/aiMatchingScore": {
            "type": "object",
            "description": "Represents the AI-generated CV matching score for this application based on the job opening’s AI matching configuration. The AI Resume Matching feature in Hiring calculates the score when the matching configuration is set up, when a candidate’s CV is uploaded, or when a user manually reruns the matching process.\nThe object includes:\n- `score` and `briefCvSummary`: The overall matching result and a short summary of the candidate’s CV. - `calculation`: A breakdown of the score across role criteria and skills criteria. - `skillsResults`: Match results for each evaluated skill. - `roleCriteriaResults`: Match results for each evaluated role criterion, called a Job in Bob’s UI.\nUse `status` to determine the calculation state: `in_progress`, `completed`, or `failed`.\n",
            "properties": {
              "status": {
                "type": "string",
                "enum": [
                  "in_progress",
                  "completed",
                  "failed"
                ],
                "description": "Processing status of the AI matching score. Possible values: - `in_progress`: Score calculation is in progress - `completed`: Score was calculated successfully - `failed`: Score calculation failed\n"
              },
              "requestedAt": {
                "type": "string",
                "format": "date-time",
                "description": "Date and time when the AI matching score calculation was requested."
              },
              "score": {
                "type": "integer",
                "minimum": 0,
                "maximum": 100,
                "description": "Overall AI matching score from 0 to 100. Present when status is `completed`."
              },
              "briefCvSummary": {
                "type": "string",
                "description": "Brief AI-generated CV summary. Present when status is `completed`."
              },
              "mode": {
                "type": "string",
                "enum": [
                  "criteria_only",
                  "skills_only",
                  "combined"
                ],
                "description": "Scoring mode used. Present when status is `completed`. Possible values: `criteria_only`, `skills_only`, `combined`.\n"
              },
              "scoredAt": {
                "type": "string",
                "format": "date-time",
                "description": "Date and time when the AI matching score calculation completed."
              },
              "calculation": {
                "type": "object",
                "description": "Shows the score breakdown between role/job criteria and skills criteria. Present when status is `completed`.",
                "properties": {
                  "roleCriteriaScore": {
                    "type": [
                      "number",
                      "null"
                    ],
                    "description": "Score contribution from role/job criteria when evaluating the overall match"
                  },
                  "skillScore": {
                    "type": [
                      "number",
                      "null"
                    ],
                    "description": "Score contribution from skills when evaluating the overall match"
                  },
                  "weightsUsed": {
                    "type": [
                      "object",
                      "null"
                    ],
                    "description": "Weight percentages applied to skills and role/job criteria when combining component scores into the overall score",
                    "properties": {
                      "skillsWeightPercent": {
                        "type": [
                          "integer",
                          "null"
                        ],
                        "description": "The weight percentage applied to skills when evaluating the score"
                      },
                      "roleCriteriaWeightPercent": {
                        "type": [
                          "integer",
                          "null"
                        ],
                        "description": "The weight percentage applied to role/job criteria when evaluating the score"
                      },
                      "tierWeights": {
                        "type": [
                          "object",
                          "null"
                        ],
                        "description": "Relative weights applied to skill priority tiers when calculating the skills component score",
                        "properties": {
                          "critical": {
                            "type": [
                              "number",
                              "null"
                            ],
                            "description": "Relative weight applied to critical skills when calculating the skills component score"
                          },
                          "important": {
                            "type": [
                              "number",
                              "null"
                            ],
                            "description": "Relative weight applied to important skills when calculating the skills component score"
                          },
                          "niceToHave": {
                            "type": [
                              "number",
                              "null"
                            ],
                            "description": "Relative weight applied to nice-to-have skills when calculating the skills component score"
                          }
                        }
                      }
                    }
                  },
                  "notes": {
                    "type": [
                      "array",
                      "null"
                    ],
                    "items": {
                      "type": "string"
                    },
                    "description": "Optional notes explaining how the score breakdown was calculated"
                  }
                }
              },
              "skillsResults": {
                "type": [
                  "array",
                  "null"
                ],
                "description": "Shows the breakdown per skill, if evaluated. Present when status is `completed` and skills were evaluated.",
                "items": {
                  "type": "object",
                  "properties": {
                    "skill": {
                      "type": "string",
                      "description": "Name of the skill that was evaluated"
                    },
                    "priority": {
                      "type": "string",
                      "enum": [
                        "critical",
                        "important",
                        "nice_to_have",
                        "not_relevant"
                      ],
                      "description": "Priority of the skill in the job opening’s AI matching configuration. Possible values: `critical`, `important`, `nice_to_have`, `not_relevant`.\n"
                    },
                    "matchLevel": {
                      "type": "string",
                      "enum": [
                        "fully_met",
                        "partially_met",
                        "not_met"
                      ],
                      "description": "How well the candidate's CV matches this skill. Possible values: `fully_met`, `partially_met`, `not_met`.\n"
                    },
                    "score": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 100,
                      "description": "Match score for this skill from 0 to 100"
                    },
                    "evidence": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "Evidence from the CV that supports the skill match assessment"
                    }
                  }
                }
              },
              "roleCriteriaResults": {
                "type": [
                  "array",
                  "null"
                ],
                "description": "Shows the breakdown per role (`Job` in Bob's UI), if evaluated. Present when status is `completed` and role criteria were evaluated.",
                "items": {
                  "type": "object",
                  "properties": {
                    "requirement": {
                      "type": "string",
                      "description": "Role/job criteria requirement text that was evaluated"
                    },
                    "matchLevel": {
                      "type": "string",
                      "enum": [
                        "fully_met",
                        "partially_met",
                        "not_met"
                      ],
                      "description": "How well the candidate's CV matches this role/job criterion. Possible values: `fully_met`, `partially_met`, `not_met`.\n"
                    },
                    "score": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 100,
                      "description": "Match score for this role/job criterion from 0 to 100"
                    },
                    "evidence": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "Evidence from the CV that supports the role/job criteria match assessment"
                    }
                  }
                }
              },
              "failureType": {
                "type": "string",
                "enum": [
                  "unparseable_cv",
                  "malformed_response",
                  "sns_publish_failed",
                  "ai_platform_error",
                  "ai_platform_no_result",
                  "stuck_no_response",
                  "batch_upload_failed",
                  "batch_retry_exhausted",
                  "batch_item_error"
                ],
                "description": "Failure reason. Present when status is `failed`. Possible values: `unparseable_cv`, `malformed_response`, `sns_publish_failed`, `ai_platform_error`, `ai_platform_no_result`, `stuck_no_response`, `batch_upload_failed`, `batch_retry_exhausted`, `batch_item_error`.\n"
              },
              "errorMessage": {
                "type": "string",
                "description": "Error message describing the failure. Present when status is `failed`."
              }
            }
          },
          "/application/files": {
            "type": "array",
            "description": "Metadata for files attached to this application (id, file name, type, size, status, etc.). This field does not include download URLs; there is no public Hiring API endpoint to download file content by file ID.",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "File ID"
                },
                "applicationId": {
                  "type": "integer",
                  "description": "Application ID"
                },
                "fileName": {
                  "type": "string",
                  "description": "Original file name"
                },
                "displayName": {
                  "type": "string",
                  "description": "Display name (if different from file name)"
                },
                "fileType": {
                  "type": "string",
                  "enum": [
                    "resume",
                    "cover_letter",
                    "portfolio",
                    "other"
                  ],
                  "description": "File type category"
                },
                "mimeType": {
                  "type": "string",
                  "description": "MIME type (e.g. \"application/pdf\")"
                },
                "bytesSize": {
                  "type": "integer",
                  "description": "File size in bytes"
                },
                "creationDate": {
                  "type": "string",
                  "format": "date-time",
                  "description": "Upload timestamp"
                },
                "createdBy": {
                  "type": "string",
                  "description": "Employee ID of the uploader"
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "processing",
                    "processed",
                    "rejected",
                    "failed"
                  ],
                  "description": "File processing status"
                }
              }
            }
          },
          "/application/candidateContacts": {
            "type": "array",
            "description": "Contact entries for the candidate (email, phone, etc.).",
            "items": {
              "type": "object",
              "properties": {
                "/contact/id": {
                  "type": "integer",
                  "description": "Contact ID"
                },
                "/contact/type": {
                  "type": "string",
                  "description": "Contact type (e.g. \"email\", \"phone\")"
                },
                "/contact/text": {
                  "type": "string",
                  "description": "Contact value (e.g. email address or phone number)"
                },
                "/contact/subType": {
                  "type": "string",
                  "description": "Contact subtype (e.g. \"personal\", \"work\")"
                },
                "/contact/isPrimary": {
                  "type": "boolean",
                  "description": "Whether this is the primary contact"
                },
                "/contact/candidateId": {
                  "type": "integer",
                  "description": "Candidate ID"
                }
              }
            }
          },
          "/application/modificationDate": {
            "type": "string",
            "format": "date-time",
            "description": "Timestamp of the last modification to this application"
          }
        }
      },
      "ApplicationSearchResponse": {
        "type": "object",
        "required": [
          "items",
          "response_metadata"
        ],
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApplicationSearchResponseObject"
            },
            "description": "Array of application objects"
          },
          "response_metadata": {
            "type": "object",
            "properties": {
              "next_cursor": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Cursor for next page. Null if no more results."
              }
            }
          }
        }
      },
      "ErrorResponse": {
        "type": "object",
        "required": [
          "code",
          "message",
          "requestId"
        ],
        "properties": {
          "code": {
            "type": "string",
            "enum": [
              "INVALID_ARGUMENT",
              "FORBIDDEN",
              "RATE_LIMITED",
              "INTERNAL_ERROR",
              "NOT_FOUND"
            ],
            "description": "Error code identifying the type of error:\n- `INVALID_ARGUMENT`: Invalid request parameters\n- `FORBIDDEN`: Access denied (IP not allowed or feature disabled)\n- `RATE_LIMITED`: Too many requests\n- `INTERNAL_ERROR`: Server-side error\n- `NOT_FOUND`: Resource not found\n"
          },
          "message": {
            "type": "string",
            "description": "Human-readable error message"
          },
          "requestId": {
            "type": "string",
            "description": "Unique request identifier for tracking and debugging"
          }
        }
      }
    }
  }
}
```