---
name: "hiring_update_job"
area: "hiring"
title: "Change a job"
price: "$0.01"
method: "POST"
url: "https://api.conecto.chat/v1/tools/hiring_update_job"
mcp_server: "https://api.conecto.chat/mcp/hiring"
auth: "Authorization: Bearer <conecto_sk_ key>"
docs_url: "https://conecto.chat/tools/hiring/hiring_update_job"
---

# Change a job (`hiring_update_job`)

Changes a job's details, its criteria and filter, or opens or closes it.

Change a job's details, or open and close it (a closed job stays readable but takes no applications). Give only what changes.

Price: $0.01 a call. A call that fails costs nothing.

## Use it when

A job's text, salary, questions, criteria or stages change, the owner wants to hear only about candidates who pass a filter, or the role is filled.

## Say this to your agent

> Close the bike mechanic job. We've found someone.

## Inputs

| Name | Type | Required | Description | Allowed values | Default |
|---|---|---|---|---|---|
| `job` | string | yes | The job (its slug from hiring_list_jobs). 1 to 80 characters. |  |  |
| `title` | string | no | e.g. "Bike mechanic". 2 to 160 characters. |  |  |
| `description` | string | no | Markdown: the role, what they will do, what you look for, what you offer. 20 to 20,000 characters. |  |  |
| `department` | string | no | Up to 80 characters. |  |  |
| `location` | string | no | e.g. "Portland, OR". Up to 160 characters. |  |  |
| `workplace` | string | no |  | `"on_site"`, `"hybrid"`, `"remote"` |  |
| `employment_type` | string | no |  | `"full_time"`, `"part_time"`, `"contract"`, `"internship"`, `"temporary"` |  |
| `salary` | object | no | {"min": 52000, "max": 60000, "currency": "USD", "period": "year"} (period: hour, month or year). |  |  |
| `questions` | array of objects | no | Extra questions on the application form: [{"label", "type", "required", "help"}]. type: short_text, long_text, yes_no, choice, multi_choice (both with "options": ["...", "..."]), number, date or url. A yes_no question can set "required_answer": true or false; any other answer flags the applicant (never an automatic no). A date question can take include_time (a time too), range (a first and a last day), and earliest and latest ("2026-11-01", or "today", "today+7", "today-30"). Up to 10 items. |  |  |
| `criteria` | array of objects | no | What a screening checks: [{"text": "Three years in customer support", "required": true, "weight": 3}]. weight, 1 to 5, is how much it counts in the match score; a required one a screening does not find is named. Give a criterion's id (from hiring_list_jobs) when rewording it, so past screenings stay attached. Used by hiring_screen_queue and hiring_record_screening. Up to 10 items. |  |  |
| `stages` | array of strings | no | The steps between Applied and Hired/Rejected; default Screen, Interview, Offer. Up to 8 items. |  |  |
| `filter` | object or null | no | Who the hiring team hears about: {"min_match": 70, "required": true, "max_risk": "minor"} (the lowest match score, every required criterion shown, the most risk the checks may find). With a filter, the team is told about a candidate once your screening (hiring_record_screening) passes it, in your words: by email to the careers page's notify address and as the event hiring.candidate_passed; not about every application as it arrives. null: no filter. |  |  |
| `filter.min_match` | integer | no | 0 to 100. |  |  |
| `filter.required` | boolean | no |  |  |  |
| `filter.max_risk` | string | no |  | `"none"`, `"minor"`, `"high"` |  |
| `status` | string | no |  | `"draft"`, `"open"`, `"closed"` |  |

## Example

Written for Halverson Cycle & Repair, a bike shop with a repair workshop in Portland, Oregon.

MCP: call `hiring_update_job` on the MCP server `https://api.conecto.chat/mcp/hiring` with these arguments:

```json
{
  "job": "bike-mechanic",
  "status": "closed"
}
```

REST:

