HR

Run an HR report

hr_report · Reads only · Markdown

Headcount, joiners and leavers, time off taken, or everyone's leave balances.

Free*

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

An example

How many vacation days does everyone have left this year?

Your agent callshr_reportFree*

The example business is Hansen & Voss, a restaurant-equipment wholesaler in Hamburg with 60 staff. The reply is the one the tool really gives.

With these arguments
{
  "report": "balances"
}
What comes back
{
  "report": "balances",
  "year": 2026,
  "from": "2026-01-01",
  "to": "2026-12-31",
  "leave_types": [
    "Vacation"
  ],
  "people": [
    {
      "person_id": 4103,
      "name": "Jonas Becker",
      "department": "Warehouse",
      "balances": [
        {
          "leave_type": "Vacation",
          "entitlement": "28",
          "carried_over": "0",
          "adjustments": "0",
          "approved": "3",
          "balance": "25",
          "pending": "0",
          "available_after_pending": "25"
        }
      ]
    },
    {
      "person_id": 4101,
      "name": "Lena Brandt",
      "department": "Operations",
      "balances": [
        {
          "leave_type": "Vacation",
          "entitlement": "28",
          "carried_over": "0",
          "adjustments": "0",
          "approved": "0",
          "balance": "28",
          "pending": "0",
          "available_after_pending": "28"
        }
      ]
    }
  ],
  "total": 4
}

Use it when

Someone asks how big the team is, who joined or left, or how much leave is left.

  • For a page that shows the report to a person, use view_show.

What it does

headcount: who works here on as_of (default today), by department, location and employment type, people on leave counted. joiners_leavers: who started, and whose last day fell, from-to. time_off: approved working days off from-to, per leave type and per person. balances: everyone's balance of each tracked leave type for a leave year (default the current one), paged. Periods default to this leave year so far. To show a person, put it in a view (view_show).

What comes back

The report's name and dates, and its rows: for balances the leave types and each person's balances, with the total; for headcount people by department, location and type; for joiners_leavers who started and left; for time_off the days off per type and person. Every reply also carries cost_usd and balance_usd.

Inputs

NameTypeWhat it is
reportRequiredstringOne of: headcount,joiners_leavers,time_off,balances.
as_ofstringYYYY-MM-DD. Matches ^\d{4}-\d{2}-\d{2}$.
fromstringYYYY-MM-DD. Matches ^\d{4}-\d{2}-\d{2}$.
tostringYYYY-MM-DD. Matches ^\d{4}-\d{2}-\d{2}$.
yearintegerA leave year, named by the year it starts in. Default: the current one. 2,000 to 2,100.
limitinteger1 to 500. Default: 100.
offsetintegerAt least 0. Default: 0.

The call

Over MCP, call hr_report on https://api.conecto.chat/mcp/hr. Over REST:

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

When it refuses

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

CodeWhenWhat to do
invalid_input400A date is not a date like 2026-10-01, or from is after to.Fix the date.

Give this to your agent.

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