curl --request POST \
--url https://{tenant_name}.{region}.techwolf.ai/job_architecture/jobs \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
"job_name": "Front End Developer",
"job_family_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
"active": true
}
'import requests
url = "https://{tenant_name}.{region}.techwolf.ai/job_architecture/jobs"
payload = {
"external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
"job_name": "Front End Developer",
"job_family_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
"active": True
}
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',
job_name: 'Front End Developer',
job_family_id: 'a3903505-eb84-42dc-a79f-5e7b1fe897b7',
active: true
})
};
fetch('https://{tenant_name}.{region}.techwolf.ai/job_architecture/jobs', 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/job_architecture/jobs",
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',
'job_name' => 'Front End Developer',
'job_family_id' => 'a3903505-eb84-42dc-a79f-5e7b1fe897b7',
'active' => true
]),
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/job_architecture/jobs"
payload := strings.NewReader("{\n \"external_id\": \"a3903505-eb84-42dc-a79f-5e7b1fe897b7\",\n \"job_name\": \"Front End Developer\",\n \"job_family_id\": \"a3903505-eb84-42dc-a79f-5e7b1fe897b7\",\n \"active\": true\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/job_architecture/jobs")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"external_id\": \"a3903505-eb84-42dc-a79f-5e7b1fe897b7\",\n \"job_name\": \"Front End Developer\",\n \"job_family_id\": \"a3903505-eb84-42dc-a79f-5e7b1fe897b7\",\n \"active\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{tenant_name}.{region}.techwolf.ai/job_architecture/jobs")
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 \"job_name\": \"Front End Developer\",\n \"job_family_id\": \"a3903505-eb84-42dc-a79f-5e7b1fe897b7\",\n \"active\": true\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": "405 Method Not Allowed",
"description": "This method is not allowed for the requested URL."
}
]"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 Job
Submit new Job information to initialise this inside the Skill Engine API. If a Job has a Job Family, the Job Skill Profile will be generated automatically, incorporating all Skills validated for the specified Job Family.
curl --request POST \
--url https://{tenant_name}.{region}.techwolf.ai/job_architecture/jobs \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
"job_name": "Front End Developer",
"job_family_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
"active": true
}
'import requests
url = "https://{tenant_name}.{region}.techwolf.ai/job_architecture/jobs"
payload = {
"external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
"job_name": "Front End Developer",
"job_family_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
"active": True
}
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',
job_name: 'Front End Developer',
job_family_id: 'a3903505-eb84-42dc-a79f-5e7b1fe897b7',
active: true
})
};
fetch('https://{tenant_name}.{region}.techwolf.ai/job_architecture/jobs', 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/job_architecture/jobs",
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',
'job_name' => 'Front End Developer',
'job_family_id' => 'a3903505-eb84-42dc-a79f-5e7b1fe897b7',
'active' => true
]),
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/job_architecture/jobs"
payload := strings.NewReader("{\n \"external_id\": \"a3903505-eb84-42dc-a79f-5e7b1fe897b7\",\n \"job_name\": \"Front End Developer\",\n \"job_family_id\": \"a3903505-eb84-42dc-a79f-5e7b1fe897b7\",\n \"active\": true\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/job_architecture/jobs")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"external_id\": \"a3903505-eb84-42dc-a79f-5e7b1fe897b7\",\n \"job_name\": \"Front End Developer\",\n \"job_family_id\": \"a3903505-eb84-42dc-a79f-5e7b1fe897b7\",\n \"active\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{tenant_name}.{region}.techwolf.ai/job_architecture/jobs")
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 \"job_name\": \"Front End Developer\",\n \"job_family_id\": \"a3903505-eb84-42dc-a79f-5e7b1fe897b7\",\n \"active\": true\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": "405 Method Not Allowed",
"description": "This method is not allowed for the requested URL."
}
]"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.
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 for Job.
The unique ID in your system, consisting of alphanumeric characters, hyphens and underscores.
1 - 100[a-zA-Z0-9_-]+"a3903505-eb84-42dc-a79f-5e7b1fe897b7"
Name of the Job.
1 - 255"Front End Developer"
ID of the Job Family.
1 - 100"a3903505-eb84-42dc-a79f-5e7b1fe897b7"
The Job will not be used in matching if active is false. This is useful when a Job is being phased out.
true
Response
No Content
Was this page helpful?