```bash
curl https://api.conecto.chat/v1/tools/hiring_update_job \
  -H "Authorization: Bearer $CONECTO_KEY" \
  -H "Content-Type: application/json" \
  -d '{"job": "bike-mechanic", "status": "closed"}'
```

## Response

```json
{
  "call_id": "5f0c8a2e-3b7d-4c1e-9a64-2d8e1f7b0c93",
  "tool": "hiring_update_job",
  "status": "succeeded",
  "replayed": false,
  "cost_usd": "$0.01",
  "balance_usd": "$19.75",
  "result": {
    "job": {
      "job": "bike-mechanic",
      "title": "Bike mechanic",
      "department": "Workshop",
      "location": "Portland, OR",
      "workplace": "on_site",
      "employment_type": "full_time",
      "salary": {
        "min": 24,
        "max": 30,
        "currency": "USD",
        "period": "hour"
      },
      "salary_text": "$24 to $30 an hour",
      "description": "We build, tune and repair city, gravel and cargo bikes in our Portland workshop. You work the stand with two other mechanics: tune-ups, brake bleeds, wheel builds and e-bike checks.\n\n**You have** two years or more in a bike shop, and your own basic tools.\n\n**We offer** paid time off, health insurance and a staff discount on bikes and parts.",
      "questions": [
        {
          "id": "q1",
          "label": "How many years have you worked as a bike mechanic?",
          "type": "number",
          "required": true
        },
        {
          "id": "q2",
          "label": "Can you lift 50 lb?",
          "type": "yes_no",
          "required": false,
          "required_answer": true
        }
      ],
      "criteria": [
        {
          "id": "c1",
          "text": "Two years as a mechanic in a bike shop",
          "required": true,
          "weight": 3
        },
        {
          "id": "c2",
          "text": "Has built wheels",
          "required": false,
          "weight": 3
        }
      ],
      "filter": null,
      "job_id": 4101,
      "status": "closed",
      "stages": [
        "Applied",
        "Screen"
      ],
      "page_url": "https://cncto.co/j/halverson-cycle-repair/bike-mechanic",
      "applicants": {
        "Applied": 2,
        "Screen": 0,
        "Interview": 0,
        "Offer": 0,
        "Hired": 0,
        "Rejected": 0
      },
      "opened_at": "2026-10-14T08:00:00+00:00",
      "closed_at": "2026-10-14T08:00:00+00:00"
    }
  }
}
```

`result`: job: the job as it now is.

## Errors

| Code | Status | When | Fix |
|---|---|---|---|
| `not_found` | 404 | No job of the business has that slug. | Call hiring_list_jobs and use one of its slugs. |
| `invalid_input` | 400 | A question, criterion, filter or salary is not valid. | Fix what the message names. |
| `stage_in_use` | 409 | Applicants are still in a stage that would go. | Move them first. |

The refusals every tool can give (401 key, 402 balance, 429 limits) are on the errors page: https://conecto.chat/docs/errors.md

## Related

