---
title: "Upsert staffing entity skill expectation"
method: POST
path: "/hris/staffing-entities/{staffing_entity_id}/skills"
tags: ["Unified HRIS API"]
---

# Upsert staffing entity skill expectation

`POST /hris/staffing-entities/{staffing_entity_id}/skills`

Add a skill expectation on a staffing entity, with an optional expected proficiency level. Re-sending the same skill updates the expectation in place.

<Note>
  This endpoint requires the permission **Manage staffing entity skills** to be enabled in [your scope config](/scopes).
</Note>

### Example Request Body

```json
{
  "skill_id": "28KMdr68N8kG9EzLwjsN9aoz",
  "expected_proficiency": 4
}
```

## Path parameters

- `staffing_entity_id` string, required — The Kombo ID of the staffing entity to attach the skill to.

## Headers

- `X-Integration-Id` string, required

## Request body

- PostHrisStaffingEntitiesStaffingEntityIdSkillsRequestBody
  - `skill_id` string, required — The Kombo ID of the skill.
  - `expected_proficiency` union — The expected proficiency for the role. The value is strictly validated against the skill's `proficiency_scale`: for a `NUMERIC` skill, submit a number within the scale's `min`–`max` range, aligned to its `step`; for a `SINGLE_SELECT` skill, submit the Kombo ID of one of the scale's `ordered_options`. Omit to attach the skill without an expected proficiency.
    - number, double
    - string

## Response `200`

POST /hris/staffing-entities/:staffing_entity_id/skills Positive response

- PostHrisStaffingEntitiesStaffingEntityIdSkillsPositiveResponse
  - `status` 'success', required
  - `data` object, required
    - `id` string, required — The globally unique ID of this object generated by Kombo. We recommend using this as a stable primary key for syncing.
    - `staffing_entity_id` string, required — The Kombo ID of the staffing entity the skill is expected on. Can be used to retrieve it from the `get staffing entities` endpoint.
    - `skill_id` string, required — The Kombo ID of the skill.
    - `expected_proficiency` union — The expected proficiency. `null` when the source system carries no proficiency on the role side.
      - object
        - `type` 'NUMERIC', required
        - `value` number, double, required — The numeric proficiency value on the scale.
      - object
        - `type` 'SINGLE_SELECT', required
        - `selected_option_id` string, required — The Kombo ID of the selected option on the scale (`proficiency_scale.ordered_options[].id`).
    - `changed_at` string, date-time, required — The timestamp when this specific record was last modified. This field only updates when properties directly on this record change, NOT when related or nested models change. For filtering that considers nested data changes, use the `updated_after` parameter which will return records when either the record itself OR its related models have been updated.
    - `remote_deleted_at` string, date-time, nullable, required — The date and time the object was deleted in the remote system. Objects are automatically marked as deleted when Kombo can't retrieve them from the remote system anymore. Kombo will also anonymize entries 14 days after they disappear.
  - `warnings` object[], required — These are the interaction warnings that are shown in the dashboard. They are meant to provide debug information to you. We recommend logging them to the console.
    - `message` string, required

## Other responses

- `default` — The standard error response with the error codes for the HRIS use case.

---

[API](https://skmtc.net/kombo/apis/kombo-api.md) · [All operations](https://skmtc.net/kombo/apis/kombo-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/kombo/kombo-api/revisions/149bf44faf1a/schema)
