---
updatedAt: 2025-07-22T07:41:05.000Z
---

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

# Read company job profiles

This endpoint returns a list of company job profiles filtered by the specified attributes. Note that this endpoint requires body parameters, which is why it is implemented as a POST request.  <br /><br />
 To successfully use this endpoint, a filter is mandatory. Ensure you use the filter provided in the **Example > Request example** option; otherwise, the call will fail.        <br /><br />
**<b>Required permissions</b>** <br /> The service user making the call must have the required permissions: see <a href="/reference/job-catalog#permissions-required">Permissions required</a>. <br /><br /> **<b>Pagination</b>** <br /> This endpoint uses cursor-based pagination to handle large number of table entries. To learn more, see <a href="https://apidocs.hibob.com/docs/pagination" target=”_blank”>Pagination in Bob's API</a>

# OpenAPI definition

```json
{
  "openapi": "3.1.1",
  "info": {
    "title": "Job Catalog API",
    "description": "Use Public API to access Job Catalog in Bob",
    "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
  },
  "paths": {
    "/job-catalog/job-profiles/search": {
      "post": {
        "operationId": "post_job-catalog-job-profiles-search",
        "tags": [
          "Job catalog"
        ],
        "summary": "Read company job profiles",
        "description": "This endpoint returns a list of company job profiles filtered by the specified attributes. Note that this endpoint requires body parameters, which is why it is implemented as a POST request.  <br /><br />\n To successfully use this endpoint, a filter is mandatory. Ensure you use the filter provided in the **Example > Request example** option; otherwise, the call will fail.        <br /><br />\n**<b>Required permissions</b>** <br /> The service user making the call must have the required permissions: see <a href=\"/reference/job-catalog#permissions-required\" target=\"_blank\">Permissions required</a>. <br /><br /> **<b>Pagination</b>** <br /> This endpoint uses cursor-based pagination to handle large number of table entries. To learn more, see <a href=\"https://apidocs.hibob.com/docs/pagination\" target=\"_blank\">Pagination in Bob's API</a>",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GetJobProfilesRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The job profiles returned in the response body.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobProfilesResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. The request contains incorrect parameters or syntax errors. Please review the request body.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "security": [
          {
            "Basic": []
          },
          {
            "Bearer": []
          }
        ],
        "x-codegen-request-body-name": "body"
      }
    }
  },
  "components": {
    "schemas": {
      "GetJobProfilesRequest": {
        "required": [
          "fields",
          "filters"
        ],
        "type": "object",
        "properties": {
          "fields": {
            "type": "array",
            "description": "List of field IDs to include in the response. Available standard fields are listed in the response schema. Custom fields follow the pattern /jobProfile/field_<number>. The array can contain 1 to 50 field IDs. To find out the field ID of a custom field, use the <a href=\"https://apidocs.hibob.com/reference/get_job-catalog-job-profiles-metadata\" target=\"_blank\">Get all job profiles fields</a> metadata endpoint.",
            "items": {
              "oneOf": [
                {
                  "type": "string",
                  "enum": [
                    "/jobProfile/id",
                    "/jobProfile/jobLevelRoleId",
                    "/jobProfile/jobRoleId",
                    "/jobProfile/jobFamilyId",
                    "/jobProfile/jobFamilyGroupId",
                    "/jobProfile/code",
                    "/jobProfile/title",
                    "/jobProfile/status",
                    "/jobProfile/description",
                    "/jobProfile/assignedEmployees"
                  ]
                },
                {
                  "type": "string",
                  "pattern": "^/jobProfile/field_\\d+$",
                  "description": "Custom field ID (e.g., /jobProfile/field_591)"
                }
              ]
            }
          },
          "filters": {
            "type": "array",
            "description": "An array of filtering conditions.",
            "items": {
              "$ref": "#/components/schemas/JobProfilesFilterInstruction"
            }
          },
          "pagination": {
            "type": "object",
            "description": "Optional pagination parameters.",
            "properties": {
              "limit": {
                "description": "The number of results per page. Defaults to 100 if not supplied.",
                "type": "integer",
                "minimum": 1,
                "maximum": 100,
                "default": 100
              },
              "cursor": {
                "description": "A marker representing the first item on the next page to read. Should not be provided in the first call. To learn more, see <a href=\"https://apidocs.hibob.com/docs/pagination\" target=\"_blank\">Pagination in Bob's API</a>.",
                "type": "string"
              }
            }
          },
          "includeHumanReadable": {
            "type": "boolean",
            "description": "Whether to include the additional \"humanReadable\" entry in the response.",
            "default": false
          }
        }
      },
      "JobProfilesFilterInstruction": {
        "type": "object",
        "required": [
          "fieldId",
          "operator",
          "values"
        ],
        "properties": {
          "fieldId": {
            "type": "string",
            "enum": [
              "/jobProfile/id",
              "/jobProfile/status",
              "/jobProfile/jobFamilyGroupId",
              "/jobProfile/jobFamilyId",
              "/jobProfile/jobRoleId"
            ],
            "description": "Field ID to filter by. Supported fields: /jobProfile/id, /jobProfile/status, /jobProfile/jobFamilyGroupId, /jobProfile/jobFamilyId, /jobProfile/jobRoleId. Any other path will get a response of 400 HTTP error.",
            "example": "/jobProfile/status",
            "default": "/jobProfile/status"
          },
          "operator": {
            "type": "string",
            "enum": [
              "equals",
              "notEqual"
            ],
            "description": "Supported operators: equals, notEqual. Any other operator will get a response of 400 HTTP error.",
            "example": "equals",
            "default": "equals"
          },
          "values": {
            "type": "array",
            "description": "List of values to compare. Empty list will result in 400 HTTP error.",
            "items": {
              "type": "string"
            },
            "example": [
              "active"
            ],
            "default": [
              "active"
            ]
          }
        }
      },
      "JobProfilesResponse": {
        "type": "object",
        "properties": {
          "JobProfileEntries": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/JobProfileEntries"
            }
          },
          "response_metadata": {
            "type": "object",
            "properties": {
              "next_cursor": {
                "type": "string",
                "description": "Cursor for the next call, or null if there are no more results."
              }
            }
          }
        }
      },
      "JobProfileEntries": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "/jobProfile/id": {
              "type": "object",
              "description": "The id of the job profile.",
              "properties": {
                "humanReadable": {
                  "type": "string",
                  "example": "12345"
                },
                "value": {
                  "type": "number",
                  "example": 12345
                }
              }
            },
            "/jobProfile/jobLevelRoleId": {
              "type": "object",
              "description": "The id of the job level for the job profile.",
              "properties": {
                "humanReadable": {
                  "type": "string",
                  "example": "12345"
                },
                "value": {
                  "type": "number",
                  "example": 12345
                }
              }
            },
            "/jobProfile/jobRoleId": {
              "type": "object",
              "description": "The id of the job role for the job profile.",
              "properties": {
                "humanReadable": {
                  "type": "string",
                  "example": "12345"
                },
                "value": {
                  "type": "number",
                  "example": 12345
                }
              }
            },
            "/jobProfile/jobFamilyId": {
              "type": "object",
              "description": "The id of the job family for the job profile.",
              "properties": {
                "humanReadable": {
                  "type": "string",
                  "example": "12345"
                },
                "value": {
                  "type": "number",
                  "example": 12345
                }
              }
            },
            "/jobProfile/jobFamilyGroupId": {
              "type": "object",
              "description": "The id of the job family group for the job profile.",
              "properties": {
                "humanReadable": {
                  "type": "string",
                  "example": "12345"
                },
                "value": {
                  "type": "number",
                  "example": 12345
                }
              }
            },
            "/jobProfile/code": {
              "type": "object",
              "description": "The unique code of the job profile.",
              "properties": {
                "humanReadable": {
                  "type": "string",
                  "example": "J-123456789"
                },
                "value": {
                  "type": "string",
                  "example": "J-123456789"
                }
              }
            },
            "/jobProfile/title": {
              "type": "object",
              "description": "The name of the job profile.",
              "properties": {
                "humanReadable": {
                  "type": "string",
                  "example": "Senior Developer R&D"
                },
                "value": {
                  "type": "string",
                  "example": "Senior Developer R&D"
                }
              }
            },
            "/jobProfile/status": {
              "type": "object",
              "description": "The status of the job profile. Possible values and their human-readable values: \"active\" (\"Active\"),  \"draft\" (\"Draft\"), \"inactive\" (\"Inactive\").",
              "properties": {
                "humanReadable": {
                  "type": "string",
                  "example": "Active"
                },
                "value": {
                  "type": "string",
                  "example": "active"
                }
              }
            },
            "/jobProfile/description": {
              "type": "object",
              "description": "The description of the job profile.",
              "properties": {
                "humanReadable": {
                  "type": "string",
                  "example": "A senior software engineer."
                },
                "value": {
                  "type": "string",
                  "example": "A senior software engineer."
                }
              }
            },
            "/jobProfile/assignedEmployees": {
              "type": "object",
              "description": "The employees assigned to the job profile.",
              "properties": {
                "humanReadable": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "example": "Audrey Darby"
                  }
                },
                "value": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "example": "3006749430876471221"
                  }
                }
              }
            }
          }
        }
      },
      "Error": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "description": "The unique identifier of the error."
          },
          "error": {
            "type": "string",
            "description": "A human readable error message."
          }
        }
      }
    },
    "securitySchemes": {
      "Basic": {
        "type": "http",
        "scheme": "basic"
      },
      "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."
      }
    }
  }
}
```