agentsclimarketplace

Apideck mcp onboard employee

Skill apideck-libraries/api-skills/providers/cursor/plugin/skills/apideck-mcp-onboard-employee

One abstraction, 146 SaaS connectors. Agent skills for Apideck's Unified API — integrate Salesforce, QuickBooks, BambooHR, Jira, Shopify and 140+ more by changing one string.

Install
npx -y skills add apideck-libraries/api-skills --skill apideck-mcp-onboard-employee

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 3 stars3 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Task playbook for converting a hired ATS applicant into an HRIS employee via the Apideck MCP server's `apideck-onboard-employee` workflow tool. First cross-unified-API workflow — requires both ATS and HRIS connections active on the consumer. Optionally moves the applicant to a "hired" stage in the ATS to close the loop.

The file declares its own license as Apache-2.0. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

6.9 KB, as published. Nobody here has run it

Onboard an employee from an applicant (Apideck MCP)

When the user has decided to hire a candidate and wants the new employee record created in their HRIS, prefer apideck-onboard-employee over manually mapping ATS fields onto an HRIS create call. The workflow fetches the applicant, maps name/contact/address fields onto the HRIS shape, creates the employee, and optionally updates the ATS stage.

When this is the right tool

User intentTool
"Onboard candidate Alice from Greenhouse to BambooHR", "Convert applicant 42 into an employee starting Monday"apideck-onboard-employee
"Create an employee from scratch (no ATS lineage)"hris-employees-create directly
"Move applicant to a different ATS stage without HRIS work"ats-applicants-update directly
"Re-hire an existing employee"Out of scope — usually a different HRIS endpoint per connector

IMPORTANT RULES

  • CONFIRM before calling. Onboard is mutating and not idempotent — calling twice creates two HRIS employee records. Always confirm with the user the applicant name, start date, department, and target HRIS.
  • CROSSES TWO UNIFIED APIS. The consumer needs both an ATS connection (Greenhouse, Lever, Workable, …) AND an HRIS connection (BambooHR, Workday, Personio, …) authorized in Vault. If either is missing the workflow throws an elicitation pointing at the missing one.
  • TWO SEPARATE SERVICE-ID HEADERS. Unlike the accounting workflows, this one takes x-apideck-ats-service-id and x-apideck-hris-service-id separately — the underlying connectors are different, and the routing has to be set per call.
  • hired_stage_id IS OPTIONAL AND SOFT-FAILS. If you pass it, the workflow tries to move the applicant to that stage in the ATS after creating the employee. If the ATS update fails, the workflow returns isError: false with a warnings[] entry — the employee was already created, and rolling back would leave the workspace in a worse state than partial success. Surface the warning to the user so they can move the applicant manually.
  • VALIDATION HAPPENS AT THE BOUNDARY. If the applicant has no first or last name, the workflow returns failingStep: "validate-applicant" before touching the HRIS — the connector would reject a blank-name employee anyway, and we'd rather fail fast.

Argument map

ArgRequiredDefaultNotes
applicant_idyesFrom ats-applicants-list.
employment_start_dateyesFirst day of employment, YYYY-MM-DD. Most HRIS connectors require this.
department_idnoFrom hris-departments-list. Some HRIS connectors require it; others derive from job.
titlenoapplicant's headline or titleJob title.
manager_idnoReporting manager's HRIS employee id.
employment_statusno"active"One of active, inactive, pending, leave, terminated.
hired_stage_idnoIf set, moves the ATS applicant to this stage after employee creation. Soft-fails.
x-apideck-ats-service-idnofirst ATS connectionE.g. "greenhouse", "lever".
x-apideck-hris-service-idnofirst HRIS connectionE.g. "bamboohr", "workday".

Result shape

Success (no stage move)

{
  "applicant_id": "app-1",
  "employee_id": "emp-99",
  "first_name": "Ada",
  "last_name": "Lovelace",
  "employment_start_date": "2026-05-01",
  "title": "Senior Engineer",
  "department_id": "dept-eng",
  "ats_service_id": "greenhouse",
  "hris_service_id": "bamboohr"
}

