Updates an existing position and returns the full updated position object. This is a partial update — include only the fields you want to change; any field not on the position's editable-fields list is silently dropped from the request.
Note: type, education, experience, category, and location.country/location.state are validated against Breezy's configured value lists and return 400 if invalid. pipeline_id, scorecard_id, and questionnaire_id, if provided, are checked for existence and return 404 if the id is not found. department and category are also checked against the company's configured departments/categories. salary (from, to, currency, period) is validated and converted into the position's internal salary_range; period may be one of the legacy period names (Hourly, Daily, Weekly, Biweekly, Monthly, Yearly) or a company-defined salary term.
ai_scoring_enabled turns AI candidate scoring (Applicant Insight) on or off for the position and must be a boolean (400 updatePositionAiScoringEnabledTypeError otherwise). Turning it on requires the company's AI candidate scoring setting; when that is off the request returns 400 updatePositionAiScoringDisabled and nothing is changed, and a company admin can turn the setting on in Breezy. The position's default evaluation criteria apply until criteria are edited in Breezy. Turning it off also turns off moving candidates automatically based on their AI score, as it does in Breezy.
A published position in a company that requires a salary range is rejected with 400 positionSalaryRangeRequired while its salary range is incomplete.
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||

