curl --request POST \
--url https://{tenant_name}.{region}.techwolf.ai/employees/{employee_external_id}/interactions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
"interaction_type": "vacancy_liked",
"timestamp": "2023-06-08T14:42:31.130855",
"vacancy_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7"
}
'import requests
url = "https://{tenant_name}.{region}.techwolf.ai/employees/{employee_external_id}/interactions"
payload = {
"external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
"interaction_type": "vacancy_liked",
"timestamp": "2023-06-08T14:42:31.130855",
"vacancy_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
external_id: 'a3903505-eb84-42dc-a79f-5e7b1fe897b7',
interaction_type: 'vacancy_liked',
timestamp: '2023-06-08T14:42:31.130855',
vacancy_id: 'a3903505-eb84-42dc-a79f-5e7b1fe897b7'
})
};
fetch('https://{tenant_name}.{region}.techwolf.ai/employees/{employee_external_id}/interactions', 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://{tenant_name}.{region}.techwolf.ai/employees/{employee_external_id}/interactions",
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([
'external_id' => 'a3903505-eb84-42dc-a79f-5e7b1fe897b7',
'interaction_type' => 'vacancy_liked',
'timestamp' => '2023-06-08T14:42:31.130855',
'vacancy_id' => 'a3903505-eb84-42dc-a79f-5e7b1fe897b7'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://{tenant_name}.{region}.techwolf.ai/employees/{employee_external_id}/interactions"
payload := strings.NewReader("{\n \"external_id\": \"a3903505-eb84-42dc-a79f-5e7b1fe897b7\",\n \"interaction_type\": \"vacancy_liked\",\n \"timestamp\": \"2023-06-08T14:42:31.130855\",\n \"vacancy_id\": \"a3903505-eb84-42dc-a79f-5e7b1fe897b7\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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://{tenant_name}.{region}.techwolf.ai/employees/{employee_external_id}/interactions")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"external_id\": \"a3903505-eb84-42dc-a79f-5e7b1fe897b7\",\n \"interaction_type\": \"vacancy_liked\",\n \"timestamp\": \"2023-06-08T14:42:31.130855\",\n \"vacancy_id\": \"a3903505-eb84-42dc-a79f-5e7b1fe897b7\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{tenant_name}.{region}.techwolf.ai/employees/{employee_external_id}/interactions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"external_id\": \"a3903505-eb84-42dc-a79f-5e7b1fe897b7\",\n \"interaction_type\": \"vacancy_liked\",\n \"timestamp\": \"2023-06-08T14:42:31.130855\",\n \"vacancy_id\": \"a3903505-eb84-42dc-a79f-5e7b1fe897b7\"\n}"
response = http.request(request)
puts response.read_body[
{
"title": "400 Bad Request",
"description": "The request body was not structured correctly."
}
][
{
"title": "401 Unauthorized",
"description": "OAuth access token is missing, invalid or expired."
}
][
{
"title": "403 Forbidden",
"description": "You don't have access to this resource."
}
][
{
"title": "404 Not Found",
"description": "Unknown external_id describing this resource. Please create this resource first."
}
][
{
"title": "405 Method Not Allowed",
"description": "This method is not allowed for the requested URL."
}
][
{
"title": "415 Unsupported Media Type",
"description": "Content-type must be one of: application/json"
}
]"max connections reached: <limit>"[
{
"title": "503 Service Unavailable",
"description": "The Skill Engine API is currently not available. Please contact TechWolf or try again later."
}
]Create a new Interaction for an Employee
Create a new Interaction for an Employee.
curl --request POST \
--url https://{tenant_name}.{region}.techwolf.ai/employees/{employee_external_id}/interactions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
"interaction_type": "vacancy_liked",
"timestamp": "2023-06-08T14:42:31.130855",
"vacancy_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7"
}
'import requests
url = "https://{tenant_name}.{region}.techwolf.ai/employees/{employee_external_id}/interactions"
payload = {
"external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
"interaction_type": "vacancy_liked",
"timestamp": "2023-06-08T14:42:31.130855",
"vacancy_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
external_id: 'a3903505-eb84-42dc-a79f-5e7b1fe897b7',
interaction_type: 'vacancy_liked',
timestamp: '2023-06-08T14:42:31.130855',
vacancy_id: 'a3903505-eb84-42dc-a79f-5e7b1fe897b7'
})
};
fetch('https://{tenant_name}.{region}.techwolf.ai/employees/{employee_external_id}/interactions', 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://{tenant_name}.{region}.techwolf.ai/employees/{employee_external_id}/interactions",
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([
'external_id' => 'a3903505-eb84-42dc-a79f-5e7b1fe897b7',
'interaction_type' => 'vacancy_liked',
'timestamp' => '2023-06-08T14:42:31.130855',
'vacancy_id' => 'a3903505-eb84-42dc-a79f-5e7b1fe897b7'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://{tenant_name}.{region}.techwolf.ai/employees/{employee_external_id}/interactions"
payload := strings.NewReader("{\n \"external_id\": \"a3903505-eb84-42dc-a79f-5e7b1fe897b7\",\n \"interaction_type\": \"vacancy_liked\",\n \"timestamp\": \"2023-06-08T14:42:31.130855\",\n \"vacancy_id\": \"a3903505-eb84-42dc-a79f-5e7b1fe897b7\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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://{tenant_name}.{region}.techwolf.ai/employees/{employee_external_id}/interactions")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"external_id\": \"a3903505-eb84-42dc-a79f-5e7b1fe897b7\",\n \"interaction_type\": \"vacancy_liked\",\n \"timestamp\": \"2023-06-08T14:42:31.130855\",\n \"vacancy_id\": \"a3903505-eb84-42dc-a79f-5e7b1fe897b7\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{tenant_name}.{region}.techwolf.ai/employees/{employee_external_id}/interactions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"external_id\": \"a3903505-eb84-42dc-a79f-5e7b1fe897b7\",\n \"interaction_type\": \"vacancy_liked\",\n \"timestamp\": \"2023-06-08T14:42:31.130855\",\n \"vacancy_id\": \"a3903505-eb84-42dc-a79f-5e7b1fe897b7\"\n}"
response = http.request(request)
puts response.read_body[
{
"title": "400 Bad Request",
"description": "The request body was not structured correctly."
}
][
{
"title": "401 Unauthorized",
"description": "OAuth access token is missing, invalid or expired."
}
][
{
"title": "403 Forbidden",
"description": "You don't have access to this resource."
}
][
{
"title": "404 Not Found",
"description": "Unknown external_id describing this resource. Please create this resource first."
}
][
{
"title": "405 Method Not Allowed",
"description": "This method is not allowed for the requested URL."
}
][
{
"title": "415 Unsupported Media Type",
"description": "Content-type must be one of: application/json"
}
]"max connections reached: <limit>"[
{
"title": "503 Service Unavailable",
"description": "The Skill Engine API is currently not available. Please contact TechWolf or try again later."
}
]Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.
Path Parameters
Unique ID linked to an Employee, consisting of alphanumeric characters, hyphens and underscores. The unique ID in your system, consisting of alphanumeric characters, hyphens and underscores.
1 - 100[a-zA-Z0-9_-]+"a3903505-eb84-42dc-a79f-5e7b1fe897b7"
Query Parameters
The language of the input data, which has an impact on the Skill extraction. auto will automatically detect the language used in the provided data.
auto, nl, fr, en, de "en"
Body
Default structure of an Employee Interaction.
The unique Employee Interaction ID in your system, consisting of alphanumeric characters, hyphens and underscores.
1[a-zA-Z0-9_-]+"a3903505-eb84-42dc-a79f-5e7b1fe897b7"
Type of the Employee Interaction.
"vacancy_liked"
The completion date (in IS08601 format) of the Employee Interaction. This is the point in time at which the Employee interacted with a Vacancy or title. If not given, it will be automatically set to the creation time of the Employee Interaction.
"2025-05-02"
The ID of the Vacancy with which the Employee has interacted. Either a vacancy_id or a title should be provided, and not both.
"a3903505-eb84-42dc-a79f-5e7b1fe897b7"
The title with which the Employee has interacted. Either a vacancy_id or a title should be provided, but not both. A title can be any kind of free text, and does not need to be associated with an existing Vacancy.
"mechanical engineer"
Response
No Content
Was this page helpful?