curl --request GET \
--url https://{tenant_name}.{region}.techwolf.ai/job_architecture/export \
--header 'Authorization: Bearer <token>'import requests
url = "https://{tenant_name}.{region}.techwolf.ai/job_architecture/export"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://{tenant_name}.{region}.techwolf.ai/job_architecture/export', 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/export",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://{tenant_name}.{region}.techwolf.ai/job_architecture/export"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://{tenant_name}.{region}.techwolf.ai/job_architecture/export")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://{tenant_name}.{region}.techwolf.ai/job_architecture/export")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"job_family_groups": [
{
"job_family_group_name": "IT & Engineering",
"job_count": 123,
"job_families": [
{
"external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
"job_family_name": "Mobile Development",
"job_count": 123,
"jobs": [
{
"external_id": "a3903505-eb84-42dc-a79f-5d8b1fe897b7",
"job_name": "Front End Developer",
"job_description": "The Front-End Developer is responsible for implementing visual elements that users interact with on the company's web applications.",
"low_data_availability": 123,
"issues": [
{
"issue_type": "missing_or_short_job_description"
}
],
"changes": [
{
"external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
"change_type": "add_job_description",
"change_status": "suggested"
}
]
}
],
"low_data_availability": 123
}
],
"low_data_availability": 123
}
]
}[
{
"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."
}
]Export Job Architecture hierarchy
Export the Job Architecture as a hierarchical structure.
Job Families are grouped by their job_family_group_name and consist of multiple Jobs.
Jobs that are not part of a Job Family, appear in a nameless Job Family entity.
curl --request GET \
--url https://{tenant_name}.{region}.techwolf.ai/job_architecture/export \
--header 'Authorization: Bearer <token>'import requests
url = "https://{tenant_name}.{region}.techwolf.ai/job_architecture/export"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://{tenant_name}.{region}.techwolf.ai/job_architecture/export', 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/export",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://{tenant_name}.{region}.techwolf.ai/job_architecture/export"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://{tenant_name}.{region}.techwolf.ai/job_architecture/export")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://{tenant_name}.{region}.techwolf.ai/job_architecture/export")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"job_family_groups": [
{
"job_family_group_name": "IT & Engineering",
"job_count": 123,
"job_families": [
{
"external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
"job_family_name": "Mobile Development",
"job_count": 123,
"jobs": [
{
"external_id": "a3903505-eb84-42dc-a79f-5d8b1fe897b7",
"job_name": "Front End Developer",
"job_description": "The Front-End Developer is responsible for implementing visual elements that users interact with on the company's web applications.",
"low_data_availability": 123,
"issues": [
{
"issue_type": "missing_or_short_job_description"
}
],
"changes": [
{
"external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
"change_type": "add_job_description",
"change_status": "suggested"
}
]
}
],
"low_data_availability": 123
}
],
"low_data_availability": 123
}
]
}[
{
"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
This parameter can be used to only include entities with the active attribute set to true or false. If the parameter is not set, all entities will be included.
true
The unique ID of a Skill, consisting of alphanumeric characters and hyphens. Setting this parameter will include only Job Families and Job Family Groups with Jobs that have this Skill in their Skill Profile.
1 - 100"a3903505-eb84-42dc-a79f-5e7b1fe897b7"
The external vendor vocabulary you want to use when passing the skill_id query parameter. This will only work for vendors that are activated on your tenant.
techwolf, workday, sap_attribute_library "workday"
When set to low_data_availability_flag, the response will include information about the total number of Jobs with low data availability within each Job Family or Job Family Group. For Jobs, this field is equal to 1 or 0 depending on whether the Job has low data availability.
low_data_availability_flag, issues, changes, job_description ["low_data_availability_flag"]
Response
OK
A list of Job Family Groups.
Show child attributes
Show child attributes
Was this page helpful?