---
title: "Search job openings"
method: POST
path: "/hiring/job-openings/search"
tags: ["Job Openings"]
---

# Search job openings

`POST /hiring/job-openings/search`

## Request

- Base URL: `https://api.hibob.com/v1`
- URL: `https://api.hibob.com/v1/hiring/job-openings/search`
- Auth: one of:
  - HTTP basic
  - HTTP bearer

Searches job openings 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>

## Request body

- JobOpeningSearchRequest
  - `fields` string[], required: 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` object[]
    - `fieldId` '/jobOpening/id' | '/jobOpening/status' | '/jobOpening/siteId' | '/jobOpening/department' | '/jobOpening/employmentType' | '/jobOpening/recruiterId' | '/jobOpening/owner' | '/jobOpening/createdBy' | '/jobOpening/createdAt' | '/jobOpening/modificationDate', required: Field ID to filter by
    - `operator` 'equals' | 'notEqual' | 'greaterThan' | 'lessThan', required: Filter operator. Use 'equals'/'notEqual' for exact matching. Use 'greaterThan'/'lessThan' for date range filtering (e.g. modificationDate, createdAt).
    - `values` union[], required
      - union
        - string
        - number
  - `limit` integer
  - `cursor` string
  - `includeArchived` boolean

## Response `200`

Successfully retrieved job openings

- JobOpeningSearchResponse
  - `items` JobOpeningSearchResponseObject[], required: Array of job opening objects
    - `/jobOpening/id` integer: Unique identifier for the job opening
    - `/jobOpening/title` string: Job opening title
    - `/jobOpening/status` 'draft' | 'open' | 'paused' | 'closed' | 'approved' | 'pending_approval' | 'rejected': Current status of the job opening. Possible values:<br /> <ul> <li><code>draft</code> – Draft</li> <li><code>open</code> – Open</li> <li><code>paused</code> – Paused</li> <li><code>closed</code> – Closed</li> <li><code>approved</code> – Approved</li> <li><code>pending_approval</code> – Pending approval</li> <li><code>rejected</code> – Rejected</li> </ul>
    - `/jobOpening/employmentType` string: Employment type (e.g., Permanent, Contract).<br /><br />To fetch employment type options (IDs and labels), use <a href="https://apidocs.hibob.com/reference/get_company-named-lists-listname" target="_blank">Get a specific company list by name ↗</a> with <code>listName</code> <code>employmentType</code> (<code>GET /v1/company/named-lists/employmentType</code>).
    - `/jobOpening/department` string: Department name.<br /><br />To fetch departments (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 <code>listName</code> <code>department</code> (<code>GET /v1/company/named-lists/department</code>).
    - `/jobOpening/siteId` number: Site ID where the position is located.<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>).
    - `/jobOpening/pipelineId` number: Pipeline ID associated with this job opening
    - `/jobOpening/createdAt` string, date-time: Timestamp when the job opening was created
    - `/jobOpening/createdBy` string: Employee ID of the user who created the job opening.<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>.
    - `/jobOpening/applicationFormId` number: ID of the application form
    - `/jobOpening/jobMarketingStatus` 'not_started' | 'ready_to_promote' | 'live' | 'ended': Job marketing status. Possible values:<br /> <ul> <li><code>not_started</code> – Not started</li> <li><code>ready_to_promote</code> – Ready to promote</li> <li><code>live</code> – Live</li> <li><code>ended</code> – Ended</li> </ul>
    - `/jobOpening/statusHistory` object[]: History of status changes with timestamps
      - `date` string, date-time
      - `status` string
    - `/jobOpening/recruiterId` string: Employee ID of the recruiter.<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>.
    - `/jobOpening/owner` string: Employee ID of the job opening owner.<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>.
    - `/jobOpening/jobLevelId` number: Job level ID.<br /><br />For job catalog metadata (levels, profiles), see <a href="https://apidocs.hibob.com/reference/get_job-catalog-job-profiles-metadata" target="_blank">Get job profiles metadata ↗</a>.
    - `/jobOpening/jobProfileId` number: Job profile ID.<br /><br />To search job profiles, use <a href="https://apidocs.hibob.com/reference/post_job-catalog-job-profiles-search" target="_blank">Read company job profiles ↗</a>.
    - `/jobOpening/approvalWorkflowTemplateId` number: Approval workflow template ID
    - `/jobOpening/seniority` string: Seniority level.<br /><br />To fetch seniority options (IDs and labels), use <a href="https://apidocs.hibob.com/reference/get_company-named-lists-listname" target="_blank">Get a specific company list by name ↗</a> with <code>listName</code> <code>seniority</code> (<code>GET /v1/company/named-lists/seniority</code>).
    - `/jobOpening/educationLevel` string: Required education level.<br /><br />To fetch education level options (IDs and labels), use <a href="https://apidocs.hibob.com/reference/get_company-named-lists-listname" target="_blank">Get a specific company list by name ↗</a> with <code>listName</code> <code>educationLevels</code> (<code>GET /v1/company/named-lists/educationLevels</code>).
    - `/jobOpening/minimumYearsOfExperience` number: Minimum years of experience required
    - `/jobOpening/payTransparencyMinSalary` number: Minimum salary for pay transparency. May be omitted from the response if the caller lacks the hiring-role SalaryRangeView permission.
    - `/jobOpening/payTransparencyMaxSalary` number: Maximum salary for pay transparency. May be omitted from the response if the caller lacks the hiring-role SalaryRangeView permission.
    - `/jobOpening/payTransparencySalaryCurrency` string: Currency for pay transparency salary fields. May be omitted from the response if the caller lacks the hiring-role SalaryRangeView permission.<br /><br />To fetch currency options (IDs and labels), use <a href="https://apidocs.hibob.com/reference/get_company-named-lists-listname" target="_blank">Get a specific company list by name ↗</a> with <code>listName</code> <code>currency</code> (<code>GET /v1/company/named-lists/currency</code>).
    - `/jobOpening/payTransparencySalaryPayPeriod` string: Pay period for pay transparency salary fields. May be omitted from the response if the caller lacks the hiring-role SalaryRangeView permission.<br /><br />To fetch pay period options (IDs and labels), use <a href="https://apidocs.hibob.com/reference/get_company-named-lists-listname" target="_blank">Get a specific company list by name ↗</a> with <code>listName</code> <code>payPeriod</code> (<code>GET /v1/company/named-lists/payPeriod</code>).
    - `/jobOpening/payTransparencySalaryInternalNote` string: Internal note about pay transparency salary for the hiring team. May be omitted from the response if the caller lacks the hiring-role SalaryRangeView permission.
    - `/jobOpening/category` string: Job function or category.<br /><br />To fetch category options (IDs and labels), use <a href="https://apidocs.hibob.com/reference/get_company-named-lists-listname" target="_blank">Get a specific company list by name ↗</a> with <code>listName</code> <code>jobFunctions</code> (<code>GET /v1/company/named-lists/jobFunctions</code>).
    - `/jobOpening/industry` string: Industry
    - `/jobOpening/jobBoardEmploymentType` string: Employment type for job board publishing.<br /><br />Options often align with the company employment type list; use <a href="https://apidocs.hibob.com/reference/get_company-named-lists-listname" target="_blank">Get a specific company list by name ↗</a> with <code>listName</code> <code>employmentType</code> (<code>GET /v1/company/named-lists/employmentType</code>).
    - `/jobOpening/workingLocation` 'onsite' | 'remote' | 'hybrid': Working location type. Possible values:<br /> <ul> <li><code>onsite</code> – On-site</li> <li><code>remote</code> – Remote</li> <li><code>hybrid</code> – Hybrid</li> </ul>
    - `/jobOpening/emailForwardingSubscribers` string[]: List of employee IDs subscribed to email forwarding for this job opening.
    - `/jobOpening/jobCategory` string: Job category.<br /><br />To fetch job category options (IDs and labels), use <a href="https://apidocs.hibob.com/reference/get_company-named-lists-listname" target="_blank">Get a specific company list by name ↗</a> with <code>listName</code> <code>jobCategory</code> (<code>GET /v1/company/named-lists/jobCategory</code>).
    - `/jobOpening/skillsAdditionalInfo` string: Additional information about required skills
    - `/jobOpening/modificationDate` string, date-time: Timestamp of the last modification to this job opening
  - `response_metadata` object, required
    - `next_cursor` string, nullable: Cursor for next page. Null if no more results.

## Other responses

- `400`: Bad Request - Invalid parameters
- `401`: Unauthorized - Invalid or missing credentials
- `403`: Forbidden - IP not allowed or feature not enabled
- `429`: Rate limit exceeded
- `500`: Internal server error

---

[API](https://skmtc.dev/hibob/apis/bob-hiring-api.md) - [All operations](https://skmtc.dev/hibob/apis/bob-hiring-api/llms.txt) - [OpenAPI document](https://skmtc.dev/hibob/apis/bob-hiring-api/revisions/c758e371fc83?raw)