- [hiring_setup_careers](https://conecto.chat/tools/hiring/hiring_setup_careers.md): Sets up the careers page at cncto.co/j/<name>: its name, intro, website, reply-to address and who hears about applications. $0.001 a call.
- [hiring_design_careers](https://conecto.chat/tools/hiring/hiring_design_careers.md): Gives the careers and job pages the business's own look: colours, a font, corners, a cover, a headline and its own CSS. $0.001 a call.
- [hiring_create_job](https://conecto.chat/tools/hiring/hiring_create_job.md): Posts a job with its own page and application form on the careers page. $0.01 a call.
- [hiring_list_jobs](https://conecto.chat/tools/hiring/hiring_list_jobs.md): The business's jobs with their status, page and applicants per stage. Free up to 1,000,000 reads a month.
- [hiring_list_applicants](https://conecto.chat/tools/hiring/hiring_list_applicants.md): Applicants, newest or best match first: for one job or all, by stage, screening, risk, name or email, or the ones kept as spam. Free up to 1,000,000 reads a month.
- [hiring_get_applicant](https://conecto.chat/tools/hiring/hiring_get_applicant.md): One application in full: answers, résumé link, screening and match score, the checks on who sent it, notes and history. Free up to 1,000,000 reads a month.
- [hiring_screen_queue](https://conecto.chat/tools/hiring/hiring_screen_queue.md): The next applications nobody has screened, with the job's criteria and the résumé as text, blind by default. Free up to 1,000,000 reads a month.
- [hiring_record_screening](https://conecto.chat/tools/hiring/hiring_record_screening.md): Saves a review of one application: strong, partial or weak, a summary, and each criterion with its evidence. $0.01 a call.
- [hiring_mark_spam](https://conecto.chat/tools/hiring/hiring_mark_spam.md): Moves one application to spam or back, and can block the network and email domain it came from. $0.001 a call.
- [hiring_get_blocklist](https://conecto.chat/tools/hiring/hiring_get_blocklist.md): The networks and email domains whose applications are kept as spam. Free up to 1,000,000 reads a month.
- [hiring_update_blocklist](https://conecto.chat/tools/hiring/hiring_update_blocklist.md): Blocks or unblocks networks and email domains; what comes from them is kept as spam, with no fee and no emails. $0.001 a call.
- [hiring_move_applicant](https://conecto.chat/tools/hiring/hiring_move_applicant.md): Moves an applicant to another stage of their job, with a note; the candidate is not told. $0.01 a call.
- [hiring_hire_applicant](https://conecto.chat/tools/hiring/hiring_hire_applicant.md): Hires an applicant in one call: Hired in hiring, a person in HR with their résumé on file, and their onboarding checklist started. $0.25 a call.
- [hiring_note](https://conecto.chat/tools/hiring/hiring_note.md): Adds a note to an applicant, rates them 1 to 5, or both. $0.01 a call.
- [hiring_email_applicant](https://conecto.chat/tools/hiring/hiring_email_applicant.md): Emails an applicant in the business's name; replies go to the careers page's reply-to address. $0.02 a call.
- [hiring_invite_to_interview](https://conecto.chat/tools/hiring/hiring_invite_to_interview.md): Emails an applicant a link to book an interview on one of the calendar's meeting types, and can move them to a stage. $0.05 a call.
- [hiring_save_assessment](https://conecto.chat/tools/hiring/hiring_save_assessment.md): Writes a skills test or changes one: questions scored on their own, written answers to mark, a time limit and shuffling. $0.01 a call.
- [hiring_list_assessments](https://conecto.chat/tools/hiring/hiring_list_assessments.md): The business's skills tests: title, questions, time limit, and how many were sent and completed. Free up to 1,000,000 reads a month.
- [hiring_send_assessment](https://conecto.chat/tools/hiring/hiring_send_assessment.md): Emails an applicant their own link to a skills test. $0.02 a call.
- [hiring_assessment_results](https://conecto.chat/tools/hiring/hiring_assessment_results.md): An applicant's tests: status, score, each answer against the expected one, answers to mark, time taken and how often they left the page. Free up to 1,000,000 reads a month.
- [hiring_mark_assessment](https://conecto.chat/tools/hiring/hiring_mark_assessment.md): Gives points to the written answers of a completed test. $0.01 a call.
- [hiring_delete_assessment](https://conecto.chat/tools/hiring/hiring_delete_assessment.md): Deletes a skills test with every candidate's answers to it. Free.
- [hiring_delete_applicant](https://conecto.chat/tools/hiring/hiring_delete_applicant.md): Deletes an applicant and their résumé for good. Free.
- [hiring_dashboard_link](https://conecto.chat/tools/hiring/hiring_dashboard_link.md): A one-time link to hiring at a glance: each applicant's stage and next step, the tests and interviews waiting, and the open jobs. Free up to 1,000,000 reads a month.
