curl --request POST \
--url https://api.kombo.dev/v1/hris/staffing-entities/{staffing_entity_id}/skills \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-Integration-Id: <x-integration-id>' \
--data '
{
"skill_id": "28KMdr68N8kG9EzLwjsN9aoz",
"expected_proficiency": 4
}
'import requests
url = "https://api.kombo.dev/v1/hris/staffing-entities/{staffing_entity_id}/skills"
payload = {
"skill_id": "28KMdr68N8kG9EzLwjsN9aoz",
"expected_proficiency": 4
}
headers = {
"X-Integration-Id": "<x-integration-id>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-Integration-Id': '<x-integration-id>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({skill_id: '28KMdr68N8kG9EzLwjsN9aoz', expected_proficiency: 4})
};
fetch('https://api.kombo.dev/v1/hris/staffing-entities/{staffing_entity_id}/skills', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.kombo.dev/v1/hris/staffing-entities/{staffing_entity_id}/skills",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'skill_id' => '28KMdr68N8kG9EzLwjsN9aoz',
'expected_proficiency' => 4
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"X-Integration-Id: <x-integration-id>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.kombo.dev/v1/hris/staffing-entities/{staffing_entity_id}/skills"
payload := strings.NewReader("{\n \"skill_id\": \"28KMdr68N8kG9EzLwjsN9aoz\",\n \"expected_proficiency\": 4\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Integration-Id", "<x-integration-id>")
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.kombo.dev/v1/hris/staffing-entities/{staffing_entity_id}/skills")
.header("X-Integration-Id", "<x-integration-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"skill_id\": \"28KMdr68N8kG9EzLwjsN9aoz\",\n \"expected_proficiency\": 4\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.kombo.dev/v1/hris/staffing-entities/{staffing_entity_id}/skills")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Integration-Id"] = '<x-integration-id>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"skill_id\": \"28KMdr68N8kG9EzLwjsN9aoz\",\n \"expected_proficiency\": 4\n}"
response = http.request(request)
puts response.read_body{
"status": "success",
"data": {
"id": "C8gqYqWk6N3qjvJ8vh5o3VtH",
"staffing_entity_id": "26vafvWSRmbhNcxJYqjCzuJg",
"skill_id": "28KMdr68N8kG9EzLwjsN9aoz",
"expected_proficiency": {
"type": "NUMERIC",
"value": 4
},
"changed_at": "2022-08-07T14:01:29.196Z",
"remote_deleted_at": null
},
"warnings": [
{
"message": "This is an example warning!"
}
]
}Upsert staffing entity skill expectation
Add a skill expectation on a staffing entity, with an optional expected proficiency level. Re-sending the same skill updates the expectation in place.
curl --request POST \
--url https://api.kombo.dev/v1/hris/staffing-entities/{staffing_entity_id}/skills \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-Integration-Id: <x-integration-id>' \
--data '
{
"skill_id": "28KMdr68N8kG9EzLwjsN9aoz",
"expected_proficiency": 4
}
'import requests
url = "https://api.kombo.dev/v1/hris/staffing-entities/{staffing_entity_id}/skills"
payload = {
"skill_id": "28KMdr68N8kG9EzLwjsN9aoz",
"expected_proficiency": 4
}
headers = {
"X-Integration-Id": "<x-integration-id>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-Integration-Id': '<x-integration-id>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({skill_id: '28KMdr68N8kG9EzLwjsN9aoz', expected_proficiency: 4})
};
fetch('https://api.kombo.dev/v1/hris/staffing-entities/{staffing_entity_id}/skills', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.kombo.dev/v1/hris/staffing-entities/{staffing_entity_id}/skills",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'skill_id' => '28KMdr68N8kG9EzLwjsN9aoz',
'expected_proficiency' => 4
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"X-Integration-Id: <x-integration-id>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.kombo.dev/v1/hris/staffing-entities/{staffing_entity_id}/skills"
payload := strings.NewReader("{\n \"skill_id\": \"28KMdr68N8kG9EzLwjsN9aoz\",\n \"expected_proficiency\": 4\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Integration-Id", "<x-integration-id>")
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.kombo.dev/v1/hris/staffing-entities/{staffing_entity_id}/skills")
.header("X-Integration-Id", "<x-integration-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"skill_id\": \"28KMdr68N8kG9EzLwjsN9aoz\",\n \"expected_proficiency\": 4\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.kombo.dev/v1/hris/staffing-entities/{staffing_entity_id}/skills")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Integration-Id"] = '<x-integration-id>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"skill_id\": \"28KMdr68N8kG9EzLwjsN9aoz\",\n \"expected_proficiency\": 4\n}"
response = http.request(request)
puts response.read_body{
"status": "success",
"data": {
"id": "C8gqYqWk6N3qjvJ8vh5o3VtH",
"staffing_entity_id": "26vafvWSRmbhNcxJYqjCzuJg",
"skill_id": "28KMdr68N8kG9EzLwjsN9aoz",
"expected_proficiency": {
"type": "NUMERIC",
"value": 4
},
"changed_at": "2022-08-07T14:01:29.196Z",
"remote_deleted_at": null
},
"warnings": [
{
"message": "This is an example warning!"
}
]
}Supported integrations
Supported integrations
Example Request Body
{
"skill_id": "28KMdr68N8kG9EzLwjsN9aoz",
"expected_proficiency": 4
}
Authorizations
Headers
ID of the integration you want to interact with.
Path Parameters
The Kombo ID of the staffing entity to attach the skill to.
Body
POST /hris/staffing-entities/:staffing_entity_id/skills Request body
The Kombo ID of the skill.
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.
Response
POST /hris/staffing-entities/:staffing_entity_id/skills Positive response
"success"Show child attributes
Show child attributes
{
"id": "C8gqYqWk6N3qjvJ8vh5o3VtH",
"staffing_entity_id": "26vafvWSRmbhNcxJYqjCzuJg",
"skill_id": "28KMdr68N8kG9EzLwjsN9aoz",
"expected_proficiency": { "type": "NUMERIC", "value": 4 },
"changed_at": "2022-08-07T14:01:29.196Z",
"remote_deleted_at": null
}
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.
Show child attributes
Show child attributes
Was this page helpful?