---
updatedAt: 2026-04-26T21:53:04.000Z
agentTools:
  projectIndex: https://docs.classet.ai/llms.txt
---

# Update job details

Endpoint to update the details of a job by job ID.

# OpenAPI definition

```json
{
  "openapi": "3.0.0",
  "info": {
    "title": "Classet AI API",
    "description": "API documentation for AI Recruiter",
    "version": "1.0.0"
  },
  "servers": [
    {
      "url": "https://recruiter.classet.org/v1"
    }
  ],
  "paths": {
    "/jobs/{jobId}": {
      "patch": {
        "summary": "Update job details",
        "description": "Endpoint to update the details of a job by job ID.",
        "tags": [
          "Jobs"
        ],
        "parameters": [
          {
            "name": "jobId",
            "in": "path",
            "required": true,
            "description": "The ID of the job.",
            "schema": {
              "type": "string",
              "example": "JOB123456"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "title": {
                    "type": "string",
                    "description": "The title of the job"
                  },
                  "description": {
                    "type": "string",
                    "description": "The description of the job"
                  },
                  "location": {
                    "type": "object",
                    "properties": {
                      "city": {
                        "type": "string",
                        "description": "The city where the job is located"
                      },
                      "region": {
                        "type": "string",
                        "description": "The region or state where the job is located"
                      },
                      "country": {
                        "type": "string",
                        "description": "The country where the job is located"
                      },
                      "zip_code": {
                        "type": "string",
                        "description": "The zip code of the job location"
                      },
                      "region_code": {
                        "type": "string",
                        "description": "The region code of the job location"
                      },
                      "country_code": {
                        "type": "string",
                        "description": "The country code of the job location"
                      },
                      "location_str": {
                        "type": "string",
                        "description": "A string representation of the full location"
                      },
                      "workplace_type": {
                        "type": "string",
                        "enum": [
                          "remote",
                          "onsite",
                          "hybrid"
                        ]
                      }
                    },
                    "additionalProperties": false,
                    "description": "The location details of the job. If the job is remote, only 'workplace_type' is required. If the job is onsite or hybrid, city, region, and country are required."
                  },
                  "wage_lower_bound": {
                    "type": "number",
                    "description": "The lower bound of the wage range"
                  },
                  "wage_upper_bound": {
                    "type": "number",
                    "description": "The upper bound of the wage range"
                  },
                  "wage_type": {
                    "type": "string",
                    "enum": [
                      "hourly",
                      "daily",
                      "weekly",
                      "monthly",
                      "annually"
                    ],
                    "description": "The type of wage (e.g., hourly, annually)"
                  },
                  "script_id": {
                    "type": "number",
                    "description": "The ID of the script to use for the job. If not provided, a default script will be used."
                  },
                  "benefits": {
                    "type": "string",
                    "description": "The list of job benefits such as 401k, PTO, vision, dental, etc"
                  },
                  "faqs": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "description": "Frequently asked questions about the job",
                      "properties": {
                        "question": {
                          "type": "string",
                          "example": "What is the office dress code?"
                        },
                        "answer": {
                          "type": "string",
                          "example": "Casual dress code"
                        }
                      }
                    }
                  },
                  "application_questions": {
                    "type": "array",
                    "items": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/ApplicationQuestionSchema"
                        },
                        {
                          "type": "object",
                          "required": [
                            "id",
                            "title",
                            "format",
                            "required"
                          ]
                        }
                      ]
                    },
                    "description": "List of application questions."
                  },
                  "additional_subscriber_emails": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "List of additional subscriber emails that will receive candidate updates",
                    "minItems": 0,
                    "uniqueItems": true
                  },
                  "custom_data": {
                    "type": "object",
                    "nullable": true,
                    "description": "Custom metadata for the job (e.g., internal job ID, department codes)",
                    "example": {
                      "internal_job_id": "7475",
                      "department": "engineering",
                      "priority": "high"
                    },
                    "additionalProperties": true
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Job updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "job_id": {
                      "type": "string",
                      "example": "job_12345678"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "errors": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "msg": {
                            "type": "string"
                          },
                          "param": {
                            "type": "string"
                          },
                          "location": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "No API key provided",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "example": "No API key provided"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Invalid API key",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "example": "Invalid API key"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Job not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "example": "Job not found"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Failed to update job",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "example": "Failed to update job"
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "ApiKeyAuth": {
        "type": "apiKey",
        "in": "header",
        "name": "x-api-key"
      }
    },
    "schemas": {
      "ApplicationQuestionSchema": {
        "type": "object",
        "required": [
          "id",
          "title",
          "format"
        ],
        "example": {
          "id": "26vafvWSRmbhNcxJYqjCzuJg",
          "remote_id": "48b4d36a-1d4b-4c50-ada7-9519078e65b4",
          "title": "Which is your primary programming language?",
          "description": "Please enter the language you are most comfortable with.",
          "format": {
            "display_type": "SINGLE_LINE",
            "max_length": null,
            "type": "TEXT"
          },
          "index": 0,
          "required": true,
          "precondition_question_id": "4ZVteCSSgDw3BdwGzcQqGEPk",
          "precondition_options": [
            "7qd5qjPwDHarsMLFMGzXYG1K"
          ]
        },
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique ID generated by your system for this question, it will be used as a unique identifier for the question."
          },
          "remote_id": {
            "type": "string",
            "nullable": true,
            "description": "If you're integrating with an external system such as an ATS, you can use this field to store the ID of the question in that ATS."
          },
          "title": {
            "type": "string",
            "description": "The exact question being asked in your application.",
            "example": "What is the primary language you speak?"
          },
          "description": {
            "type": "string",
            "nullable": true,
            "description": "Elaboration on the question.",
            "example": "Please enter the language you are most comfortable speaking."
          },
          "format": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/FormatTextSchema"
              },
              {
                "$ref": "#/components/schemas/FormatNumberSchema"
              },
              {
                "$ref": "#/components/schemas/FormatFileSchema"
              },
              {
                "$ref": "#/components/schemas/FormatSingleSelectSchema"
              },
              {
                "$ref": "#/components/schemas/FormatMultiSelectSchema"
              },
              {
                "$ref": "#/components/schemas/FormatBooleanSchema"
              },
              {
                "$ref": "#/components/schemas/FormatDateSchema"
              },
              {
                "$ref": "#/components/schemas/FormatInformationSchema"
              },
              {
                "$ref": "#/components/schemas/FormatUnknownSchema"
              }
            ],
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "TEXT": "#/components/schemas/FormatTextSchema",
                "NUMBER": "#/components/schemas/FormatNumberSchema",
                "FILE": "#/components/schemas/FormatFileSchema",
                "SINGLE_SELECT": "#/components/schemas/FormatSingleSelectSchema",
                "MULTI_SELECT": "#/components/schemas/FormatMultiSelectSchema",
                "BOOLEAN": "#/components/schemas/FormatBooleanSchema",
                "DATE": "#/components/schemas/FormatDateSchema",
                "INFORMATION": "#/components/schemas/FormatInformationSchema",
                "UNKNOWN": "#/components/schemas/FormatUnknownSchema"
              }
            },
            "description": "The display format of the question in your application, such as multiselect, text, number, etc."
          },
          "index": {
            "type": "number",
            "nullable": true,
            "description": "The order of how the question appears within your application."
          },
          "required": {
            "type": "boolean",
            "nullable": true,
            "description": "Whether the question is required within your application."
          },
          "precondition_question_id": {
            "type": "string",
            "nullable": true,
            "description": "ID of the preceding question that conditions this question."
          },
          "precondition_options": {
            "oneOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "array",
                "items": {
                  "type": "boolean"
                }
              }
            ],
            "description": "Where the screening question specified by precondition_question_id is of type MULTI_SELECT or SINGLE_SELECT, this is an array of application question ids describing the valid options. If the question is of type BOOLEAN, this is an array containing either true or false."
          }
        }
      },
      "OptionSchema": {
        "type": "object",
        "required": [
          "id",
          "name"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "Option ID."
          },
          "remote_id": {
            "type": "string",
            "nullable": true,
            "description": "Remote ID of the option."
          },
          "name": {
            "type": "string",
            "description": "Name of the option."
          }
        }
      },
      "FormatTextSchema": {
        "type": "object",
        "required": [
          "type"
        ],
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "TEXT"
            ],
            "description": "Format type is TEXT."
          },
          "display_type": {
            "type": "string",
            "enum": [
              "SINGLE_LINE",
              "MULTI_LINE"
            ],
            "nullable": true,
            "description": "Display type of the text input."
          },
          "max_length": {
            "type": "number",
            "nullable": true,
            "description": "Maximum length of the text input."
          }
        }
      },
      "FormatNumberSchema": {
        "type": "object",
        "required": [
          "type"
        ],
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "NUMBER"
            ],
            "description": "Format type is NUMBER."
          },
          "display_type": {
            "type": "string",
            "enum": [
              "SLIDER",
              "FIELD"
            ],
            "nullable": true,
            "description": "Display type of the number input."
          },
          "max": {
            "type": "number",
            "nullable": true,
            "description": "Maximum value."
          },
          "min": {
            "type": "number",
            "nullable": true,
            "description": "Minimum value."
          }
        }
      },
      "FormatFileSchema": {
        "type": "object",
        "required": [
          "type"
        ],
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "FILE"
            ],
            "description": "Format type is FILE."
          }
        }
      },
      "FormatSingleSelectSchema": {
        "type": "object",
        "required": [
          "type",
          "options"
        ],
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "SINGLE_SELECT"
            ],
            "description": "Format type is SINGLE_SELECT."
          },
          "display_type": {
            "type": "string",
            "enum": [
              "DROPDOWN",
              "RADIO"
            ],
            "nullable": true,
            "description": "Display type of the selection."
          },
          "options": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OptionSchema"
            },
            "description": "Available options for selection."
          }
        }
      },
      "FormatMultiSelectSchema": {
        "type": "object",
        "required": [
          "type",
          "options"
        ],
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "MULTI_SELECT"
            ],
            "description": "Format type is MULTI_SELECT."
          },
          "options": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OptionSchema"
            },
            "description": "Available options for multiple selections."
          }
        }
      },
      "FormatBooleanSchema": {
        "type": "object",
        "required": [
          "type"
        ],
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "BOOLEAN"
            ],
            "description": "Format type is BOOLEAN."
          }
        }
      },
      "FormatDateSchema": {
        "type": "object",
        "required": [
          "type"
        ],
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "DATE"
            ],
            "description": "Format type is DATE."
          }
        }
      },
      "FormatInformationSchema": {
        "type": "object",
        "required": [
          "type"
        ],
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "INFORMATION"
            ],
            "description": "Format type is INFORMATION."
          }
        }
      },
      "FormatUnknownSchema": {
        "type": "object",
        "required": [
          "type",
          "raw_question"
        ],
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "UNKNOWN"
            ],
            "description": "Format type is UNKNOWN."
          },
          "raw_question": {
            "type": "string",
            "description": "Raw question text."
          }
        }
      }
    }
  },
  "security": [
    {
      "ApiKeyAuth": []
    }
  ]
}
```