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

# Update job

> Update fields on an existing job (title, job_description, status, location, salary range, salary details, billing contact name/email, fee, dates, archive state, linked deals, linked client contacts, custom fields). Use GET /v1/jobs/statuses for valid status IDs, GET /v1/custom-fields/jobs for custom field attribute IDs, and POST /v1/deals/search to resolve deal_ids for linking. Passing deal_ids fully replaces all existing deal_jobs links for the job; passing client_contact_ids fully replaces the client contacts on the job. Changes made through the API only start automations that are set to run on API and MCP changes (runs_on_api_changes), so one call cannot start runs across hundreds of records by accident.



## OpenAPI

````yaml /api-reference/openapi-v1.json patch /v1/jobs/{id}
openapi: 3.1.0
info:
  title: Stardex API (v1)
  version: 1.0.0
  description: >-
    Stardex ATS API — manage candidates, jobs, companies, and recruiting
    workflows.
servers:
  - url: https://api.stardex.ai
    description: Production API server
security:
  - bearerAuth: []
tags:
  - name: Persons
    description: Manage person records — contacts, work history, and custom fields.
  - name: Jobs
    description: Manage job postings — pipeline stages, team members, and custom fields.
  - name: Candidates
    description: Manage candidate records and pipeline stage transitions.
  - name: Companies
    description: Browse and retrieve company records.
  - name: Lists
    description: Create, search, and retrieve saved person and company lists.
  - name: Person Activities
    description: Create and manage activity records (notes, emails, meetings) for persons.
  - name: Team Members
    description: List team members for use in search filters and assignments.
  - name: Custom Fields
    description: Retrieve custom field definitions and tag options for search filters.
paths:
  /v1/jobs/{id}:
    patch:
      tags:
        - Jobs
      summary: Update job
      description: >-
        Update fields on an existing job (title, job_description, status,
        location, salary range, salary details, billing contact name/email, fee,
        dates, archive state, linked deals, linked client contacts, custom
        fields). Use GET /v1/jobs/statuses for valid status IDs, GET
        /v1/custom-fields/jobs for custom field attribute IDs, and POST
        /v1/deals/search to resolve deal_ids for linking. Passing deal_ids fully
        replaces all existing deal_jobs links for the job; passing
        client_contact_ids fully replaces the client contacts on the job.
        Changes made through the API only start automations that are set to run
        on API and MCP changes (runs_on_api_changes), so one call cannot start
        runs across hundreds of records by accident.
      operationId: updateJob
      parameters:
        - in: path
          name: id
          required: true
          schema:
            type: string
            description: Job ID
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateJobRequest'
      responses:
        '200':
          description: Job updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateJobResponse'
              example:
                success: true
                data:
                  message: Job updated successfully
        '400':
          description: Validation error
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - false
                    description: Always false for error responses.
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        description: >-
                          Machine-readable error code (e.g. "VALIDATION_ERROR",
                          "NOT_FOUND").
                      message:
                        type: string
                        description: Human-readable error description.
                    required:
                      - code
                      - message
                required:
                  - success
                  - error
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - false
                    description: Always false for error responses.
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        description: >-
                          Machine-readable error code (e.g. "VALIDATION_ERROR",
                          "NOT_FOUND").
                      message:
                        type: string
                        description: Human-readable error description.
                    required:
                      - code
                      - message
                required:
                  - success
                  - error
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - false
                    description: Always false for error responses.
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        description: >-
                          Machine-readable error code (e.g. "VALIDATION_ERROR",
                          "NOT_FOUND").
                      message:
                        type: string
                        description: Human-readable error description.
                    required:
                      - code
                      - message
                required:
                  - success
                  - error
