> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bindbee.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Job

> Creates a Job object with the given values.

import { Accordion, AccordionGroup } from "@mintlify/components";

This endpoint creates a Job in the connected ATS via Bindbee's unified **Job** model.

## Provider-specific behavior

Different ATS providers can have slightly different requirements and behaviors when creating jobs. Use the accordions below to see details for each provider.

<AccordionGroup>
  <Accordion title="Greenhouse">
    <p>
      When the underlying ATS is <strong>Greenhouse</strong>, a job can be created using a payload like:
    </p>

    ```json theme={null}
    {
      "remote_user_id": "019a2903-74af-78eb-8beb-d9bfce1895c7",
      "template_id": "4033879009",
      "name": "Sales Manager",
      "departments": [
        "019a1041-57f8-752d-bd75-6f5136196765"
      ],
      "offices": [
        "019a1041-5980-724f-a669-9e904be609de",
        "019a1041-5980-7d5f-ae13-0eab242cfafc"
      ],
      "openings": 1
    }
    ```

    ### Required fields

    For Greenhouse, the following fields are required when creating a job through Bindbee:

    * **template\_id**
    * **remote\_user\_id**
    * **openings**

    All IDs (`remote_user_id`, `departments`, `offices`) should be the <strong>Bindbee model IDs</strong> returned from the respective unified endpoints, not raw Greenhouse IDs.

    ### How to get `template_id`

    1. Fetch jobs from the Greenhouse connector using the Bindbee Jobs list endpoint.
    2. In the <code>raw\_data</code> of each job, look for entries where <code>is\_template</code> is <code>true</code>.
    3. Use either the <code>id</code> or <code>remote\_id</code> from that record as the <code>template\_id</code> when creating a job.

    ### Greenhouse-specific notes

    * <strong>Single department only</strong>: Greenhouse allows only one department per job. Even though the Bindbee model accepts an array in <code>departments</code>, you should send <strong>at most one</strong> department ID for Greenhouse.
    * <strong>Multiple offices allowed</strong>: You can associate multiple offices with a job by passing multiple Bindbee office IDs in the <code>offices</code> array.
    * <strong>Use unified IDs</strong>: Always use IDs from Bindbee's unified models (e.g., Departments, Offices, Remote Users) so that the same payload structure works consistently across ATS providers.
  </Accordion>
</AccordionGroup>


## OpenAPI

````yaml post /api/ats/v1/jobs
openapi: 3.1.0
info:
  title: Bindbee APIs
  version: 0.1.0
servers:
  - url: https://api.bindbee.dev
  - url: https://api-eu.bindbee.dev
security: []
paths:
  /api/ats/v1/jobs:
    post:
      tags:
        - Job
      summary: Create Job
      description: Creates a Job object with the given values.
      operationId: create_job_api_ats_v1_jobs_post
      parameters:
        - name: x-connector-token
          in: header
          required: true
          schema:
            type: string
            title: X-Connector-Token
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateAtsJob'
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - HTTPBearer: []
components:
  schemas:
    CreateAtsJob:
      properties:
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Name
          description: The name of the job.
          examples:
            - SOFTWARE ENGINEER
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Description
          description: A detailed description of the job.
          examples:
            - We are looking for a software engineer to join our team.
        code:
          anyOf:
            - type: string
            - type: 'null'
          title: Code
          description: The internal or external code that identifies the job.
          examples:
            - SE-2021-01
        status:
          anyOf:
            - type: string
            - type: 'null'
          enum:
            - OPEN
            - CLOSED
            - DRAFT
            - ARCHIVED
            - PENDING
            - '-'
          title: Status
          description: >-
            The current status of the job posting. If the value is not one of
            the defined enum values, the original value passed through will be
            returned.
          examples:
            - OPEN
        job_posting_urls:
          anyOf:
            - items:
                $ref: '#/components/schemas/AtsUrl'
              type: array
            - type: 'null'
          title: Job Posting Urls
          description: A list of URLs where the job is posted.
          examples:
            - https://www.company.com/careers/software-engineer
        confidential:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Confidential
          description: Whether the job posting is confidential.
          examples:
            - false
        departments:
          anyOf:
            - items:
                type: string
                format: uuid
              type: array
            - type: 'null'
          title: Departments
          description: A list of department identifiers associated with the job.
          examples:
            - 018b4bfb-5ece-70b1-ad5e-862a9433aa65
            - 018b4bfb-5ece-70b1-ad5e-862a9433aa23
        offices:
          anyOf:
            - items:
                type: string
                format: uuid
              type: array
            - type: 'null'
          title: Offices
          description: A list of office identifiers where the job is located.
          examples:
            - 018b4bfb-5ece-70b1-ad5e-862a9433aa65
            - 018b4bfb-5ece-70b1-ad5e-862a9433aa23
        hiring_managers:
          anyOf:
            - items:
                type: string
                format: uuid
              type: array
            - type: 'null'
          title: Hiring Managers
          description: A list of identifiers for hiring managers associated with the job.
          examples:
            - 018b4bfb-5ece-70b1-ad5e-862a9433aa65
            - 018b4bfb-5ece-70b1-ad5e-862a9433aa23
        recruiters:
          anyOf:
            - items:
                type: string
                format: uuid
              type: array
            - type: 'null'
          title: Recruiters
          description: A list of identifiers for recruiters associated with the job.
          examples:
            - 018b4bfb-5ece-70b1-ad5e-862a9433aa65
        template_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Template Id
          description: The template id associated with the job.
          examples:
            - 018b4bfb-5ece-70b1-ad5e-862a9433aa65
        remote_user_id:
          type: string
          format: uuid
          title: Remote User Id
          description: The remote user's id who is creating the job.
          examples:
            - 018b4bfb-5ece-70b1-ad5e-862a9433aa65
        openings:
          anyOf:
            - type: integer
            - type: 'null'
          title: Openings
          description: Number of openings for the job.
          examples:
            - 3
      type: object
      title: CreateAtsJob
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    AtsUrl:
      properties:
        value:
          anyOf:
            - type: string
            - type: 'null'
          title: Value
          description: The site's url.
        url_type:
          anyOf:
            - type: string
            - type: 'null'
          enum:
            - PERSONAL
            - COMPANY
            - PORTFOLIO
            - BLOG
            - SOCIAL_MEDIA
            - OTHER
            - JOB_POSTING
            - '-'
          title: Url Type
          description: >-
            The type of site. If the value is not one of the defined enum
            values, the original value passed through will be returned.
      type: object
      required:
        - value
        - url_type
      title: AtsUrl
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    HTTPBearer:
      type: http
      scheme: bearer

````