Hiring

Hire an applicant

hiring_hire_applicant · Changes data · Markdown

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

From your agent’s balance. A call that fails costs nothing.

An example

Maria Santos accepted. She starts on November 2 as a mechanic, with the email maria@ from day one.

Your agent callshiring_hire_applicant$0.25 a call

The example business is Halverson Cycle & Repair, a bike shop with a repair workshop in Portland, Oregon. The reply is the one the tool really gives.

With these arguments
{
  "applicant_id": 4101,
  "start_date": "2026-11-02",
  "work_email": "maria@halversoncycle.example"
}
What comes back
{
  "person": {
    "person_id": 4101,
    "name": "Maria Santos",
    "first_name": "Maria",
    "last_name": "Santos",
    "preferred_name": null,
    "work_email": "maria@halversoncycle.example",
    "job_title": "Bike mechanic",
    "department": "Workshop",
    "location": "Portland, OR",
    "manager": null,
    "employment_type": "full_time",
    "start_date": "2026-11-02",
    "probation_end": null,
    "end_date": null,
    "status": "active",
    "personal_email": "maria.santos@example.com",
    "phone": "+1 503 555 0130",
    "birthday": null,
    "emergency_contact": null,
    "notes": null,
    "custom": {},
    "allowances": {},
    "created_at": "2026-10-14T08:00:00+00:00",
    "updated_at": "2026-10-14T08:00:00+00:00"
  },
  "applicant": {
    "applicant_id": 4101,
    "job": "bike-mechanic",
    "name": "Maria Santos",
    "email": "maria.santos@example.com",
    "phone": "+1 503 555 0130",
    "stage": "Hired",
    "rating": null,
    "source": "careers",
    "applied_at": "2026-10-14T08:00:00+00:00",
    "updated_at": "2026-10-14T08:00:00+00:00",
    "has_resume": true,
    "flags": [],
    "screened": null,
    "stage_since": "2026-10-14T08:00:00+00:00",
    "stages_reached": [
      "Applied",
      "Hired"
    ],
    "assessments": [],
    "interview": null,
    "next_step": null,
    "match_score": null,
    "screening_summary": null,
    "passed_filter_at": null,
    "risk": "high",
    "signals": {
      "risk": "high",
      "high": [
        {
          "code": "shared_phone",
          "applicant_ids": [
            2
          ],
          "text": "The same phone number is on 1 other application under another email address."
        }
      ],
      "minor": [],
      "authentic": [
        {
          "code": "name_in_email",
          "text": "Their name is in their email address."
        }
      ],
      "checked_at": "2026-10-14T08:00:00+00:00"
    },
    "spam": false
  },
  "onboarding_tasks": 0
}

Use it when

A candidate accepted the offer.

What it does

The hire in one call instead of five: the applicant moves to Hired, joins HR as a person (their name, the job's title, department and location unless given, start_date, work_email if they have one yet, their own email kept as personal_email), their résumé goes on their HR record, and the onboarding checklist named in checklist starts. Refused if they are already in HR. $0.25.

What comes back

person: the new HR record (the job's title, department and location unless given); applicant: the application, now Hired; onboarding_tasks: how many checklist tasks started. Every reply also carries cost_usd and balance_usd.

Inputs

NameTypeWhat it is
applicant_idRequiredintegerAt least 1.
start_dateRequiredstringYYYY-MM-DD. Matches ^\d{4}-\d{2}-\d{2}$.
work_emailstringUp to 254 characters.
titlestringUp to 120 characters.
departmentstringUp to 120 characters.
locationstringUp to 120 characters.
managerinteger or stringTheir manager's person_id or work email.
employment_typestringOne of: full_time,part_time,contractor,intern.
checkliststringAn onboarding checklist to start. Up to 80 characters.

The call

Over MCP, call hiring_hire_applicant on https://api.conecto.chat/mcp/hiring. Over REST:

Terminal
curl -X POST https://api.conecto.chat/v1/tools/hiring_hire_applicant \
  -H "Authorization: Bearer $CONECTO_KEY" \
  -H "Content-Type: application/json" \
  -d '{"applicant_id":4101,"start_date":"2026-11-02","work_email":"maria@halversoncycle.example"}'

When it refuses

A refused call costs nothing and says what to do next.

CodeWhenWhat to do
not_found404No applicant of the business has that applicant_id.Find them with hiring_list_applicants.
payment_required402The application came in while the balance could not pay its fee, so it is held.Top up; the application opens once its fee is paid.
already_hired409The applicant is in HR already.Find their record with hr_list_people.
not_found404The checklist or the manager is not in HR.Use a checklist from hr_get_settings and a person from hr_list_people.
invalid_input400start_date, work_email or another field is not valid.Fix the field the message names.

Give this to your agent.

Set up Conecto from https://conecto.chat/SKILL.md