Soft-fail (employee created, stage move failed)

{
  "applicant_id": "app-1",
  "employee_id": "emp-99",
  "first_name": "Ada",
  "last_name": "Lovelace",
  ...
  "warnings": [
    "Employee created but ATS stage update failed: Greenhouse momentarily unavailable. Move the applicant to the Hired stage manually."
  ]
}

isError: false. Tell the user the employee landed in HRIS, and they need to mark the applicant Hired manually.

Hard fail

{
  "applicant_id": "app-X",
  "error": "...",
  "failingStep": "ats-applicants-get" | "validate-applicant" | "hris-employees-create",
  "upstream": { ... }
}

failingStep values:

  • ats-applicants-get — applicant ID wrong, ATS connection missing, or ATS connector down. Likely an elicitation if connection-level.
  • validate-applicant — applicant has no first/last name; can't create a usable employee.
  • hris-employees-create — HRIS rejected the body. Inspect upstream for the per-connector reason (often department_id required or manager_id invalid).

Worked example

User: "Onboard applicant app-1 (Ada Lovelace) into BambooHR starting May 1, engineering department, manager mgr-7. Move them to the Hired stage in Greenhouse."

  1. Confirm: "Creating BambooHR employee Ada Lovelace, start 2026-05-01, department dept-eng, manager mgr-7. Will also move the Greenhouse applicant to stage stage-hired. Confirm?"
  2. On confirmation:
    {
      "name": "apideck-onboard-employee",
      "arguments": {
        "applicant_id": "app-1",
        "employment_start_date": "2026-05-01",
        "department_id": "dept-eng",
        "manager_id": "mgr-7",
        "hired_stage_id": "stage-hired",
        "x-apideck-ats-service-id": "greenhouse",
        "x-apideck-hris-service-id": "bamboohr"
      }
    }
    
  3. Surface employee_id to the user. If warnings[] is present, tell them what didn't happen.

Common failure modes

SymptomCauseFix
failingStep: validate-applicantApplicant record has empty name fieldsVerify applicant ID; consider whether the ATS exposes the name under a different field name
failingStep: hris-employees-create with department_id requiredConnector requires explicit departmentPass department_id from hris-departments-list
warnings[] with stage-update failureOptional ATS update failed after employee was createdTell user to mark applicant Hired manually; don't retry the workflow (would create a duplicate employee)
UrlElicitationRequiredError for ATS or HRISEither connection missingSurface consent URL for the named unified API, retry

Related

Gives 0 of the 12 instructions most mcp tooling skills give

Counted across 638 of the 750 authors here whose files we hold, read 2026-08-06

  • create ten complex read-only evaluation questionsin 71 of 638, across 17 files
  • test servers using MCP Inspectorin 60 of 638, across 18 files
  • provide actionable error messagesin 56 of 638, across 14 files
  • prioritize comprehensive API coverage over specific workflowsin 54 of 638, across 12 files
  • use TypeScript and Streamable HTTP for remote serversin 53 of 638, across 7 files
  • define structured output schemas where possiblein 51 of 638, across 9 files
  • use Zod or Pydantic for input schemasin 48 of 638, across 6 files
  • fetch MCP specification pages with markdown suffixin 46 of 638, across 4 files
  • load framework documentation using WebFetchin 45 of 638, across 3 files
  • verify each evaluation answer independentlyin 45 of 638, across 3 files
  • implement API client with authentication and paginationin 45 of 638, across 3 files
  • Define input schemas with validationin 28 of 638, across 10 files

Said here and by no other author read

  • prefer the onboard workflow over manual field mapping
  • confirm details before calling the workflow
  • set service ID headers for both APIs separately
  • provide the applicant ID and start date
  • pass an optional hired stage ID to move the applicant
  • surface the returned employee ID to the user

Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.