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

# Search job openings

`POST /hiring/job-openings/search`

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.net/hibob/apis/employee-data-api.md) · [All operations](https://skmtc.net/hibob/apis/employee-data-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/hibob/employee-data-api/revisions/0781ebbdda91/schema)