components:
  schemas:
    UpdateJobRequest:
      type: object
      properties:
        title:
          type: string
          minLength: 1
          description: New job title.
        job_description:
          type: string
          description: >-
            Plain-text job description. Replaces the existing description
            returned by job detail, list, and search responses.
        location:
          type:
            - string
            - 'null'
          description: Job location (e.g. "San Francisco, CA"). Pass null to clear.
        job_status_id:
          type: string
          format: uuid
          description: Job status UUID. Get valid IDs from GET /v1/jobs/statuses.
        currency_code:
          type:
            - string
            - 'null'
          pattern: ^[A-Z]{3}$
          description: ISO 4217 currency code (e.g. "USD").
        salary_min:
          type:
            - integer
            - 'null'
          minimum: 0
          description: Minimum annual salary. Pass null to clear the salary range.
        salary_max:
          type:
            - integer
            - 'null'
          minimum: 0
          description: Maximum annual salary. Pass null to clear the salary range.
        salary_range:
          type:
            - string
            - 'null'
          maxLength: 50
          description: >-
            Salary range as a single number ("120000") or a dash-separated range
            ("80000-120000"). Parsed into the same structured range as
            salary_min/salary_max. Pass null to clear. Cannot be combined with
            salary_min or salary_max in the same request.
        salary_details:
          type:
            - string
            - 'null'
          maxLength: 500
          description: >-
            Free-text salary details that complement the structured range (e.g.
            "+ 0.5% equity"). Max 500 characters. Pass null to clear.
        billing_contact_name:
          type:
            - string
            - 'null'
          maxLength: 255
          description: >-
            Name of the client-side billing contact (max 255 characters). Pass
            null to clear.
        billing_contact_email:
          type:
            - string
            - 'null'
          maxLength: 255
          format: email
          description: >-
            Email of the client-side billing contact. Must be a valid email.
            Pass null to clear.
        deal_ids:
          type: array
          items:
            type: string
            format: uuid
          maxItems: 50
          description: >-
            Deal UUIDs to link to this job. Replaces ALL existing links in the
            deal_jobs join table. Pass an empty array to remove every linked
            deal. Omit the field to leave links unchanged. Max 50 deals per
            request.
        client_contact_ids:
          type: array
          items:
            type: string
            format: uuid
          maxItems: 50
          description: >-
            Client contact UUIDs to assign to this job. Replaces ALL contacts
            currently on the job. Pass an empty array to remove every contact,
            or omit the field to leave them unchanged. Max 50 per request.
        fee:
          type:
            - number
            - 'null'
          minimum: 0
          description: Placement fee amount. Pass null to clear.
        firm_commission_percent:
          type:
            - number
            - 'null'
          minimum: 0
          maximum: 100
          description: Firm commission percentage (0–100).
        primary_url:
          type:
            - string
            - 'null'
          format: uri
          description: Primary job posting URL. Pass null to clear.
        job_function:
          type:
            - string
            - 'null'
          description: Department/function (e.g. "Engineering"). Pass null to clear.
        open_date:
          type:
            - string
            - 'null'
          pattern: ^\d{4}-\d{2}-\d{2}$
          description: Job opening date (YYYY-MM-DD).
        end_date:
          type:
            - string
            - 'null'
          pattern: ^\d{4}-\d{2}-\d{2}$
          description: Target close date (YYYY-MM-DD).
        is_archived:
          type: boolean
          description: Set true to archive the job, false to unarchive.
        custom_fields:
          type: array
          items:
            type: object
            properties:
              attribute_id:
                type: string
                format: uuid
                description: >-
                  Custom attribute definition UUID. Get from GET
                  /v1/custom-fields/jobs.
              value:
                anyOf:
                  - type: string
                  - type: number
                  - type: boolean
                  - type: 'null'
                  - type: 'null'
                description: >-
                  For scalar types: the value to set, or null to clear. For
                  single-select: pass the tag NAME or the tag option UUID from
                  GET /v1/custom-fields/jobs.
              add_values:
                type: array
                items:
                  type: string
                description: >-
                  Tags to add for multi-select fields. Pass tag NAMES or tag
                  option UUIDs.
              remove_values:
                type: array
                items:
                  type: string
                description: >-
                  Tags to remove for multi-select fields. Pass tag NAMES or tag
                  option UUIDs.
              add_team_member_ids:
                type: array
                items:
                  type: string
                  format: uuid
                description: Team member UUIDs to add for multi-team-member fields.
              remove_team_member_ids:
                type: array
                items:
                  type: string
                  format: uuid
                description: Team member UUIDs to remove for multi-team-member fields.
              add_company_ids:
                type: array
                items:
                  type: string
                  format: uuid
                description: Company UUIDs to add for multi-company fields.
              remove_company_ids:
                type: array
                items:
                  type: string
                  format: uuid
                description: Company UUIDs to remove for multi-company fields.
              clear_all:
                type: boolean
                description: >-
                  When true, removes all existing values for this multi-select,
                  multi-team-member, or multi-company attribute.
            required:
              - attribute_id
          description: >-
            Custom field values to update. Get attribute definitions from GET
            /v1/custom-fields/jobs. For select fields, pass the tag NAME or the
            tag option UUID returned in that definition.
      additionalProperties: false
    UpdateJobResponse:
      type: object
      properties:
        success:
          type: boolean
          enum:
            - true
        data:
          type: object
          properties:
            message:
              type: string
              description: Confirmation message.
          required:
            - message
      required:
        - success
        - data
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        Authenticate with a Bearer token: API key, OAuth token, or session
        token.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.