Hiring

List applicants

hiring_list_applicants · Reads only · Markdown

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*

*Free up to 1,000,000 reads a month for the whole account, then $0.50 per 10,000 reads.

An example

Who are the best matches for the bike mechanic job so far?

Your agent callshiring_list_applicantsFree*

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
{
  "job": "bike-mechanic"
}
What comes back
{
  "applicants": [
    {
      "applicant_id": 4102,
      "job": "bike-mechanic",
      "name": "Jan Kowalski",
      "email": "jan.kowalski@example.com",
      "phone": "+1 503 555 0130",
      "stage": "Applied",
      "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"
      ],
      "assessments": [],
      "interview": null,
      "next_step": {
        "step": "review",
        "label": "To review",
        "waiting_on": "you",
        "at": "2026-10-14T08:00:00+00:00",
        "overdue": false
      },
      "match_score": null,
      "screening_summary": null,
      "passed_filter_at": null,
      "risk": "high",
      "signals": {
        "risk": "high",
        "high": [
          {
            "code": "shared_phone",
            "applicant_ids": [
              1
            ],
            "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
    },
    {
      "applicant_id": 4101,
      "job": "bike-mechanic",
      "name": "Maria Santos",
      "email": "maria.santos@example.com",
      "phone": "+1 503 555 0130",
      "stage": "Applied",
      "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"
      ],
      "assessments": [],
      "interview": null,
      "next_step": {
        "step": "review",
        "label": "To review",
        "waiting_on": "you",
        "at": "2026-10-14T08:00:00+00:00",
        "overdue": false
      },
      "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
    }
  ],
  "total": 2
}

Use it when

Someone asks who applied, who is at a stage, who matches best, or what the checks flagged.

What it does

Applicants, newest first or by match score: for one job or all, at one stage, matching a name or email, by risk, or the ones kept as spam.

What comes back

applicants: each with their applicant_id, name, email, job, stage, rating, screening, match_score, risk, spam and dates; and the total. Every reply also carries cost_usd and balance_usd.

Inputs

NameTypeWhat it is
jobstringThe job (its slug from hiring_list_jobs). 1 to 80 characters.
stagestringUp to 60 characters.
querystringUp to 200 characters.
screenedbooleantrue: only screened ones; false: only those not yet.
matchstringOne of: strong,partial,weak.
riskstringOnly applications whose checks found high risk, minor signals, or none. One of: high,minor,none.
spambooleantrue: only applications kept as spam (from the blocklist, or marked). Default: false.
min_matchintegerOnly screened applications whose match score is at least this. 0 to 100.
sortstringmatch: the highest match score first, the unscreened last. One of: newest,match. Default: newest.
limitinteger1 to 200. Default: 50.
offsetintegerAt least 0. Default: 0.

The call

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

Terminal
curl -X POST https://api.conecto.chat/v1/tools/hiring_list_applicants \
  -H "Authorization: Bearer $CONECTO_KEY" \
  -H "Content-Type: application/json" \
  -d '{"job":"bike-mechanic"}'

When it refuses

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

CodeWhenWhat to do
not_found404No job of the business has that slug.Call hiring_list_jobs and use one of its slugs.

Give this to your agent.

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