Download OpenAPI specification:Download
The Skill Engine API is your single stop for continuous Skill tracking, matching, learning management and strategic insights. This API specification describes how to augment your existing data sources with Skills to build your workforce of tomorrow.
The Skill Engine API uses OAuth2 for authentication. You'll receive a
client_id
, client_secret
, audience
and tenant
from TechWolf to request
an Authorization token with grant_type client_credentials
at:
https://techwolf.eu.auth0.com/oauth/token
https://techwolf-us.us.auth0.com/oauth/token
Authorization tokens are limited and requesting a new token requires an HTTP request
to the token endpoint, slowing down requests. So if you're not using a standard OAuth2
client, make sure to cache this token and reuse it until it expires. The expiry
is returned by Auth0 (and also encoded in the token). More information about OAuth2
can be found here.
An example request to the token endpoint for EU tenants is as follows:
curl -X POST 'https://techwolf.eu.auth0.com/oauth/token' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-d '{"client_id": "abcd12317icwFq2x3f4v4BZlQ2sB5q2i2E",
"client_secret": "abcd1234JViv17icwFq2x3f4v4BZlQ2sB5q2i2E",
"audience": "eu3.techwolf.ai",
"grant_type": "client_credentials",
"tenant": "company_xyz"}'
The response contains the following attributes:
access_token
: the token that is to be used in the Authorization
header
of subsequent API callsexpires_in
: lifetime of the tokenscope
: access permissions of the tokentoken_type
: default Bearer
An example response can be found below:
{
"access_token": "eyJhbGciOiJSUzI0I0seiEw",
"expires_in": 10800,
"scope": "read write"
"token_type": "Bearer"
}
A list of the supported scopes can be found below:
read
: Grants read accesswrite
: Grants write accessread_reports
: Grants read access to reports (only aggregated info)You can determine which scopes should be included in your access token by specifying them in the token request. If you don't specificy the scopes, you will receive a token with all possible scopes for your tenant.
An example request to the token endpoint for EU tenants is as follows:
curl -X POST 'https://techwolf.eu.auth0.com/oauth/token' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-d '{"client_id": "abcd12317icwFq2x3f4v4BZlQ2sB5q2i2E",
"client_secret": "abcd1234JViv17icwFq2x3f4v4BZlQ2sB5q2i2E",
"audience": "eu3.techwolf.ai",
"grant_type": "client_credentials",
"tenant": "company_xyz",
"scopes": ["read", "read_reports"]}'
The token needs to be added in the Authorization header of the subsequent API
calls, in the following format Authorization: Bearer {access_token}
. To verify
if your token works, you can retrieve the version of your tenant via the
/version
endpoint:
curl -X GET '[server-url]/version' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer eyJhbGciOiJSUzI0I0seiEw'
Want to Know More? More information about the authentication process with OAuth2 can be found on the Auth0 website.
The SkillEngine API is a date-based versioned API system, such that each integrator interacts with a certain version of our product. To know your own version, you can call the version-endpoint (description can be found below).
Your version is set by us at the time your tenant is created. This version controls how your API will behave (in terms of supported parameters, response formats, etc.).
As it is possible that we introduce breaking changes in future updates that may break your code, we will not update your version unless you specifically request this. Breaking changes will always be released under a new date and can be tracked in the documentation below.
Deprecations will be announced in the documentation and will be supported for a certain period of time. After this period. After this period, the deprecation will become a breaking change. Deprecations can be tracked in the documentation below.
Non-breaking changes, on the other hand, will be supported by your API, ** regardless of your version**. An overview can also be found below.
In case you want to test a specific version of the API, e.g. when switching
versions, you can add the header X-API-Version
to your requests. The value of
this header is the version of the API you want to use, for example 2021-03-19
.
Finally, when an endpoint is marked with an tag, this means that it is "in beta" Please note that these endpoints can undergo breaking changes without any notice or promises on backwards compatibility. You should not use them in production.
POST /vacancies/{external_id}/metrics/fillability
endpoint.include=description
to
include=skill_description
in the GET /taxonomy/skills
endpoint.GET /reports/data_maturity_scan/data_improvement_actions
endpoint.POST /reports/skills_alignment
endpoint.POST /reports/workforce_alignment
endpoint.POST /reports/strategy_map
endpoint.POST /reports/skill_frequencies
endpoint.POST /reports/organization_names
endpoint.POST /reports/employee_skill_distribution
endpoint.POST /reports/vacancy_skill_distribution
endpoint.name
to skill_name
in the
GET /employees/{external_id}/skill_profile
endpoint when the
response_format
query parameter is set to skill_clusters
or domains
.GET /reports/succession_risk
endpoint.GET /reports/employees/skills
endpoint.GET /reports/employees/position_alignment
endpoint.POST /reports/replacement_risk
endpoint.count
response body field from the POST /employees/search
endpoint.count
response body field from the POST /vacancies/search
endpoint.count
response body field from the POST /companies/search
endpoint.count
response body field from the
POST /employees/{external_id}/recommended_courses
endpoint.count
response body field from the
POST /employees/{employee_external_id}/vacancies/{vacancy_external_id}/recommended_courses
endpoint.count
response body field from the
POST /employees/{employee_external_id}/jobs/{job_external_id}/recommended_courses
endpoint.count
response body field from the
POST /employees/{external_id}/matching_vacancies
endpoint.count
response body field from the
POST /employees/{external_id}/matching_companies
endpoint.count
response body field from the
POST /employees/{external_id}/matching_jobs
endpoint.count
response body field from the
POST /employees/{external_id}/matching_job_families
endpoint.count
response body field from the
POST /vacancies/{external_id}/matching_employees
endpoint.count
response body field from the
POST /companies/{external_id}/matching_employees
endpoint.count
response body field from the
POST /job_architecture/jobs/{external_id}/matching_employees
endpoint.count
response body field from the
POST /job_architecture/job_families/{external_id}/matching_employees
endpoint.GET /reports/employees/employability
endpoint.GET /employees/{external_id}/metrics/employability
endpoint.GET /vacancies/{external_id}/metrics/fillability
endpoint.language
filter in the
POST /companies/{external_id}/matching_employees
endpoint.feedback_format=skill_clusters
support for the
PATCH /vacancies/{external_id}/skill_profile
endpoint.feedback_format=skill_clusters
support for the
PATCH /courses/{external_id}/skill_profile
endpoint.response_format=skill_clusters
support for the
GET /vacancies/{external_id}/skill_profile
endpoint.response_format=skill_clusters
support for the
GET /courses/{external_id}/skill_profile
endpoint.POST /reports/clustered_trending_skills
endpoint.POST /reports/emerging_skills
endpoint.POST /employees/{external_id}/similar
endpoint.POST /vacancies/{external_id}/similar
endpoint.POST /courses/{external_id}/similar
endpoint.include=skill_match_scores
query parameter of
POST /employees/{external_id}/matching_job_families
skill_type
field with skill_types
for the skills
response
body field of the GET /job_architecture/job/{job_id}/skill_profile
and
GET /job_architecture/job_families/{job_family_id}/skill_profile
endpoints.skill_type
field with skill_types
for the skills
field of
the records
response body field of the
POST /job_architecture/export/jobs/skill_profiles
, and
POST /job_architecture/export/job_families/skill_profiles
endpoints.skill_type
field with skill_types
for the skills
field of
skill_clusters
field of the records
response body field of the
POST /job_architecture/export/jobs/skill_clusters
.include=skill_clusters
query parameter of
POST /vacancies/{external_id}/matching_employees
and
GET /employees/{employee_external_id}/vacancies/{vacancy_external_id}/match
.relevant_experience
response body field of the
response_format=explained
query parameter to the newly added
include=relevant_experience
query parameter of the
GET /employees/{employee_external_id}/vacancies/{vacancy_external_id}/match
endpoint.skill
response body field to skill_name
of the
GET employees/{external_id}/vacancies/{external_id}/gap
endpoint.GET /job_architecture/job/{job_id}/skill_profile
endpoint has a new
Skill type called Family-Specific
.GET /job_architecture/job_families/{job_family_id}/skill_profile
endpoint has a new Skill type called Family-Specific
.skills
request body field of the SkillProfileUpdateMessage
of the
endpoint PATCH /employees/{external_id}/skill_profile
now requires either
a skill
or a skill_id
, not both.skills
request body field of the SkillProfileUpdateMessage
of the
endpoint PATCH /job_architecture/jobs/{job_external_id}/skill_profile
now
requires either a skill
or a skill_id
, not both.skills
request body field of the SkillProfileUpdateMessage
of the
endpoint
PATCH /job_architecture/job_families/{job_family_external_id}/skill_profile
now requires either a skill
or a skill_id
, not both.skills
request body field of the SkillProfileUpdateMessage
of the
endpoint PATCH /vacancies/{external_id}/skill_profile
now requires either
a skill
or a skill_id
, not both.skills
request body field of the SkillProfileUpdateMessage
of the
endpoint PATCH /courses/{external_id}/skill_profile
now requires either a
skill
or a skill_id
, not both.skills
request body field of the SkillProfileUpdateMessage
of the
endpoint PATCH /occupations/{external_id}/skill_profile
now requires
either a skill
or a skill_id
, not both.skills
request body field of the SkillProfileUpdateMessage
of the
endpoint PATCH /vacancies/{external_id}/skill_profile
now requires either
a skill
or a skill_id
, not both.skills
request body field of the SkillProfileUpdateMessage
of the
endpoint PATCH /courses/{external_id}/skill_profile
now requires either a
skill
or a skill_id
, not both.skills
request body field of the SkillProfileUpdateMessage
of the
endpoint PATCH /occupations/{external_id}/skill_profile
now requires
either a skill
or a skill_id
, not both.GET /employees/{external_id}/profile/related
endpoint.POST /employees/{external_id}/profile/related
endpoint.GET /vacancies/{external_id}/profile/related
endpoint.POST /vacancies/{external_id}/profile/related
endpoint.GET /courses/{external_id}/profile/related
endpoint.POST /courses/{external_id}/profile/related
endpoint.GET /occupations/{external_id}/profile/related
endpoint.POST /occupations/{external_id}/profile/related
endpoint.GET /skills/{skill_name}/related
endpoint.POST /skill_clusters
in favor of POST /taxonomy/skill_clusters
.DELETE /skill_clusters/{skill_cluster_id}
in favor of
DELETE /taxonomy/skill_clusters/{skill_cluster_id}
.PATCH /skill_clusters/{skill_cluster_id}
in favor of
PATCH /taxonomy/skill_clusters/{skill_cluster_id}
.PUT {entity}/{external_id}/skill_profile
endpoint.skill_event
with project_content
now assumes a textual description of
a ticket from a ticketing system (e.g. Jira, Asana, Github issues, etc.).
The previous functionality of general project descriptions is removed.desired_functions
and non_desired_functions
fields of the Employee
have been changed from lists of titles to list of Function objects. A
Function object consists of a Function title and a relative importance.competency
, competencies
or capitalized alternatives
have been renamed to skill_cluster
and skill_clusters
, and their
capitalized versions.category
, categories
or capitalized alternatives have
been renamed to domain
and domains
, and their capitalized versions.The competency
and score
fields in
PUT, PATCH /{entity}/{external_id}/skill_profile
in competencies
format
are now renamed to competency_name
and proficiency_level
respectively.
The score
fields in PUT, PATCH /{entity}/{external_id}/skill_profile
in
skills
format is replaced by has_skill
which is a boolean instead of
number.
competency
and score
fields in
GET /{entity}/{external_id}/skill_profile
in competencies
format are now
renamed to competency_name
and proficiency_level
respectively.score
field in GET /{entity}/{external_id}/skill_profile
in list
format is now optional.GET /employees/{external_id}/recommended_courses
and added POST
instead.POST /competencies/{external_id}/similar
and
POST /competencies/{external_id}/profile/related
endpoints.PUT /competencies/{external_id}/skill_profile
feedback endpoint.POST
instead of GET
.score_min_threshold
query parameter, and
defaults to 0.5 for this value instead of the previously internal 0.0.GET/POST /employees/{external_id}/matching_vacancies
,
GET/POST /vacancies/{external_id}/matching_employees
,
GET /employees/{external_id}/matching_companies
and
GET /companies/{external_id}/matching_employees
) has changed from a list
to an object containing two fields: the list of results and the total number
of results available.POST /employees/search
,
POST /vacancies/search
and POST /companies/search
) has changed from a
list to an object containing two fields: the list of search results and the
total number of results available from the free text search.GET /employees/
, GET /vacancies/
,
GET /companies/
, GET /courses/
, GET /competencies/
, GET /documents/
and GET /occupations/
) has changed from a list to an object containing two
fields: the list of results and the total number of results available.POST /employees
) and updates
(PATCH /employees/{external_id}
) no longer support uploading individual
resumes (as employee_resume
) in favour of accepting a list of multiple
resumes (as employee_documents
) with the same format.GET /employees
, GET /vacancies
,
GET /courses
, GET /occupations
, GET /competencies
and
GET /documents
) no longer support the response_format
query parameter.
The response now corresponds to the former objects
response format for all
endpoints.version
,
indicating the current version of your tenant. The version is returned as a
date (ISO-8601, ex. 2021-01-19) and no longer as a number.View all Deprecations
Introduced a skill_id
field alongside Skill names in our API endpoints to
avoid ambiguities and conflicts. Using Skill names in a request body to
denote or update a Skill is deprecated, please use skill_id
instead.
Existing functionality is backward-compatible.
The following endpoints are affected:
PATCH /employees/{external_id}/skill_profile
PATCH /job_architecture/job_families/{job_family_external_id}/skill_profile
PATCH /job_architecture/jobs/{job_external_id}/skill_profile
PATCH /vacancies/{external_id}/skill_profile
PATCH /courses/{external_id}/skill_profile
PATCH /occupations/{external_id}/skill_profile
The list below gives a sorted overview of non-breaking changes to the SkillEngine API. These changes are immediately available to you, will be supported by your API, regardless of your version.
include=proficiency_level
and include=critical
options to the include body
parameter of the POST /job_architecture/export/jobs/skill_profiles
endpoint.limit
, offset
, and update_low_data_availability
query parameters
to the GET /reports/data_maturity_scan/employee_maturity_overview
and
GET /reports/data_maturity_scan/job_maturity_overview
endpoints.include=skill_cluster_description
parameter to the
GET /taxonomy/skill_clusters
endpoint.skill_cluster_description
response body field and query parameter
include=skill_cluster_description
to the GET taxonomy/export
endpoint.PATCH /taxonomy/skills/{skill_id}
endpoint.GET /taxonomy/skills
,
GET /taxonomy/skills/{skill_id}
, and GET /taxonomy/export
endpoints if
one is set.update_skill
operation type to the GET /taxonomy/changes
and
POST /taxonomy/apply
endpoints.include=skill_description
parameter to the
/taxonomy/skill_clusters/{skill_cluster_external_id}/skills
endpoint.GET /job_architecture/jobs/{job_external_id}/market_skill_profiles
and
POST /job_architecture/export/jobs/market_skill_profiles
endpoints.proficiency_level
and critical
attributes to the request body of
the PATCH /job_architecture/jobs/{job_external_id}/skill_profile
endpoint.proficiency_level
and critical
attributes to the request body of
the
PATCH /job_architecture/job_families/{job_family_external_id}/skill_profile
endpoint.include=proficiency_level
and include=critical
query parameters
to the GET /job_architecture/jobs/{job_external_id}/skill_profile
and
GET /job_architecture/job_families/{job_family_external_id}/skill_profile
endpoints.POST /job_architecture/jobs/metrics/adoption_metrics
endpoint.POST /employees/metrics/adoption_metrics
endpoint.source_data
to skills
returned in
GET/job_architecture/jobs/{job_external_id}/skill_profile
and
GET/job_architecture/job_families/{job_family_external_id}/skill_profile
endpoints.active
attribute to the Organisational Unit entity.hierarchy
as a possible response format for the
GET /employees/{employee_external_id}/skill_profile
endpoint.include=custom_properties
parameter to
GET/job_architecture/job_families
, GET/job_architecture/jobs
,
GET/courses
, GET/vacancies
, GET/employees
, GET/companies
,
GET/taxonomy/domains
, GET/taxonomy/subdomains
,
GET/taxonomy/skill_clusters
and GET/taxonomy/skills
endpoints.output_skills_sorting
parameter to
GET /job_architecture/export/job_families/suggested_skill_profiles
,
GET /job_architecture/export/job_families/skill_profiles
,
GET /job_architecture/export/jobs/suggested_skill_profiles
and
GET /job_architecture/export/jobs/skill_profiles
endpoints.GET /job_architecture/jobs/{job_external_id}/market_skill_profile
endpoint.vocab_update_rename_skill
, vocab_update_merge_skill
, and
vocab_update_remove_skill
operation types to the GET /taxonomy/changes
endpoint.GET /job_architecture/jobs/{job_external_id}/matching_source_jobs
endpoint.GET /job_architecture/jobs/{job_external_id}/matching_target_jobs
endpoint.DELETE /job_architecture/job_families/{job_family_external_id}/profile_data/{job_family_profile_data_external_id}
for
DELETE /job_architecture/jobs/{job_external_id}/profile_data/{job_profile_data_external_id}
when trying to delete Skill Profile Feedback instances and respective
examples for thisGET /job_architecture/job_families/{job_family_external_id}/profile_data/{job_family_profile_data_external_id}
endpoint.skill_profile_feedback
as a data_type
to the Job Family Profile Data
of a Job Family. This new data_type
may be included the responses of
GET /job_architecture/job_families/{job_family_external_id}/profile_data
and
GET /job_architecture/job_families/{job_family_external_id}/profile_data/{job_family_profile_data_external_id}
.GET /job_architecture/jobs/{job_external_id}/profile_data/{job_profile_data_external_id}
endpoint.skill_profile_feedback
as a data_type
to the Job Profile Data of a
Job. This new data_type
may be included the responses of
GET /job_architecture/jobs/{job_external_id}/profile_data
and
GET /job_architecture/jobs/{job_external_id}/profile_data/{job_profile_data_external_id}
.skill_id
query parameter to the GET /employees
and
GET /organisational_units/export
endpoints that allows for filtering the
returned entities on whether their Skill Profile contains a certain Skill.POST /employees/suggestions/skill
endpoint that allows
to find suggested, validated, and rejected Skill suggestions for Employees.en_us
, de
, and fr
to the list of supported values for the
vocab_language
query parameters in the
GET /{entity}/{external_id}/skill_profile
,
GET /taxonomy/skill_clusters/{external_id}/skills
, GET /taxonomy/skill/
,
and GET /taxonomy/export/
endpoints.low_data_availability_flag
to the possible values of the include
query parameter of the GET /organisational_units/export
and
GET /job_architecture/export
endpoints.skill_id
query parameter to the GET /job_architecture/export
endpoint that allows for filtering the entities on whether their Skill
Profile contains a certain Skill.source_coverage
metric to the response of the
GET /reports/data_maturity_scan/job_quality_matrix
and
GET /reports/data_maturity_scan/employee_quality_matrix
endpoints.skill_name
, skill_cluster_name
, subdomain_name
, and domain_name
to the output of GET /taxonomy/changes
.subdomain_name
to output of the
POST /job_architecture/export/jobs/skill_clusters
,
POST /export/employees/skill_clusters
and
GET /employees/<employee_id>/skill_profile?response_format=skill_clusters
endpoints for 4-level Taxonomies.source_data
to the output of
GET /jobs/{job_external_id}/suggested_skill_profile
,
GET /job_families/{job_family_external_id}/suggested_skill_profile
,
POST /job_architecture/export/jobs/suggested_skill_profiles
, and
POST /job_architecture/export/job_families/suggested_skill_profiles
.POST /integrations/file_load_task
to upload a CSV-file from
S3 into the system and GET /integrations/file_load_task/{task_id}
to get
the status of the File Load Task.skill_validation_state
to the possible values of the include
query
parameter of the GET /job_architecture/export/jobs/skill_profiles
,
GET /job_architecture/export/jobs/suggested_skill_profiles
,
GET /job_architecture/export/job_families/skill_profiles
, and
GET /job_architecture/export/job_families/suggested_skill_profiles
endpoints.skill_validation_state
to the possible values of the include
query
parameter of the
GET /job_architecture/job_families/{job_family_external_id}/skill_profile
and
GET /job_architecture/job_families/{job_family_external_id}/suggested_skill_profile
endpoints.skill_validation_state
to the possible values of the include
query
parameter of the
GET /job_architecture/jobs/{job_external_id}/skill_profile
and
GET /job_architecture/jobs/{job_external_id}/suggested_skill_profile
endpoints.GET /reports/employees/key_metrics
GET /reports/jobs/key_metrics
GET /job_architecture/jobs/{job_external_id}/suggested_skill_profile
GET /organisational_units/export
to get the full
hierarchy of the Organisational Units including the total_nr_of_employees
field.organisational_unit
field to Employees that is returned in
GET /employees
and GET /employees/{external_id}
.organisational_unit
to GET /employees
to filter
Employees on their linked Organisational Unit.low_data_availability_flag
to the possible values of the
include
query parameter of the
GET /employees/{external_id}/skill_profile
and
GET /job_architecture/jobs/{job_external_id}/skill_profile
endpoints.low_data_availability_flag
to the possible values of the
include
body parameter of the POST /export/employees/skill_profiles
and
POST /job_architecture/export/jobs/skill_profiles
endpoints that allows
including the low data availability flag in the output.job_description
as Job
Profile Data. Available in the
POST /job_architecture/jobs/{job_external_id}/profile_data
and
PATCH /job_architecture/jobs/{job_external_id}/profile_data
endpoint.job_family_description
as
Job Family Profile Data. Available in the
POST /job_architecture/job_families/{job_family_external_id}/profile_data
and
PATCH /job_architecture/job_families/{job_family_external_id}/profile_data
endpoint.low_data_availability
attribute to the Employee entity.low_data_availability
attribute to the Job entity.GET /reports/data_maturity_scan/employee_quality_matrix
GET /reports/data_maturity_scan/job_quality_matrix
GET /reports/data_maturity_scan/employee_maturity_overview
GET /reports/data_maturity_scan/job_maturity_overview
GET /reports/data_maturity_scan/data_improvement_actions
rejected_skills
to the possible values of the include
body
parameter of the POST /export/employees/skill_profiles
endpoint that
allows including rejected Skills in the output.GET /employees/{employee_external_id}/jobs/{job_external_id}/match
endpoint that allows to match an Employee with a Job.POST /employees/{employee_external_id}/matching_jobs
endpoint that
allows to find the top matching Jobs for an Employee.POST /job_architecture/jobs/{external_id}/matching_employees
endpoint
that allows to find the top matching Employees for a Job.POST /job_architecture/job_families/{external_id}/matching_employees
endpoint that allows to find the top matching Employees for a Job Family.POST /employees/{employee_external_id}/jobs/{job_external_id}/recommended_courses
endpoint that recommends Courses to address the Skill Gap between the
Employee and the Job.GET /employees/{employee_external_id}/job_families/{job_family_external_id}/match
endpoint that allows to match an Employee with a Job Family.GET /employees/{employee_external_id}/match_assigned_position
endpoint
that allows to match an Employee with their assigned position.POST /export/employees/match_assigned_position
endpoint that allows to
match Employees with their assigned position in bulk.output_skills_sorting
body parameter to the
POST /export/employees/skill_profiles
endpoint, allowing alphabetical
to
sort the Skills in the resulting profiles alphabetically, or confidence
to
sort them by decreasing confidence.is_active
filter to the
POST /job_architecture/export/jobs/skill_profiles
,
POST /job_architecture/export/jobs/suggested_skill_profiles
,
POST /job_architecture/export/jobs/skill_clusters
,
POST /job_architecture/export/job_families/skill_profiles
,
POST /job_architecture/export/job_families/suggested_skill_profiles
,
POST /export/employees/skill_profiles
,
POST /export/employees/skill_clusters
,
POST /export/courses/skill_profiles
export endpoints to only include
active or inactive entities in the result based on the filter value.is_active
query parameter to the GET /job_architecture/export
export
endpoint to only include active or inactive jobs and job families in the
result.is_active
query parameter to the GET /employees
, GET /vacancies
,
GET /courses
, GET /job_architecture/jobs
,
GET /job_architecture/job_families
list endpoints to only include active
or inactive entities in the result.include=entity
and include=custom_properties
query parameter to
POST /employees/{external_id}/matching_job_families
.Core
as a possible value of the skill_type
field of a Skill in
the Job Family Skill Profile.response_format=explained
query parameter to
POST /employees/{external_id}/matching_vacancies
,
POST /vacancies/{external_id}/matching_employees
and
POST /employees/{external_id}/matching_job_families
, that includes
missing_skills
and present_skills
response body fields as additional
information about the matches.include=adoption
query parameter to the taxonomy/skills/{skill_id}
endpoint to include the adoption of the Skill in Jobs and Employees in the
response.assigned_position_id
attribute to the Employee entity.PATCH /employees/<employee_id>/skill_events/<event_id>
on the
resume_document
, feedback
, goal
, project
, certificate
, learning
and ticket
event types.active
attribute to Course, Employee, Job and Job Family entity.external_vendor
, for Course, Employee, Job and
Job Family entities. Usage:GET /employee/{employee_id}/skill_profile?external_vendor={external_vendor}
GET /job_architecture/jobs/{job_external_id}/skill_profile?external_vendor={external_vendor}
GET /job_architecture/job_families/{job_family_external_id}/skill_profile?external_vendor={external_vendor}
GET /courses/{external_id}/skill_profile?external_vendor={external_vendor}
feedback_format=external_vendor_skills
, for
Course, Employee, Job and Job Family entities. Usage:PATCH /employee/{employee_id}/feedback_format=external_vendor_skills
PATCH /job_architecture/jobs/{job_external_id}/skill_profile?feedback_format=external_vendor_skills
PATCH /job_architecture/job_families/{job_family_external_id}/skill_profile?feedback_format=external_vendor_skills
PATCH /courses/{external_id}/skill_profile?feedback_format=external_vendor_skills
GET /employee{employee_external_id}/vacancy/{vacancy_external_id}/recommend_courses
POST /employee{employee_external_id}/vacancy/{vacancy_external_id}/recommend_courses
endpoint which makes use of an updated and improved methodology to recommend
Courses.POST /employee{employee_external_id}/recommend_courses
endpoint in
line with the updated and improved methodology to recommend Courses.POST /job_architecture/export/jobs/suggested_skill_profiles
endpoint
to paginate through all suggested Skill Profiles of Jobs in the API in bulk.POST /job_architecture/export/job_families/suggested_skill_profiles
endpoint to paginate through all suggested Skill Profiles of Job Families in
the API in bulk.domain_namespace
query parameter is available on the
job_architecture/export/jobs/skill_profiles
and
job_architecture/export/job_families/skill_profiles
endpoints.GET /employee/{employee_id}/skill_profile
or
POST /export/employees/skill_profiles
, the response will now include the
source_events
field on all Skills, when requesting sources.
source_events
provides more insights into which Skill Event contributes to
which skill.GET /employees/{employee_id}/skill_events/{skill_event_id}
endpoint to
be able to get a single Skill Event of an Employee.POST /job_architecture/export/jobs/skill_profiles
endpoint to paginate
through all Skill Profiles of Jobs in the API in bulk.POST /job_architecture/export/job_families/skill_profiles
endpoint to
paginate through all Skill Profiles of Job Families in the API in bulk.ticket
Skill Events.skill_notes
Job Profile Data.POST /job_architecture/export/job/skill_clusters
endpoint
and added the POST /job_architecture/export/jobs/skill_clusters
.source
attribute can now be added to each Skill Profile feedback
endpoint to indicate the source of the feedback. See all
PATCH /{entity}/{entity_id}/skill_profile
endpoints.include
query parameter can now be added to the
GET /employees/{external_id}/skill_profile
endpoint to include the source
Skill Events where the reported Skills are inferred from.POST /export/employees/skill_profiles
endpoint to get the Skill
profiles of all Employees in the API through pagination.POST /skills/lookup
endpoint to get corresponding UUIDs for a list
of Skill names.GET /job_architecture/job/{job_id}/suggested_skill_profile
to get
suggested skills for a Job.GET /job_architecture/job_families/{job_family_id}/suggested_skill_profile
to get suggested skills for a Job Family.include=custom_properties
query parameter to the
GET /taxonomy/skills/{skill_id}
endpoint to include the Custom Properties
of a Skill in the response.include=custom_properties
query parameter to the
GET /taxonomy/skill_clusters/{skill_cluster_id}
endpoint to include the
Custom Properties of Skill Clusters in the response.include=custom_properties
query parameter to the
GET /taxonomy/subdomains/{subdomain_id}
endpoint to include the Custom
Properties of Subdomains in the response.include=custom_properties
query parameter to the
GET /taxonomy/domains/{domain_id}
endpoint to include the Custom
Properties of Domains in the response.skill_id
field alongside Skill names in our API endpoints to
avoid ambiguities and conflicts. All endpoints that return Skill names will
now also return a skill_id
field. Using Skill names in a request body to
denote an update of a Skill is deprecated, please use skill_id
instead./occupations
endpoints as deprecated.vocab_language
query parameter to the
GET /{entity}/{external_id}/skill_profile
endpoints to specify the
language of the Skill names in the Skill Profile response.vocab_language
query parameter to the
GET /taxonomy/skill_clusters/{external_id}/skills
endpoint to specify the
language of the Skill names in the Skill Profile response.vocab_language
query parameter to the GET /taxonomy/skill/
endpoints to specify the language of the Skill names in the Skill Profile
response.vocab_language
query parameter to the GET /taxonomy/export/
endpoints to specify the language of the Skill names in the Skill Profile
response.domain_namespace
query parameter to
GET /job_architecture/jobs/{job_external_id}/skill_profile
endpoint to
express the Skill Domains in either TechWolf or Taxonomy Domains.domain_namespace
query parameter to
GET /job_architecture/jobs/{job_external_id}/market_skill_profile
endpoint
to express the Skill Domains in either TechWolf or Taxonomy Domains.domain_namespace
query parameter to
GET /job_architecture/job_families/{job_family_external_id}/skill_profile
endpoint to express the Skill domains in either TechWolf or Taxonomy
Domains.domain_name
response body field and domain_namespace
query parameter
to GET /taxonomy/skills/{skill_id}
endpoint to express the Skill Domains
in either TechWolf or Taxonomy Domains.domain_name
response body field and domain_namespace
query parameter
to GET /taxonomy/skills
endpoint to express the Skill Domains in either
TechWolf or Taxonomy Domains.domain_namespace
query parameter to GET /skills/search
endpoint
to express the Skill Domains in either TechWolf or Taxonomy Domains.POST /export/courses/skill_profiles
endpoint to paginate through all
Skill Profiles of Courses in the API in bulk.last_updated_with_taxonomy_changes
filter to the POST
/export/employees/skill_clusters
and POST
/job_architecture/export/job/skill_clusters
endpoints.next_starting_after
field to response of
POST /export/employees/skill_clusters
endpoint.GET /job_architecture/jobs/{job_external_id}/market_skill_profile
endpoint to get the market Skill Profile of a Job.POST /reports/job_architecture_benchmark
endpoint./skill_clusters
endpoints as deprecated.skill_description
response body field and query parameter
include=skill_description
to GET taxonomy/export
.vacancy
data type for Job Profile Data. Available in the POST
/job_architecture/jobs/{job_external_id}/profile_data
endpoint.taxonomy/changes
endpoint to view all changes to the Taxonomy
within a certain timeframe.skill_id
and skill_sources
to Skills of response body field in
GET export/employees/skill_clusters
.POST /job_architecture/export/job/skill_clusters
endpoint to fetch
Job Skill clusters and Skills in bulk.Subdomain
entity to enable a 4-level Taxonomy hierarchy.taxonomy/domains
,
taxonomy/subdomains
, taxonomy/skill_clusters
, and taxonomy/skills
.external_id
and skill_vocab
fields to the taxonomy/export
and
taxonomy/skill_cluster/<skill_custer_id>/skills
endpoints.skill_id
response body field and query parameter search_method
to
POST skills/search
.GET
and POST /taxonomy/domains
to see all Domains and create a new
Domain respectively. Add GET
, PATCH
and
DELETE /taxonomy/domains/{external_id}
to see a single Domain, update a
Domain and delete a Domain respectively.GET
and POST /taxonomy/skill_clusters
to see all Skill Clusters and
create a new Skill Cluster respectively. Add GET
, PATCH
and
DELETE /taxonomy/skill_clusters/{external_id}
to see a single Skill
Cluster, update a Skill Cluster and delete a Skill Cluster respectively.GET /taxonomy/skill_clusters/{external_id}/skills
to see all Skills in
a Skill Cluster. Add PUT
and
DELETE /taxonomy/skill_clusters/{external_id}/skills/{skill_external_id}
to add a Skill to a Skill Cluster and remove a Skill from a Skill Cluster
respectively.GET /taxonomy/skills/{concept_uuid}
and GET /taxonomy/skills
to get
meta information of a single Skill or multiple Skills.GET /taxonomy/export
to export the full structure of the Taxonomy.POST /taxonomy/apply
to apply a set of changes to the Taxonomy.skill_id
to the response body of
GET job_architecture/jobs/{job_external_id}/skill_profile
and
GET job_architecture/job_families/{job_family_external_id}/skill_profile
.PATCH /employees/{external_id}/skill_profile?feedback_format=skill_clusters
)
can now be given with a skill_cluster_id
.GET /job_architecture/export
.POST /reports/job_architecture_benchmark
.include=skill_match_scores
query parameter to the
POST /employees/{external_id}/matching_job_families
, which includes match
scores between the Employee and individual Skills in the response.POST /reports/internal_talent_mobility
.POST /reports/skill_inventory
.GET /employees/{employee_external_id}/interactions
and
GET /employees/{employee_external_id}/interactions/{interaction_external_id}
endpoints, which allow for listing all interactions of an Employee and
getting a single Interaction respectively.PUT /employees/{external_id}/skill_profile
,
PUT /vacancies/{external_id}/skill_profile
,
PUT /courses/{external_id}/skill_profile
and
PUT /occupations/{external_id}/skill_profile
endpoints.POST /employees/{employee_external_id}/matching_job_families
endpoint,
which calculates and returns matching Job Families for an Employee. Weights
are not customizable, but filtering on Custom Properties, external IDs and
the last_updated
field is allowed.used_event_types
body parameter to the
POST /employees/{employee_id}/matching_vacancies
endpoint, allowing to use
only events of certain types to be taken into account when calculating
matching Vacancies for an Employee.PATCH
on SkillEvents with type skill_notes
.POST /reports/skill_inventory
endpoint.skill_cluster_id
to the output of Employee, Vacancy, Course,
Occupation
GET /{entity}/{external_id}/skill_profile?response_format=skill_clusters
endpoints, the POST /export/employees/skill_clusters
endpoint, and the
POST /vacancies/{external_id}/matching_employees?include=skill_clusters
endpoint.POST /employees/{employee_external_id}/interactions
and
DELETE /employees/{employee_external_id}/interactions/{interaction_external_id}
endpoints, which allow the creation and deletion of Interactions between the
Employee and a title or Vacancy.PATCH /job_architecture/job_families/{job_family_external_id}/skill_profile
and PATCH /job_architecture/job/{job_external_id}/skill_profile
which
allow feedback on the Skill Profile of Job Families and Jobs respectively./companies/search
endpoint.source
field. When creating Skill Events from a
Course with a source, the source of the Course will be used if no source is
provided in the Skill Event.POST /reports/skill_inventory
endpoint to get the Skill Inventory
report./employees/{employee_external_id}/skill_events/{skill_event_external_id}
endpoint to support updating an Employee's Skill Event.job_architecture/jobs
and
job_architecture/job_families
endpoints respectively.job_architecture/job_families/{job_family_external_id}/profile_data
and
job_architecture/jobs/{job_external_id}/profile_data
endpoints
respectively.custom_property_is_in_list
filter to
POST employees/{employee_external_id}/recommended_courses
.property_value
and assigned_position
fields of an Employee to
the Skill Cluster Adoption report
(reports/employees/skill_cluster_adoption
).GET job_architecture/jobs/{job_external_id}/skill_profile
and
GET job_architecture/job_families/{job_family_external_id}/skill_profile
endpointsmatch_feedback
option for the include
parameter of the
/employees/{employee_external_id}/matching_vacancies
and
/vacancies/{vacancy_external_id}/matching_employees
endpoints, which
includes feedback given to a match in the result if applicable.custom_properties
include option when
sending to the GET job_architecture/jobs/{job_external_id}
and
GET job_architecture/job_families/{job_family_external_id}
endpoints./job_architecture/jobs/{job_external_id}/profile_data/{profile_data_external_id}
and Update
/job_architecture/job_families/{job_family_external_id}/profile_data/{profile_data_external_id}
endpoints to support updating Job Profile Data and Job Family Profile Data.job_id
at
POST /employees/{employee_external_id}/skill_events
and
PATCH /employees/{employee_external_id}/skill_events/{skill_event_external_id}
respectively/employees/{external_id}/matching_vacancies
and
/vacancies/{external_id}/matching_employees
./reports/succession_risk
endpoint.rejected_skills
include option to the
POST /export/employees/skill_clusters
endpoint.course_id
competency_type
in GET /competencies
and
GET /competencies/{external_id}
./reports/replacement_risk
endpoint./entity_type/{external_id}/skill_profile
with response_format=competencies
now return Skill information.custom_property_list_overlap
filter for Employee and Vacancy matching.GET vacancies/{vacancy_external_id}/metrics/fillability
endpoint,
which calculates the fillability metric of a Vacancy. The fillability is
influenced by the number of matching Employees and the number of Vacancies
that can be filled by those Vacancies. More matching Employees will result
in a higher fillability, and more matching Vacancies will result in a lower
fillability.POST vacancies/{vacancy_external_id}/metrics/fillability
endpoint
which allows for filtering the used entities on maximal allowed distance and
Custom Properties, and assigning weights to the different factors used in
the fillability calculation.exclude_match_feedback
filter to
POST employees/{employee_external_id}/recommended_courses
and
POST employees/{employee_external_id}/matching_vacancies
DELETE
endpoints to
employees/{employee_external_id}/vacancies/{vacancy_external_id}/match_feedback
and
employees/{employee_external_id}/courses/{course_external_id}/match_feedback
include=competencies
query parameter to
vacancies/{vacancy_external_id}/matching_employees
.include
query parameter for the
employees/{employee_external_id}/similar
endpoint. Possible values are:
entity
, competencies
and custom_properties
.validation_state
to Skills returned from
GET employees/{employee_external_id}/skill_profile
endpoint in list
and
competency
format.validation_state
to Skills returned from
POST export/employees/competencies
endpoint.exclude_match_feedback
filter to the employees/search
and
vacancies/search
endpoints.related_skills
to include
in POST export/employees/competencies
endpoint.proficiency_level
to a competency in the body is no longer
required when sending feedback via PUT
or PATCH
to
/employees/{employee_external_id}/skill_profile?feedback_format=competencies
score_breakdown
option for the include
parameter of the
/employees/{employee_external_id}/matching_vacancies
and
/vacancies/{vacancy_external_id}/matching_employees
endpoints, which
includes a breakdown of the contribution of all input weights to the total
match score in the response body.skill_notes
event type./reports/employees/competency_adoption
endpoint.POST employees/{employee_external_id}/metrics/employability
endpoint
which allows for filtering the used entities on maximal allowed distance and
Custom Properties, and assigning weights to the different factors used in
the calculation.PATCH
endpoint to vacancies/{external_id}/skill_profile
,
occupations/{external_id}/skill_profile
and
courses/{external_id}/skill_profile
.include=relevant_experience
query parameter to
employees/{employee_external_id}/matching_vacancies
and
vacancies/{vacancy_external_id}/matching_employees
.LocationAddress
inputs, city
can be used instead of postal_code
now, making one of them required instead of having postal_code
required./entity_type/{ID}/skill_profile
with
response_format=competencies
now return Skill category information.neq
) to the custom_property
filter.sources
in the /export/employees/competencies
endpoint, to be able
to track from which Skill Events the given competencies originate from.include
query parameter to
vacancies/{vacancy_external_id}/matching_employees
to allow retrieving
Employee information without extra calls.include=location
query parameter option to
employees/{employee_external_id}/matching_vacancies
validation_state
field to the /export/employees/competencies
response. Indicating whether the competencies linked to Employees are
already validated by a manager or Employee or still suggested.POST /competencies
and
PATCH /competencies/{external_id}
endpoints to change the category of a
competency.last_updated
filter for Employee and Vacancy matching.POST /export/employees/competencies
endpoint for
extracting Employee competencies and Skills from the API.GET /competencies/{external_id}/skill_profile
endpoint
returns Skill Profiles for clients who use a Taxonomy managed by TechWolf.project
and certificate
Skill Events.working_history
, education_history
, and
resume_document
Skill Events.feedback
and goal
Skill Events.include
query parameter to
employees/{employee_external_id}/recommended_courses
to allow retrieving
Course information without extra calls./employees/{employee_external_id}/skill_events/{skill_event_external_id}
endpoint to support removing an Employee's Skill Event from the API./employees/{employee_external_id}/skill_events
endpoint to support
fetching an Employee's Skill Events of a specified type in the API. The only
allowed event type is a learning_event
./employees/{employee_external_id}/skill_events
endpoint to
support the creation of Skill Events in the API. The only allowed event type
is a learning_event
./employees/{employee_external_id}/recommended_courses
endpoint,
returning the recommended Courses to improve an Employee's Skill Profile.custom_property_contains
, custom_property_contains_element
,
custom_property_is_in
and custom_property_is_in_list
configurations.
Match scores are increased when the applied condition on the matching
entities' specified Custom Property checks out.language
weight configurations.
Match scores are increased when the matching entities' language levels fall
between a range of the source entity language levels.explained
response format now return
additional category information when the explained response format is
requested./entity_type/{ID}/skill_profile
now
support response_format=categories
and thereby return Skill category
information./skills/search
now returns Skill category
information.de
) language.language=de
query parameter./employees/{employee_external_id}/vacancies/{vacancy_external_id}/match
endpoint with response_format=explained
query parameter now returns the
body with missing Skills included under the missing_skills
key./companies/{external_id}/nace
endpoint./reports/reskilling_and_deployment
endpoint.score_min_threshold
.external_id_is_in_list
filter is now supported for the Job Matching
and external Company Matching endpoints. Additionally, this filter is also
supported for the Search and Similar endpoints of Employee, Vacancy, and
external Company.language
query parameter, to
indicate the language of the input text.companies/:external_id/desired_functions
now supports the PUT
method.
Calling this method replaces all existing desired function Vacancies with
the new set.score_min_threshold
.max_geo_distance
field on Employee entities was deprecated.max_geo_distance
field on Employee entities.companies/{external_id}/desired_functions
endpoint.employees/{external_id}/matching_vacancies
and
vacancies/{external_id}/matching_employees
.request_format=free_text
query parameter on the
/companies/{external_id}/desired_functions
endpoint.desired_functions
&
non_desired_functions
attributes./vacancies/search
and /companies/search
./employees/search
, /vacancies/search
and
/companies/search
.custom_property_contains_element
filter. Entities will not be filtered out
if they contain at least one of the provided values in the list Custom
Property.custom_property
filter. If no operator is specified, the filter defaults to the equals
operator.employees
,vacancies
and companies
.employees
,vacancies
and companies
.null
value for optional fields during creation and
updating of all entities. Passing the null
value during an update will
unset the entity's attribute. Objects will be unset as null
, arrays as the
empty array []
and strings as the empty string ''
.employees/{external_id}/matching_companies
and
companies/{external_id}/matching_employees
. This will be used to filter
out entities that do not need to be considered during matching.employees/{external_id}/matching_companies
and
companies/{external_id}/matching_employees
. The weights can override some
default weights during matching (e.g. desired functions boost)./employees/search
./vacancies
and attribute company
./companies/*
.active
.
When this is field has the value false
, the Vacancy will not be used for
matching./companies/{external_id}/matching_employees
./employees/{external_id}/matching_companies
./companies/{external_id}/desired_functions
.last_updated
upon entity retrieval.employees/{external_id}/matching_vacancies
and
vacancies/{external_id}/matching_employees
. This will be used to filter
out entities that do not need to be considered during matching.employees/{external_id}/matching_vacancies
and
vacancies/{external_id}/matching_employees
. The weights can override some
default weights during matching (e.g. desired functions boost).matching_vacancies
and matching_employees
are
now the preferred way to request the matches.language
query parameter.
Supported languages are auto
, nl
, fr
and en
.max_geo_distance
attribute when creating an
Employee through the endpoint /employees
. This is used for matching if
there is no max_geo_distance
. provided as query parameter. The default
distance in our system when nothing is provided, is 50 km.Domains in the Skill Engine API allow enterprise customers to adapt Domains in their Taxonomy.
Custom Properties are supported for this entity.
Get a list of all Domains available in the system.
read
) {- "count": 2,
- "results": [
- {
- "external_id": "5cbdbdbe-5f44-4423-8157-520f8a2f429a",
- "domain_name": "IT & Engineering",
- "last_updated": "2023-05-22T13:22:39.179Z"
}, - {
- "external_id": "62d2c013-ab77-410e-b5fb-2f96eed9c1db",
- "domain_name": "Human Resources",
- "last_updated": "2023-05-22T13:22:41.165Z"
}
]
}
Create a new Domain in the system.
write
) {- "external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "domain_name": "IT & Engineering"
}
[- {
- "title": "400 Bad Request",
- "description": "The request body was not structured correctly."
}
]
Get Domain information stored in the system.
read
) {- "external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "domain_name": "IT & Engineering",
- "last_updated": "2021-01-21T17:32:28.000Z"
}
Submit the most up-to-date Domain information. Any field that is present will overwrite existing values within the system, while absent fields will be left as is.
{- "domain_name": "IT - HR"
}
[- {
- "title": "400 Bad Request",
- "description": "The request body was not structured correctly."
}
]
Delete Domain information stored inside the system. By deleting a Domain, all Skill Clusters linked to this Domain are also deleted.
[- {
- "title": "401 Unauthorized",
- "description": "OAuth access token is missing, invalid or expired."
}
]
Subdomains in the Skill Engine API allow enterprise customers to adapt
Subdomains in their Taxonomy.
By default, Subdomains are disabled. The 3-level Taxonomy only consists of
Domains, Skill Clusters and Skills. Enabling Subdomains allows a 4-level
Taxonomy consisting of Domains, Subdomains, Skill Clusters and Skills. To enable
Subdomains on your tenants, contact support@techwolf.ai!
Custom Properties are supported for this entity.
Get a list of all Subdomains available in the system.
read
) {- "count": 2,
- "results": [
- {
- "external_id": "bc3a5bc9-5f44-4423-8157-520f8a2f429a",
- "subdomain_name": "Research",
- "last_updated": "2023-05-22T13:22:39.179Z"
}, - {
- "external_id": "62d2c013-ab77-410e-b5fb-2f96eed9c1db",
- "subdomain_name": "Customer Work",
- "last_updated": "2023-05-22T13:22:41.165Z"
}
]
}
Create a new Subdomain in the system that is linked to a Domain.
write
) {- "external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "domain_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "subdomain_name": "Research"
}
[- {
- "title": "400 Bad Request",
- "description": "The request body was not structured correctly."
}
]
Get the Subdomain information stored in the system.
read
) {- "external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "domain_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "subdomain_name": "Database Management",
- "last_updated": "2021-01-21T17:32:28.000Z"
}
Submit the most up-to-date Subdomain information. Any field that is present will overwrite existing values within the system, while absent fields will be left as is.
write
) {- "domain_id": "b9734761-eb84-42dc-a79f-5e7b1fe897b7",
- "subdomain_name": "Research"
}
[- {
- "title": "400 Bad Request",
- "description": "The request body was not structured correctly."
}
]
Delete Subdomain information stored inside the system.
[- {
- "title": "401 Unauthorized",
- "description": "OAuth access token is missing, invalid or expired."
}
]
Skill Clusters in the Skill Engine API allow enterprise customers to adapt Skill Clusters in their Taxonomy.
Custom Properties are supported for this entity.
Get a list of all Skill Clusters available in the system.
read
) {- "count": 2,
- "results": [
- {
- "external_id": "bc3a5bc9-5f44-4423-8157-520f8a2f429a",
- "skill_cluster_name": "Programming Languages",
- "last_updated": "2023-05-22T13:22:39.179Z",
- "skill_cluster_description": "Knowledge of programming languages and their use in software development."
}, - {
- "external_id": "62d2c013-ab77-410e-b5fb-2f96eed9c1db",
- "skill_cluster_name": "Database Management",
- "last_updated": "2023-05-22T13:22:41.165Z",
- "skill_cluster_description": "Knowledge of actions a business takes to manipulate and control data to meet necessary conditions throughout the entire data lifecycle."
}
]
}
Create a new Skill Cluster in the system that is linked to a Domain or Subdomain. A Skill Cluster must be linked to a Domain in a 3-level Taxonomy, and it can only be linked to a Subdomain in a 4-level Taxonomy.
write
) {- "external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "domain_id": "a84574fd5-eb84-42dc-a79f-595965eacb564",
- "skill_cluster_name": "Database Management",
- "skill_cluster_description": "Knowledge of actions a business takes to manipulate and control data to meet necessary conditions throughout the entire data lifecycle."
}
[- {
- "title": "400 Bad Request",
- "description": "The request body was not structured correctly."
}
]
Get the Skill Cluster information stored in the system.
read
) {- "external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "domain_id": "5cbdbdbe-5f44-4423-8157-520f8a2f429a",
- "skill_cluster_name": "Database Management",
- "skill_cluster_description": "Knowledge of actions a business takes to manipulate and control data to meet necessary conditions throughout the entire data lifecycle.",
- "last_updated": "2021-01-21T17:32:28.000Z"
}
Submit the most up-to-date Skill Cluster information. Any field that is present will overwrite existing values within the system, while absent fields will be left as is.
write
) {- "domain_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "skill_cluster_name": "Database Management",
- "skill_cluster_description": "Knowledge of actions a business takes to manipulate and control data to meet necessary conditions throughout the entire data lifecycle."
}
[- {
- "title": "400 Bad Request",
- "description": "The request body was not structured correctly."
}
]
Delete Skill Cluster information stored inside the system.
[- {
- "title": "401 Unauthorized",
- "description": "OAuth access token is missing, invalid or expired."
}
]
Get a list of all Skills linked to a Skill Cluster.
read
) {- "count": 2,
- "results": [
- {
- "external_id": null,
- "skill_id": "4b85469d-6729-4d70-9876-a0faa2a2f63b",
- "skill_name": "Python",
- "skill_vocab": "TechWolf",
- "skill_description": "Python is a high-level programming language with an intuitive syntax and a versatile standard library. The Skill \"Python\" requires the ability to write code in the Python programming language."
}, - {
- "external_id": null,
- "skill_id": "c8c4b3a1-2d55-4dde-a71c-d7129c675a77",
- "skill_name": "SQL",
- "skill_vocab": "TechWolf",
- "skill_description": "SQL is a standard database query language.The Skill \\\"SQL\\\" requires the ability to write and execute SQL queries."
}, - {
- "external_id": null,
- "skill_id": "9844641-2d55-4dde-a71c-d684a26105849",
- "skill_name": "Job Architecture Matching",
- "skill_vocab": "TechWolf",
- "skill_description": "Job Architecture Matching is the ability to match jobs to a job architecture."
}
]
}
Add a Skill to a Skill Cluster.
write
) skill_cluster_external_id required | string The unique Skill Cluster ID in your system, consisting of alphanumeric characters, hyphens and underscores. |
skill_id required | string <uuid> (SkillId) [ 1 .. 100 ] characters [a-zA-Z0-9_-]+ The universal unique ID of the Skill, consisting of alphanumeric characters, hyphens and underscores. The Skill name connected to this id can be identified by either using the Skill Search endpoint or in any response body that contains that Skill. Example: a3903505-eb84-42dc-a79f-5e7b1fe897b7 |
[- {
- "title": "400 Bad Request",
- "description": "The request body was not structured correctly."
}
]
Remove a Skill from a Skill Cluster.
write
) skill_cluster_external_id required | any The unique Skill Cluster ID in your system, consisting of alphanumeric characters, hyphens and underscores. |
skill_id required | string <uuid> (SkillId) [ 1 .. 100 ] characters [a-zA-Z0-9_-]+ The universal unique ID of the Skill, consisting of alphanumeric characters, hyphens and underscores. The Skill name connected to this id can be identified by either using the Skill Search endpoint or in any response body that contains that Skill. Example: a3903505-eb84-42dc-a79f-5e7b1fe897b7 |
[- {
- "title": "401 Unauthorized",
- "description": "OAuth access token is missing, invalid or expired."
}
]
Skills in the Skill Engine API allow enterprise customers to get Skills in their Taxonomy.
Custom Properties are supported for this entity.
Get the Skill information stored inside the system for multiple Skills.
read
) {- "results": [
- {
- "external_id": null,
- "skill_id": "c8c4b3a1-2d55-4dde-a71c-d7129c675a77",
- "skill_name": "SQL",
- "skill_vocab": "TechWolf",
- "skill_description": "SQL is a standard database query language.The Skill \\\"SQL\\\" requires the ability to write and execute SQL queries.",
- "domain_name": "Information Technology"
}, - {
- "external_id": null,
- "skill_id": "c8c4b3a1-2d55-4dde-a71c-d7129c675a77",
- "skill_name": "Six Sigma",
- "skill_vocab": "TechWolf",
- "skill_description": "Six Sigma is a set of techniques and tools for process improvement. It was introduced by American engineer Bill Smith while working at Motorola in 1986.",
- "domain_name": ""
}
], - "count": 2
}
Get the Skill information stored inside the Vocabulary. Meta information such as the adoption of the Skill can also be requested.
read
) skill_id required | string <uuid> (SkillId) [ 1 .. 100 ] characters [a-zA-Z0-9_-]+ The universal unique ID of the Skill, consisting of alphanumeric characters, hyphens and underscores. The Skill name connected to this id can be identified by either using the Skill Search endpoint or in any response body that contains that Skill. Example: a3903505-eb84-42dc-a79f-5e7b1fe897b7 |
{- "external_id": null,
- "skill_id": "c8c4b3a1-2d55-4dde-a71c-d7129c675a77",
- "skill_name": "SQL",
- "skill_vocab": "TechWolf",
- "skill_description": "SQL is a standard database query language.The Skill \\\"SQL\\\" requires the ability to write and execute SQL queries.",
- "domain_name": "Information Technology"
}
Submit the most up-to-date skill description. The description field will overwrite the existing value in the system, while any other fields will remain unchanged. To revert to the default description provided by TechWolf, set this field to null.
write
) skill_id required | string <uuid> (SkillId) [ 1 .. 100 ] characters [a-zA-Z0-9_-]+ The universal unique ID of the Skill, consisting of alphanumeric characters, hyphens and underscores. The Skill name connected to this id can be identified by either using the Skill Search endpoint or in any response body that contains that Skill. Example: a3903505-eb84-42dc-a79f-5e7b1fe897b7 |
{- "skill_description": "SQL is a standard database query language. The Skill \"SQL\" requires the ability to write and execute SQL queries."
}
[- {
- "title": "400 Bad Request",
- "description": "The request body was not structured correctly."
}
]
Get a list of changes to the Taxonomy within a certain timeframe.
read
) {- "count": 1,
- "changes": [
- {
- "operation_type": "create_domain",
- "content": {
- "domain_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "domain_name": "HR management"
}, - "timestamp": "2021-01-21T17:32:28.000Z"
}
]
}
Apply a set of changes to the Taxonomy in the system. The changes are applied in the order they are given in the request body.
write
) required | Array of objects (ApplyChange3level) |
{- "changes": [
- {
- "operation_type": "create_domain",
- "content": {
- "domain_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "domain_name": "HR management"
}
}
]
}
[- {
- "title": "401 Unauthorized",
- "description": "OAuth access token is missing, invalid or expired."
}
]
Employees in the Skill Engine API represent either a person within your organisation or a candidate within the Job market.
More info about entities can be found on the How it Works page.
Custom Properties are supported for this entity.
Get a list of all Employees available in the system. This can for example be used to keep track of proper synchronisation between your system and the Skill Engine API.
read
) {- "count": 3,
- "results": [
- {
- "external_id": "5cbdbdbe-5f44-4423-8157-520f8a2f429a",
- "active": true,
- "location": {
- "lat": 50.0216707,
- "lng": 3.6887328
}, - "assigned_position": "HR assistant",
- "low_data_availability": true,
- "organisational_unit": "e4d3a59c-2f37-4a3f-9318-9d75e0e7a8f1",
- "last_updated": "2021-01-21T17:32:28.000Z"
}, - {
- "external_id": "62d2c013-ab77-410e-b5fb-2f96eed9c1db",
- "active": true,
- "location": {
- "lat": 51.0216707,
- "lng": 2.6887328
}, - "assigned_position": "Staffing coordinator",
- "low_data_availability": false,
- "organisational_unit": "7a9f3d72-36b4-4b39-87a2-3df1540ebf9e",
- "last_updated": "2021-01-22T15:02:00.000Z"
}, - {
- "external_id": "6129e3f1-663f-44ea-aa3f-2ce1077b834c",
- "active": true,
- "location": {
- "lat": 51.0516707,
- "lng": 4.6887328
}, - "assigned_position": "HR analyst",
- "low_data_availability": false,
- "organisational_unit": "e4d3a59c-2f37-4a3f-9318-9d75e0e7a8f1",
- "last_updated": "2021-01-21T17:46:29.000Z"
}
]
}
Submit new Employee information to initialise their Skill Profile inside the Skill Engine API.
write
) {- "external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "assigned_position": "Python Developer",
- "assigned_position_id": "b3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "active": true,
- "organisational_unit": "e4d3a59c-2f37-4a3f-9318-9d75e0e7a8f1",
- "working_history": [
- {
- "start_date": "2018-09-05",
- "end_date": "2020-06-17",
- "company": "TechWolf BV",
- "job_title": "HR Manager",
- "job_description": "Manage the HR department and perform workforce planning"
}
], - "education_history": [
- {
- "start_date": "2016-09-05",
- "end_date": "2018-09-05",
- "school": "Harvard University",
- "degree_name": "Master in Human Resources Management"
}
], - "languages": [
- {
- "language": "nl",
- "level": 2
}
], - "desired_functions": [
- {
- "title": "Business Analyst",
- "importance": 0.5
}, - {
- "title": "Police Officer",
- "importance": 1
}
], - "non_desired_functions": [ ],
- "location": {
- "lat": 51.0216707,
- "lng": 3.6887328
}, - "employee_documents": [
- {
- "mimeType": "application/pdf",
- "base64Content": "JVBERi0xLjMNCiXi48/TDQoNCjEgMCBvYmoNCjw8DQovVHlwZSAvQ2F0YWxvZw0KL091dGxpbmVzIDIgMCBSDQovUGFnZXMgMyAwIFINCj4+DQplbmRvYmoNCg0KMiAwIG9iag0KPDwNCi9UeXBlIC9PdXRsaW5lcw0KL0NvdW50IDANCj4+DQplbmRvYmoNCg0KMyAwIG9iag0KPDwNCi9UeXBlIC9QYWdlcw0KL0NvdW50IDINCi9LaWRzIFsgNCAwIFIgNiAwIFIgXSANCj4+DQplbmRvYmoNCg0KNCAwIG9iag0KPDwNCi9UeXBlIC9QYWdlDQovUGFyZW50IDMgMCBSDQovUmVzb3VyY2VzIDw8DQovRm9udCA8PA0KL0YxIDkgMCBSIA0KPj4NCi9Qcm9jU2V0IDggMCBSDQo+Pg0KL01lZGlhQm94IFswIDAgNjEyLjAwMDAgNzkyLjAwMDBdDQovQ29udGVudHMgNSAwIFINCj4+DQplbmRvYmoNCg0KNSAwIG9iag0KPDwgL0xlbmd0aCAxMDc0ID4+DQpzdHJlYW0NCjIgSg0KQlQNCjAgMCAwIHJnDQovRjEgMDAyNyBUZg0KNTcuMzc1MCA3MjIuMjgwMCBUZA0KKCBBIFNpbXBsZSBQREYgRmlsZSApIFRqDQpFVA0KQlQNCi9GMSAwMDEwIFRmDQo2OS4yNTAwIDY4OC42MDgwIFRkDQooIFRoaXMgaXMgYSBzbWFsbCBkZW1vbnN0cmF0aW9uIC5wZGYgZmlsZSAtICkgVGoNCkVUDQpCVA0KL0YxIDAwMTAgVGYNCjY5LjI1MDAgNjY0LjcwNDAgVGQNCigganVzdCBmb3IgdXNlIGluIHRoZSBWaXJ0dWFsIE1lY2hhbmljcyB0dXRvcmlhbHMuIE1vcmUgdGV4dC4gQW5kIG1vcmUgKSBUag0KRVQNCkJUDQovRjEgMDAxMCBUZg0KNjkuMjUwMCA2NTIuNzUyMCBUZA0KKCB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiApIFRqDQpFVA0KQlQNCi9GMSAwMDEwIFRmDQo2OS4yNTAwIDYyOC44NDgwIFRkDQooIEFuZCBtb3JlIHRleHQuIEFuZCBtb3JlIHRleHQuIEFuZCBtb3JlIHRleHQuIEFuZCBtb3JlIHRleHQuIEFuZCBtb3JlICkgVGoNCkVUDQpCVA0KL0YxIDAwMTAgVGYNCjY5LjI1MDAgNjE2Ljg5NjAgVGQNCiggdGV4dC4gQW5kIG1vcmUgdGV4dC4gQm9yaW5nLCB6enp6ei4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kICkgVGoNCkVUDQpCVA0KL0YxIDAwMTAgVGYNCjY5LjI1MDAgNjA0Ljk0NDAgVGQNCiggbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiApIFRqDQpFVA0KQlQNCi9GMSAwMDEwIFRmDQo2OS4yNTAwIDU5Mi45OTIwIFRkDQooIEFuZCBtb3JlIHRleHQuIEFuZCBtb3JlIHRleHQuICkgVGoNCkVUDQpCVA0KL0YxIDAwMTAgVGYNCjY5LjI1MDAgNTY5LjA4ODAgVGQNCiggQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgKSBUag0KRVQNCkJUDQovRjEgMDAxMCBUZg0KNjkuMjUwMCA1NTcuMTM2MCBUZA0KKCB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBFdmVuIG1vcmUuIENvbnRpbnVlZCBvbiBwYWdlIDIgLi4uKSBUag0KRVQNCmVuZHN0cmVhbQ0KZW5kb2JqDQoNCjYgMCBvYmoNCjw8DQovVHlwZSAvUGFnZQ0KL1BhcmVudCAzIDAgUg0KL1Jlc291cmNlcyA8PA0KL0ZvbnQgPDwNCi9GMSA5IDAgUiANCj4+DQovUHJvY1NldCA4IDAgUg0KPj4NCi9NZWRpYUJveCBbMCAwIDYxMi4wMDAwIDc5Mi4wMDAwXQ0KL0NvbnRlbnRzIDcgMCBSDQo+Pg0KZW5kb2JqDQoNCjcgMCBvYmoNCjw8IC9MZW5ndGggNjc2ID4+DQpzdHJlYW0NCjIgSg0KQlQNCjAgMCAwIHJnDQovRjEgMDAyNyBUZg0KNTcuMzc1MCA3MjIuMjgwMCBUZA0KKCBTaW1wbGUgUERGIEZpbGUgMiApIFRqDQpFVA0KQlQNCi9GMSAwMDEwIFRmDQo2OS4yNTAwIDY4OC42MDgwIFRkDQooIC4uLmNvbnRpbnVlZCBmcm9tIHBhZ2UgMS4gWWV0IG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gKSBUag0KRVQNCkJUDQovRjEgMDAxMCBUZg0KNjkuMjUwMCA2NzYuNjU2MCBUZA0KKCBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSApIFRqDQpFVA0KQlQNCi9GMSAwMDEwIFRmDQo2OS4yNTAwIDY2NC43MDQwIFRkDQooIHRleHQuIE9oLCBob3cgYm9yaW5nIHR5cGluZyB0aGlzIHN0dWZmLiBCdXQgbm90IGFzIGJvcmluZyBhcyB3YXRjaGluZyApIFRqDQpFVA0KQlQNCi9GMSAwMDEwIFRmDQo2OS4yNTAwIDY1Mi43NTIwIFRkDQooIHBhaW50IGRyeS4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gKSBUag0KRVQNCkJUDQovRjEgMDAxMCBUZg0KNjkuMjUwMCA2NDAuODAwMCBUZA0KKCBCb3JpbmcuICBNb3JlLCBhIGxpdHRsZSBtb3JlIHRleHQuIFRoZSBlbmQsIGFuZCBqdXN0IGFzIHdlbGwuICkgVGoNCkVUDQplbmRzdHJlYW0NCmVuZG9iag0KDQo4IDAgb2JqDQpbL1BERiAvVGV4dF0NCmVuZG9iag0KDQo5IDAgb2JqDQo8PA0KL1R5cGUgL0ZvbnQNCi9TdWJ0eXBlIC9UeXBlMQ0KL05hbWUgL0YxDQovQmFzZUZvbnQgL0hlbHZldGljYQ0KL0VuY29kaW5nIC9XaW5BbnNpRW5jb2RpbmcNCj4+DQplbmRvYmoNCg0KMTAgMCBvYmoNCjw8DQovQ3JlYXRvciAoUmF2ZSBcKGh0dHA6Ly93d3cubmV2cm9uYS5jb20vcmF2ZVwpKQ0KL1Byb2R1Y2VyIChOZXZyb25hIERlc2lnbnMpDQovQ3JlYXRpb25EYXRlIChEOjIwMDYwMzAxMDcyODI2KQ0KPj4NCmVuZG9iag0KDQp4cmVmDQowIDExDQowMDAwMDAwMDAwIDY1NTM1IGYNCjAwMDAwMDAwMTkgMDAwMDAgbg0KMDAwMDAwMDA5MyAwMDAwMCBuDQowMDAwMDAwMTQ3IDAwMDAwIG4NCjAwMDAwMDAyMjIgMDAwMDAgbg0KMDAwMDAwMDM5MCAwMDAwMCBuDQowMDAwMDAxNTIyIDAwMDAwIG4NCjAwMDAwMDE2OTAgMDAwMDAgbg0KMDAwMDAwMjQyMyAwMDAwMCBuDQowMDAwMDAyNDU2IDAwMDAwIG4NCjAwMDAwMDI1NzQgMDAwMDAgbg0KDQp0cmFpbGVyDQo8PA0KL1NpemUgMTENCi9Sb290IDEgMCBSDQovSW5mbyAxMCAwIFINCj4+DQoNCnN0YXJ0eHJlZg0KMjcxNA0KJSVFT0YNCg=="
}
]
}
[- {
- "title": "400 Bad Request",
- "description": "The request body was not structured correctly."
}
]
Get the Employee information stored inside the system. As resumes are not stored inside our system, they are not returned in this call.
read
) {- "last_updated": "2021-01-21T17:32:28.000Z",
- "external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "assigned_position": "Python Developer",
- "assigned_position_id": "b3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "active": true,
- "low_data_availability": false,
- "organisational_unit": "e4d3a59c-2f37-4a3f-9318-9d75e0e7a8f1",
- "working_history": [
- {
- "start_date": "2018-09-05",
- "end_date": "2020-06-17",
- "company": "TechWolf BV",
- "job_title": "HR Manager",
- "job_description": "Manage the HR department and perform workforce planning"
}
], - "education_history": [
- {
- "start_date": "2016-09-05",
- "end_date": "2018-09-05",
- "school": "Harvard University",
- "degree_name": "Master in Human Resources Management"
}
], - "languages": [
- {
- "language": "nl",
- "level": 2
}
], - "desired_functions": [
- {
- "title": "Business Analyst",
- "importance": 0.5
}, - {
- "title": "Police Officer",
- "importance": 1
}
], - "non_desired_functions": [ ],
- "location": {
- "lat": 51.0216707,
- "lng": 3.6887328
}
}
Submit the most up-to-date Employee information to update their profile inside the system. Any field that is present will overwrite existing values within the system, while absent fields will be left as-is.
Since the Employee resume is deleted after creating a Skill Profile, it is a required field for recalculating the Skill Profile based on the resume. If no resume is provided, the Skill Profile will be recalculated based on the other available properties.
Passing the null
value removes non-required attributes. Object attributes will be removed when passing null
, arrays with []
and strings with the empty string ''
.
write
) {- "assigned_position": "Python Developer",
- "assigned_position_id": "b3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "active": true,
- "organisational_unit": "e4d3a59c-2f37-4a3f-9318-9d75e0e7a8f1",
- "working_history": [
- {
- "start_date": "2018-09-05",
- "end_date": "2020-06-17",
- "company": "TechWolf BV",
- "job_title": "HR Manager",
- "job_description": "Manage the HR department and perform workforce planning"
}
], - "education_history": [
- {
- "start_date": "2016-09-05",
- "end_date": "2018-09-05",
- "school": "Harvard University",
- "degree_name": "Master in Human Resources Management"
}
], - "languages": [
- {
- "language": "nl",
- "level": 2
}
], - "desired_functions": [
- {
- "title": "Business Analyst",
- "importance": 0.5
}, - {
- "title": "Police Officer",
- "importance": 1
}
], - "non_desired_functions": [ ],
- "location": {
- "lat": 51.0216707,
- "lng": 3.6887328
}, - "employee_documents": [
- {
- "mimeType": "application/pdf",
- "base64Content": "JVBERi0xLjMNCiXi48/TDQoNCjEgMCBvYmoNCjw8DQovVHlwZSAvQ2F0YWxvZw0KL091dGxpbmVzIDIgMCBSDQovUGFnZXMgMyAwIFINCj4+DQplbmRvYmoNCg0KMiAwIG9iag0KPDwNCi9UeXBlIC9PdXRsaW5lcw0KL0NvdW50IDANCj4+DQplbmRvYmoNCg0KMyAwIG9iag0KPDwNCi9UeXBlIC9QYWdlcw0KL0NvdW50IDINCi9LaWRzIFsgNCAwIFIgNiAwIFIgXSANCj4+DQplbmRvYmoNCg0KNCAwIG9iag0KPDwNCi9UeXBlIC9QYWdlDQovUGFyZW50IDMgMCBSDQovUmVzb3VyY2VzIDw8DQovRm9udCA8PA0KL0YxIDkgMCBSIA0KPj4NCi9Qcm9jU2V0IDggMCBSDQo+Pg0KL01lZGlhQm94IFswIDAgNjEyLjAwMDAgNzkyLjAwMDBdDQovQ29udGVudHMgNSAwIFINCj4+DQplbmRvYmoNCg0KNSAwIG9iag0KPDwgL0xlbmd0aCAxMDc0ID4+DQpzdHJlYW0NCjIgSg0KQlQNCjAgMCAwIHJnDQovRjEgMDAyNyBUZg0KNTcuMzc1MCA3MjIuMjgwMCBUZA0KKCBBIFNpbXBsZSBQREYgRmlsZSApIFRqDQpFVA0KQlQNCi9GMSAwMDEwIFRmDQo2OS4yNTAwIDY4OC42MDgwIFRkDQooIFRoaXMgaXMgYSBzbWFsbCBkZW1vbnN0cmF0aW9uIC5wZGYgZmlsZSAtICkgVGoNCkVUDQpCVA0KL0YxIDAwMTAgVGYNCjY5LjI1MDAgNjY0LjcwNDAgVGQNCigganVzdCBmb3IgdXNlIGluIHRoZSBWaXJ0dWFsIE1lY2hhbmljcyB0dXRvcmlhbHMuIE1vcmUgdGV4dC4gQW5kIG1vcmUgKSBUag0KRVQNCkJUDQovRjEgMDAxMCBUZg0KNjkuMjUwMCA2NTIuNzUyMCBUZA0KKCB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiApIFRqDQpFVA0KQlQNCi9GMSAwMDEwIFRmDQo2OS4yNTAwIDYyOC44NDgwIFRkDQooIEFuZCBtb3JlIHRleHQuIEFuZCBtb3JlIHRleHQuIEFuZCBtb3JlIHRleHQuIEFuZCBtb3JlIHRleHQuIEFuZCBtb3JlICkgVGoNCkVUDQpCVA0KL0YxIDAwMTAgVGYNCjY5LjI1MDAgNjE2Ljg5NjAgVGQNCiggdGV4dC4gQW5kIG1vcmUgdGV4dC4gQm9yaW5nLCB6enp6ei4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kICkgVGoNCkVUDQpCVA0KL0YxIDAwMTAgVGYNCjY5LjI1MDAgNjA0Ljk0NDAgVGQNCiggbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiApIFRqDQpFVA0KQlQNCi9GMSAwMDEwIFRmDQo2OS4yNTAwIDU5Mi45OTIwIFRkDQooIEFuZCBtb3JlIHRleHQuIEFuZCBtb3JlIHRleHQuICkgVGoNCkVUDQpCVA0KL0YxIDAwMTAgVGYNCjY5LjI1MDAgNTY5LjA4ODAgVGQNCiggQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgKSBUag0KRVQNCkJUDQovRjEgMDAxMCBUZg0KNjkuMjUwMCA1NTcuMTM2MCBUZA0KKCB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBFdmVuIG1vcmUuIENvbnRpbnVlZCBvbiBwYWdlIDIgLi4uKSBUag0KRVQNCmVuZHN0cmVhbQ0KZW5kb2JqDQoNCjYgMCBvYmoNCjw8DQovVHlwZSAvUGFnZQ0KL1BhcmVudCAzIDAgUg0KL1Jlc291cmNlcyA8PA0KL0ZvbnQgPDwNCi9GMSA5IDAgUiANCj4+DQovUHJvY1NldCA4IDAgUg0KPj4NCi9NZWRpYUJveCBbMCAwIDYxMi4wMDAwIDc5Mi4wMDAwXQ0KL0NvbnRlbnRzIDcgMCBSDQo+Pg0KZW5kb2JqDQoNCjcgMCBvYmoNCjw8IC9MZW5ndGggNjc2ID4+DQpzdHJlYW0NCjIgSg0KQlQNCjAgMCAwIHJnDQovRjEgMDAyNyBUZg0KNTcuMzc1MCA3MjIuMjgwMCBUZA0KKCBTaW1wbGUgUERGIEZpbGUgMiApIFRqDQpFVA0KQlQNCi9GMSAwMDEwIFRmDQo2OS4yNTAwIDY4OC42MDgwIFRkDQooIC4uLmNvbnRpbnVlZCBmcm9tIHBhZ2UgMS4gWWV0IG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gKSBUag0KRVQNCkJUDQovRjEgMDAxMCBUZg0KNjkuMjUwMCA2NzYuNjU2MCBUZA0KKCBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSApIFRqDQpFVA0KQlQNCi9GMSAwMDEwIFRmDQo2OS4yNTAwIDY2NC43MDQwIFRkDQooIHRleHQuIE9oLCBob3cgYm9yaW5nIHR5cGluZyB0aGlzIHN0dWZmLiBCdXQgbm90IGFzIGJvcmluZyBhcyB3YXRjaGluZyApIFRqDQpFVA0KQlQNCi9GMSAwMDEwIFRmDQo2OS4yNTAwIDY1Mi43NTIwIFRkDQooIHBhaW50IGRyeS4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gKSBUag0KRVQNCkJUDQovRjEgMDAxMCBUZg0KNjkuMjUwMCA2NDAuODAwMCBUZA0KKCBCb3JpbmcuICBNb3JlLCBhIGxpdHRsZSBtb3JlIHRleHQuIFRoZSBlbmQsIGFuZCBqdXN0IGFzIHdlbGwuICkgVGoNCkVUDQplbmRzdHJlYW0NCmVuZG9iag0KDQo4IDAgb2JqDQpbL1BERiAvVGV4dF0NCmVuZG9iag0KDQo5IDAgb2JqDQo8PA0KL1R5cGUgL0ZvbnQNCi9TdWJ0eXBlIC9UeXBlMQ0KL05hbWUgL0YxDQovQmFzZUZvbnQgL0hlbHZldGljYQ0KL0VuY29kaW5nIC9XaW5BbnNpRW5jb2RpbmcNCj4+DQplbmRvYmoNCg0KMTAgMCBvYmoNCjw8DQovQ3JlYXRvciAoUmF2ZSBcKGh0dHA6Ly93d3cubmV2cm9uYS5jb20vcmF2ZVwpKQ0KL1Byb2R1Y2VyIChOZXZyb25hIERlc2lnbnMpDQovQ3JlYXRpb25EYXRlIChEOjIwMDYwMzAxMDcyODI2KQ0KPj4NCmVuZG9iag0KDQp4cmVmDQowIDExDQowMDAwMDAwMDAwIDY1NTM1IGYNCjAwMDAwMDAwMTkgMDAwMDAgbg0KMDAwMDAwMDA5MyAwMDAwMCBuDQowMDAwMDAwMTQ3IDAwMDAwIG4NCjAwMDAwMDAyMjIgMDAwMDAgbg0KMDAwMDAwMDM5MCAwMDAwMCBuDQowMDAwMDAxNTIyIDAwMDAwIG4NCjAwMDAwMDE2OTAgMDAwMDAgbg0KMDAwMDAwMjQyMyAwMDAwMCBuDQowMDAwMDAyNDU2IDAwMDAwIG4NCjAwMDAwMDI1NzQgMDAwMDAgbg0KDQp0cmFpbGVyDQo8PA0KL1NpemUgMTENCi9Sb290IDEgMCBSDQovSW5mbyAxMCAwIFINCj4+DQoNCnN0YXJ0eHJlZg0KMjcxNA0KJSVFT0YNCg=="
}
]
}
[- {
- "title": "400 Bad Request",
- "description": "The request body was not structured correctly."
}
]
Remove an Employee from the system. This step deletes all information linked exclusively to this Employee. If these need to be removed as well, make sure to do this separately. By deleting an Employee, you delete their Skill Profile history, which cannot be recreated or recovered afterwards.
[- {
- "title": "401 Unauthorized",
- "description": "OAuth access token is missing, invalid or expired."
}
]
Get an export of the Employee Skill Profile to leverage it for user interaction. Check our tutorials for a clear overview of how to get the most out of each format!
read
) response_format | string Default: "list" Defines the format of the returned Skill Profile.
Example: response_format=list | ||||||||||||
vocab_language | string Default: "en_uk" The display language used for Skill names. Altering the vocabulary language does not change the Skill Profile; it solely changes the way it is displayed. If not specified, the default language ( Example: vocab_language=en_uk | ||||||||||||
include | Array of strings Additional entity attributes that will be included in the response body. This parameter Example: include=sources | ||||||||||||
external_vendor | string (SupportedExternalVendors) The external vendor language you want to see the Skills displayed in. This will only work for vendors that are activated on your tenant. Example: external_vendor=workday |
{- "external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "num_skill_events": 5,
- "low_data_availability": false,
- "skills": [
- {
- "skill": "Machine Learning",
- "skill_id": "c110316a-41d3-46ef-a35e-dbb27785b1c8",
- "validation_state": "suggested",
- "sources": [
- "working_history"
], - "source_events": [
- {
- "external_id": "5cbdbdbe-5f44-4423-8157-520f8a2f429a",
- "event_type": "working_history",
- "source": "workday"
}
]
}, - {
- "skill": "Python",
- "skill_id": "4b85469d-6729-4d70-9876-a0faa2a2f63b",
- "validation_state": "validated",
- "sources": [
- "education_history",
- "working_history"
], - "source_events": [
- {
- "external_id": "5cbdbdbe-5f44-4423-8157-520f8a2f429a",
- "event_type": "education_history",
- "source": "workday"
}, - {
- "external_id": "5cbdbdbe-5f44-4423-8157-520f8a2f429a",
- "event_type": "working_history",
- "source": "workday"
}
]
}, - {
- "skill": "Tensorflow",
- "skill_id": "e03c1859-3bae-4700-b2c5-ede2937038de",
- "validation_state": "suggested",
- "sources": [
- "education_history"
], - "source_events": [
- {
- "external_id": "5cbdbdbe-5f44-4423-8157-520f8a2f429a",
- "event_type": "education_history",
- "source": "workday"
}
]
}
]
}
Provide feedback about an existing Employee Skill Profile to update it inside
the system. When the feedback_format
query parameter is skills
,
the body of the feedback message overwrites, adds or updates Skills in the original profile.
When the feedback_format
query parameter is skill_clusters
, this endpoint will change the Skill Cluster
Skills in the Skill Profile to fit the given Skill Cluster proficiency level.
write
) {- "source": "oracle",
- "skills": [
- {
- "skill_id": "c110316a-41d3-46ef-a35e-dbb27785b1c8",
- "has_skill": true
}, - {
- "skill_id": "4b85469d-6729-4d70-9876-a0faa2a2f63b",
- "has_skill": true
}, - {
- "skill_id": "e03c1859-3bae-4700-b2c5-ede2937038de",
- "has_skill": false
}
]
}
[- {
- "title": "400 Bad Request",
- "description": "The request body was not structured correctly."
}
]
A metric is a single number representing some amount of information about an entity or a collection of entities of the same type.
More info about Metrics can be found on the How it Works page .
Get the total number of Employee objects stored inside the system.
read
) {- "entity_type": "Employee",
- "entity_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "metric_name": "count",
- "metric_value": 1000,
- "last_update": "2020-09-01T11:45:49Z"
}
Get adoption metrics across a collection of Employee objects stored in the system, aggregated over their Skills and your Taxonomy.
read
) required | Array of objects (EmployeeAdoptionMetricsQuery) |
{- "queries": [
- {
- "query_id": "query-id",
- "filters": [
- {
- "filter": "attribute",
- "attribute_name": "organisational_unit",
- "operator": "eq",
- "attribute_value": "abc-123"
}
]
}
]
}
{- "results": [
- {
- "query_id": "query-123-abc",
- "metrics": {
- "domains": [
- {
- "domain_name": "IT",
- "external_id": "abdcde-domain",
- "skill_clusters": [
- {
- "external_id": "abdcde-cluster",
- "skill_cluster_name": "Software Engineering",
- "skills": [
- {
- "skill_id": "abcde-skill-1",
- "skill_name": "Automated Testing",
- "unique_employee_count": 10
}
], - "sum_employee_skill_count": 10,
- "unique_employee_count": 10,
- "unique_skill_count": 1
}
], - "sum_employee_skill_count": 10,
- "unique_employee_count": 10,
- "unique_skill_count": 1
}
], - "skills_outside_of_the_taxonomy": {
- "skills": [
- {
- "skill_id": "abcde-skill-2",
- "skill_name": "Software Debugging",
- "unique_employee_count": 5
}
], - "sum_employee_skill_count": 5,
- "unique_employee_count": 5,
- "unique_skill_count": 1
}, - "sum_employee_skill_count": 15,
- "unique_employee_count": 15,
- "unique_skill_count": 2,
- "total_employee_skill_count": 15
}
}
]
}
Retrieve the employability for this Employee. Employability is influenced by two factors: the number of matching Vacancies (demand) & the number of Employees that could fill those Vacancies (supply). It is reported as a number between 0 and 1, with the upper end indicating that an Employee has many matching opportunities (= high demand) for which there are not many matching Employees (= low supply). A lower score indicates fewer opportunities (= low demand), or that there is already a high supply of those profiles.
read
) Array of max_geo_distance (object) or custom_property (object) | |
Array of max_geo_distance (object) or custom_property (object) | |
Array of skills_match (object) or desired_functions (object) |
{- "employee_filters": [
- {
- "filter": "max_geo_distance",
- "max_geo_distance": 50
}
], - "vacancy_filters": [
- {
- "filter": "max_geo_distance",
- "max_geo_distance": 50
}
], - "weights": [
- {
- "weight": "skills_match",
- "value": 1
}, - {
- "weight": "desired_functions",
- "value": 0.03
}
]
}
{- "entity_type": "Employee",
- "entity_id": &q