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.
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.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": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "metric_name": "configurable_employability",
- "metric_value": 0.8,
- "last_update": "2020-09-01T11:45:49Z"
}
Retrieve the position alignment for this Employee. Position alignment is an indication of the extent to which an Employee fits their assigned position within your company. It is reported as a number between 0 and 1, with the upper end indicating that an Employee is a good fit for their assigned position, while a lower score indicates that the Employee may have some missing Skills.
read
) {- "entity_type": "Employee",
- "entity_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "metric_name": "position_alignment",
- "metric_value": 0.8,
- "last_update": "2020-09-01T11:45:49Z"
}
Search for Employees
read
) {- "text": "Bakery",
- "location": {
- "lat": 51.0216707,
- "lng": 3.6887328
}, - "filters": [
- {
- "filter": "max_geo_distance",
- "max_geo_distance": 50
}, - {
- "filter": "custom_property",
- "property_name": "direct_manager",
- "property_value": "John Doe"
}, - {
- "filter": "custom_property_is_in_list",
- "property_name": "drivers_license",
- "possible_values": [
- "C",
- "CE"
]
}, - {
- "filter": "custom_property_contains_element",
- "property_name": "industries",
- "property_value": "electronics"
}, - {
- "filter": "external_id_is_in_list",
- "external_ids": [
- "external_id_1",
- "external_id_2",
- "external_id_3"
]
}, - {
- "filter": "exclude_match_feedback",
- "search_for": "vacancy_id",
- "exclude_match_feedback": "thumbs_up"
}
], - "weights": [
- {
- "weight": "skills_match",
- "value": 1
}, - {
- "weight": "desired_functions",
- "value": 0.03
}, - {
- "weight": "max_geo_distance",
- "value": 0.1,
- "full_score_distance": 5,
- "zero_score_distance": 15
}, - {
- "weight": "custom_property",
- "property_name": "direct_manager",
- "property_value": "John Doe",
- "operator": "eq",
- "value": 0.04
}, - {
- "weight": "custom_property",
- "property_name": "yearly_salary",
- "property_value": 45000,
- "operator": "gte",
- "value": 0.04
}
]
}
{- "results": [
- {
- "employee_id": "euid-123",
- "score": 0.82
}, - {
- "employee_id": "euid-456",
- "score": 0.74
}, - {
- "employee_id": "euid-789",
- "score": 0.56
}
]
}
A Skill Event influences the Skillset of an Employee. When an Employee finishes a Course, receives feedback, starts a new function, or when another event occurs that gives additional info to an Employee's Skill Profile, a Skill Event can be generated.
Skill Events allow you to monitor the evolution of an Employee's Skill Profile and allow you to pinpoint exactly what Skills your Employees had at a certain time. Skill Events also enable an easy method of adding new information to a profile.
Check the how it works article to find out everything you need to know about Skill Events. How it Works
Get all Skill Events of a specified event type linked to an Employee.
read
) limit | integer [ 1 .. 200 ] Default: 100 The maximal number of entities returned, ordered by the Example: limit=50 |
offset | integer >= 0 Default: 0 The applied offset for returned entities, results starting from |
event_type | string Get only Skill Events of this type. Learn more about the Skill Event Types at How it works. Multiple of these includes can be added to the request to get the Skill Events of multiple types. Example: event_type=learning |
{- "count": 3,
- "results": [
- {
- "external_id": "5cbdbdbe-5f44-4423-8157-520f8a2f429a",
- "event_type": "learning",
- "timestamp": "2021-01-03",
- "content": {
- "learning_title": "Computer Science 103",
- "learning_description": "A description for the Computer Science 103 Course."
}, - "source": "youtube"
}, - {
- "external_id": "5cbdbdbe-5f44-4423-8157-520f8a2f847b",
- "event_type": "learning",
- "timestamp": "2021-01-02",
- "content": {
- "learning_title": "Computer Science 102",
- "learning_description": "A description for the Computer Science 102 Course."
}, - "source": "course"
}, - {
- "external_id": "5cbdbdbe-5f44-4423-8157-520f8a2f1538",
- "event_type": "learning",
- "timestamp": "2021-01-01",
- "content": {
- "learning_title": "Computer Science 101",
- "learning_description": "A description for the Computer Science 101 Course."
}, - "source": "employee-archives"
}
]
}
Create a new Skill Event for an Employee. This can be used to track the Skill Profile of an Employee over time.
write
) external_id required | string <uuid> [ 1 .. 100 ] characters [a-zA-Z0-9_-]+ The unique Skill Event ID in your system, consisting of alphanumeric characters, hyphens and underscores. |
event_type required | string Type of the Skill Event. Learn more about the Skill Event Types at How it works. |
required | string or string The completion date (in IS08601 format) of the Skill Event. From this point on, the Employee is considered to have obtained the Skills of this Event. |
source | string <free text> The source system of the Skill Event. This is used to keep track of where Skill Events originate from. |
required | working_history (object) or working_history_job (object) or education_history (object) or resume_document (object) or learning (object) or learning_course (object) or feedback (object) or goal (object) or project (object) or ticket (object) or certificate (object) or skill_notes (object) The content of the Skill Event. Each type of Skill Event has a different content. The content should align with the |
{- "external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "event_type": "working_history",
- "timestamp": "2019-08-24",
- "source": "employee-archives",
- "content": {
- "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"
}
}
[- {
- "title": "400 Bad Request",
- "description": "The request body was not structured correctly."
}
]
Get a single Skill Event for an Employee.
read
) {- "external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "event_type": "working_history",
- "timestamp": "2019-08-24",
- "source": "employee-archives",
- "content": {
- "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"
}
}
Update a Skill Event for an Employee.
write
) {- "timestamp": "2019-08-24",
- "source": "employee-archives",
- "content": {
- "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"
}
}
[- {
- "title": "401 Unauthorized",
- "description": "OAuth access token is missing, invalid or expired."
}
]
Remove a Skill Event from an Employee. This step deletes all information linked exclusively to this Skill Event. If a Skill Event contained a non-empty Skill Profile, the Employee's Skill Profile is recalculated with the remaining Skill Events.
write
) [- {
- "title": "401 Unauthorized",
- "description": "OAuth access token is missing, invalid or expired."
}
]
Interactions can be used to handle Employees interacting with Vacancies or titles in ways that express their desired functions.
Get all Interactions linked to an Employee.
{- "count": 2,
- "results": [
- {
- "external_id": "5cbdbdbe-5f44-4423-8157-520f8a2f429a",
- "interaction_type": "vacancy_disliked",
- "timestamp": "2021-01-03T11:49:23.624131",
- "title": "Software engineer"
}, - {
- "external_id": "5cbdbdbe-5f44-4423-8157-520f8a2f1538",
- "interaction_type": "vacancy_liked",
- "timestamp": "2023-06-08T14:34:39.326318",
- "vacancy_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7"
}
]
}
Create a new Interaction for an Employee.
write
) {- "external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "interaction_type": "vacancy_liked",
- "timestamp": "2023-06-08T14:42:31.130855",
- "vacancy_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7"
}
[- {
- "title": "400 Bad Request",
- "description": "The request body was not structured correctly."
}
]
Get an Employee Interaction from an Employee.
read
) {- "external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "interaction_type": "vacancy_liked",
- "timestamp": "2023-06-08T14:42:31.130855",
- "vacancy_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7"
}
Remove an Employee Interaction from an Employee.
write
) [- {
- "title": "401 Unauthorized",
- "description": "OAuth access token is missing, invalid or expired."
}
]
This endpoint retrieves Skill suggestions for selected Employees. Users can customize the response with optional query parameters like language, the number of suggestions, and the format (Skill Profiles or Skill Clusters). It supports filtering by Skill types (suggested, validated, rejected) and choosing whether to include only Employees found in SEAPI. The response includes detailed Skill suggestions, with translated names and sources, and optional clustering if selected.
read
) {- "employee_ids": [
- "a3903505-eb84-42dc-a79f-5e7b1fe897b7"
], - "response_format": "skill_profiles"
}
{- "suggestions": [
- {
- "employee_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
- "skills": [
- {
- "skill_id": "95747a9e-57e7-4892-967d-37e6c126e35e",
- "skill_names": [
- {
- "language": "en_uk",
- "skill_name": "Python",
- "translation_found": true
}, - {
- "language": "nl",
- "skill_name": "Python",
- "translation_found": true
}, - {
- "language": "pt",
- "skill_name": null,
- "translation_found": false
}
], - "sources": [
- "education_history"
]
}, - {
- "skill_id": "6b665a95-dba8-4f76-85d7-a4669da01c26",
- "skill_names": [
- {
- "language": "en_uk",
- "skill_name": "Programming",
- "translation_found": true
}, - {
- "language": "nl",
- "skill_name": "Programmeren",
- "translation_found": true
}, - {
- "language": "pt",
- "skill_name": null,
- "translation_found": false
}
], - "sources": [
- "education_history"
]
}
]
}
], - "validated": [
- {
- "employee_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
- "skills": [
- {
- "skill_id": "81fcc471-cef7-448d-824c-2e2ebf1ce8be",
- "skill_names": [
- {
- "language": "en_uk",
- "skill_name": "Agile Development",
- "translation_found": true
}, - {
- "language": "nl",
- "skill_name": "Agile Ontwikkeling",
- "translation_found": true
}, - {
- "language": "pt",
- "skill_name": null,
- "translation_found": false
}
], - "sources": [
- "education_history"
]
}, - {
- "skill_id": "7d34b72e-7ca5-45fd-80e0-8ed7e615ee53",
- "skill_names": [
- {
- "language": "en_uk",
- "skill_name": "Automated Testing",
- "translation_found": true
}, - {
- "language": "nl",
- "skill_name": "Geautomatiseerd Testen",
- "translation_found": true
}, - {
- "language": "pt",
- "skill_name": null,
- "translation_found": false
}
], - "sources": [
- "education_history"
]
}
]
}
], - "rejected": [
- {
- "employee_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
- "skills": [
- {
- "skill_id": "6843733c-e646-4a77-ae70-c0da60618ffe",
- "skill_names": [
- {
- "language": "en_uk",
- "skill_name": "Business Requirement Analysis",
- "translation_found": true
}, - {
- "language": "nl",
- "skill_name": "Analyse Van Bedrijfsvereisten",
- "translation_found": true
}, - {
- "language": "pt",
- "skill_name": null,
- "translation_found": false
}
]
}
]
}
]
}
Job Families in the Skill Engine API represent a group of Jobs that are related within your organisation.
More info about Job Families can be found at the Job Architecture Tutorial.
Custom Properties are supported for this entity.
Get a list of all Job Families 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,
- "job_family_name": "Software Engineer",
- "job_family_group": "IT & Engineering"
}, - {
- "external_id": "62d2c013-ab77-410e-b5fb-2f96eed9c1db",
- "active": true,
- "job_family_name": "Data Scientist",
- "job_family_group": "IT & Engineering"
}, - {
- "external_id": "6129e3f1-663f-44ea-aa3f-2ce1077b834c",
- "active": true,
- "job_family_name": "Data Engineer",
- "job_family_group": "IT & Engineering"
}
]
}
Submit new Job Family information to initialise their Job Family inside the Skill Engine API.
write
) {- "external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "job_family_name": "Software Engineer",
- "job_family_group": "IT & Engineering",
- "active": true
}
[- {
- "title": "400 Bad Request",
- "description": "The request body was not structured correctly."
}
]
Get the Job Family information stored inside the system.
read
) {- "last_updated": "2021-01-21T17:32:28.000Z",
- "external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "job_family_name": "Software Engineer",
- "job_family_group": "IT & Engineering",
- "active": true
}
Submit the most up-to-date Job Family information. Any field that is present will overwrite existing values within the system, while absent fields will be left as-is.
write
) {- "job_family_name": "Software Engineer",
- "job_family_group": "IT & Engineering",
- "active": true
}
[- {
- "title": "400 Bad Request",
- "description": "The request body was not structured correctly."
}
]
Delete the Job Family information stored inside the system. By deleting the Job Family, all Job Family Profile Data is also deleted, together with every Job which is linked to this Job Family.
[- {
- "title": "401 Unauthorized",
- "description": "OAuth access token is missing, invalid or expired."
}
]
Get an export of the Job Family Skill Profile to leverage it for user interaction.
read
) {- "external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "skills": [
- {
- "skill": "Machine Learning",
- "skill_id": "ac3a733e-b258-438d-8d39-9a2837a10e11",
- "skill_types": [
- {
- "skill_type": "Family-Specific"
}
], - "domain_name": "Data Science",
- "validation_state": "initially_validated",
- "source_data": [
- {
- "external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "source_data_type": "job_family_profile_data"
}, - {
- "external_id": "61a6e076-d780-11ec-9d64-0242ac120002",
- "source_data_type": "job_profile_data"
}
]
}, - {
- "skill": "Python",
- "skill_id": "4b85469d-6729-4d70-9876-a0faa2a2f63b",
- "skill_types": [
- {
- "skill_type": "Family-Specific"
}
], - "domain_name": "Data Science",
- "validation_state": "validated",
- "source_data": [
- {
- "external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "source_data_type": "job_family_profile_data"
}, - {
- "external_id": "61a6e076-d780-11ec-9d64-0242ac120002",
- "source_data_type": "job_profile_data"
}
]
}
]
}
Provide feedback about an existing Job Family 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.
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."
}
]
Get an export of the Job Family Skill Profile to leverage it for user interaction. The suggested Job Family Skill Profile automatically updates with changes to the Job Family Profile Data or Job Profile Data for any of its underlying Jobs.
read
) domain_namespace | string Default: "techwolf" The Domain namespace determines the Domains the Skills will be mapped to. Using Example: domain_namespace=taxonomy | ||||||
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 | ||||||
response_format | string Default: "list" Defines the format of the returned Skill Profile.
Example: response_format=list | ||||||
include | Array of strings Additional attributes that will be included in the response body. This query parameter can be added multiple times to include more attributes. Example: include=skill_validation_state |
{- "external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "skills": [
- {
- "skill": "Machine Learning",
- "skill_id": "ac3a733e-b258-438d-8d39-9a2837a10e11",
- "skill_type": "Core",
- "domain_name": "Data Science",
- "validation_state": "suggested",
- "source_data": [
- {
- "external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "source_data_type": "job_family_profile_data"
}, - {
- "external_id": "61a6e076-d780-11ec-9d64-0242ac120002",
- "source_data_type": "job_profile_data"
}
]
}, - {
- "skill": "Python",
- "skill_id": "4b85469d-6729-4d70-9876-a0faa2a2f63b",
- "skill_type": "Core",
- "domain_name": "Data Science",
- "validation_state": "suggested",
- "source_data": [
- {
- "external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "source_data_type": "job_family_profile_data"
}, - {
- "external_id": "61a6e076-d780-11ec-9d64-0242ac120002",
- "source_data_type": "job_profile_data"
}
]
}, - {
- "skill": "TensorFlow",
- "skill_id": "e03c1859-3bae-4700-b2c5-ede2937038de",
- "skill_type": "Core",
- "domain_name": "Data Science",
- "validation_state": "validated",
- "source_data": [
- {
- "external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "source_data_type": "job_family_profile_data"
}
]
}
]
}
Job Family Profile Data influence the Skillset of a Job Family. Profile Data enables an easy method of adding new information to a Job Family.
Get a list of all Job Family Profile Data 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": 2,
- "results": [
- {
- "external_id": "5cb55dbe-5444-1233-8157-520f8a2f429a",
- "data_type": "job_family_description",
- "timestamp": "2018-11-07T00:25:00.073876",
- "source": "Workday",
- "data": {
- "job_family_description": "Software engineers are responsible for designing, developing, and testing software. They are involved in the entire software development process, from the initial specification of requirements to the final release of the software."
}
}, - {
- "external_id": "62d2c013-ab77-410e-b5fb-2f96eed9c1db",
- "data_type": "job_family_description",
- "timestamp": "2019-09-07T08:21:10.793021",
- "source": "Company-archive",
- "data": {
- "job_family_description": "Software engineers are responsible for writing and testing software. They design and develop software applications and systems."
}
}
]
}
Submit new Job Family Profile Data information to initialise the Job Family inside the Skill Engine API.
write
) external_id required | string <uuid> (UUID) [ 1 .. 100 ] characters [a-zA-Z0-9_-]+ The unique ID in your system, consisting of alphanumeric characters, hyphens and underscores. |
data_type required | string Type of the Job Family Profile Data. |
source required | string [ 1 .. 255 ] characters The source of the Job Family Profile Data. |
required | job_family_description_content (object) or job_family_description_file_content (object) The content of the Job Family Profile Data. The content should align with the |
{- "external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "data_type": "job_family_description",
- "source": "Workday",
- "data": {
- "job_family_description": "Software engineers are responsible for designing, developing, and testing software. They are involved in the entire software development process, from the initial specification of requirements to the final release of the software."
}
}
[- {
- "title": "400 Bad Request",
- "description": "The request body was not structured correctly."
}
]
Get a single Job Family Profile Data item for a Job Family.
read
) job_family_external_id required | string <uuid> (UUID) [ 1 .. 100 ] characters [a-zA-Z0-9_-]+ Unique ID linked to a Job Family, consisting of alphanumeric characters, hyphens and underscores. Example: a3903505-eb84-42dc-a79f-5e7b1fe897b7 |
job_family_profile_data_external_id required | string <uuid> (UUID) [ 1 .. 100 ] characters [a-zA-Z0-9_-]+ Unique ID linked to a Job Family Profile Data, consisting of alphanumeric characters, hyphens and underscores. Example: a3903505-eb84-42dc-a79f-5e7b1fe897b7 |
{- "external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "data_type": "job_family_description",
- "timestamp": "2018-09-052T13:22:39.179747",
- "source": "Workday",
- "data": {
- "job_family_description": "Software engineers are responsible for designing, developing, and testing software. They are involved in the entire software development process, from the initial specification of requirements to the final release of the software."
}
}
Update Profile Data for a Job Family.
write
) job_family_external_id required | string <uuid> (UUID) [ 1 .. 100 ] characters [a-zA-Z0-9_-]+ Unique ID linked to a Job Family, consisting of alphanumeric characters, hyphens and underscores. Example: a3903505-eb84-42dc-a79f-5e7b1fe897b7 |
job_family_profile_data_external_id required | string <uuid> (UUID) [ 1 .. 100 ] characters [a-zA-Z0-9_-]+ Unique ID linked to Job Family Profile Data, consisting of alphanumeric characters, hyphens and underscores. Example: a3903505-eb84-42dc-a79f-5e7b1fe897b7 |
{- "source": "Workday",
- "data": {
- "job_family_description": "Software engineers are responsible for designing, developing, and testing software. They are involved in the entire software development process, from the initial specification of requirements to the final release of the software."
}
}
[- {
- "title": "401 Unauthorized",
- "description": "OAuth access token is missing, invalid or expired."
}
]
Remove Job Family Profile Data from the system. This step deletes all information linked exclusively to this Job Family Profile Data. It is not possible to delete Skill Profile Feedback via this endpoint, use the Job Family Profile Data Patch endpoint instead.
write
) job_family_external_id required | string <uuid> (UUID) [ 1 .. 100 ] characters [a-zA-Z0-9_-]+ Unique ID linked to a Job Family, consisting of alphanumeric characters, hyphens and underscores. Example: a3903505-eb84-42dc-a79f-5e7b1fe897b7 |
job_family_profile_data_external_id required | string <uuid> (UUID) [ 1 .. 100 ] characters [a-zA-Z0-9_-]+ Unique ID linked to a Job Family Profile Data instance, consisting of alphanumeric characters, hyphens and underscores. Example: a3903505-eb84-42dc-a79f-5e7b1fe897b7 |
{- "code": "Bad Request",
- "message": "You cannot delete a Skill Profile Feedback instance via this endpoint."
}
Jobs in the Skill Engine API represent a specific role within your organisation. They are linked to Job Families.
More info about Jobs can be found at the Job Architecture Tutorial.
Custom Properties are supported for this entity.
Get a list of all Jobs 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
) limit | integer [ 1 .. 200 ] Default: 100 The maximal number of entities returned, ordered by the Example: limit=50 |
offset | integer >= 0 Default: 0 The applied offset for returned entities, results starting from |
is_active | boolean Default: "None" This parameter can be used to only include entities with the Example: is_active=true |
include | Array of strings Additional entity attributes that will be included in the response body. This query parameter can be added multiple times to include more attributes. Example: include=custom_properties |
{- "count": 3,
- "results": [
- {
- "external_id": "5cbdbdbe-5f44-4423-8157-5fgqsef7b834c",
- "active": true,
- "job_name": "Front End Developer",
- "job_family_id": "5cbdbdbe-5f44-4423-8157-520f8a2f429a",
- "low_data_availability": false
}, - {
- "external_id": "62d2c013-ab77-410e-b5fb-2f96eed9c1db",
- "active": true,
- "job_name": "Backend Developer",
- "job_family_id": "5cbdbdbe-5f44-4423-8157-520f8a2f429a",
- "low_data_availability": false
}, - {
- "external_id": "6129e3f1-663f-44ea-aa3f-2ce1077b834c",
- "active": true,
- "job_name": "Data Scientist",
- "job_family_id": "62d2c013-ab77-410e-b5fb-2f96eed9c1db",
- "low_data_availability": true
}
]
}
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.
write
) external_id required | string <uuid> (UUID) [ 1 .. 100 ] characters [a-zA-Z0-9_-]+ The unique ID in your system, consisting of alphanumeric characters, hyphens and underscores. |
job_family_id | string [ 1 .. 100 ] characters ID of the Job Family. |
job_name required | string [ 1 .. 255 ] characters Name of the Job. |
active | boolean or null (JobActive) Default: true The Job will not be used in matching if active is |
{- "external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "job_family_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "job_name": "Front End Developer",
- "active": true
}
[- {
- "title": "400 Bad Request",
- "description": "The request body was not structured correctly."
}
]
Get a Job by its external ID. This can for example be used to keep track of proper synchronisation between your system and the Skill Engine API.
read
) {- "last_updated": "2021-01-21T17:32:28.000Z",
- "external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "job_family_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "job_name": "Front End Developer",
- "active": true,
- "low_data_availability": false
}
Update a Job by its external ID. If you change the Job Family, it will result in the loss of all Skills validated for the previous Job Family and the addition of all Skills validated for the new Job Family. This can for example be used to keep track of proper synchronisation between your system and the Skill Engine API.
write
) {- "job_family_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "job_name": "Front End Developer",
- "active": true
}
[- {
- "title": "400 Bad Request",
- "description": "The request body was not structured correctly."
}
]
Delete a Job by its external ID. Delete the Job information stored inside the system. By deleting the Job, all Job Profile Data is also deleted. Recalculates the Job Family Skill Profile if the Job Family is specified for the Job.
[- {
- "title": "401 Unauthorized",
- "description": "OAuth access token is missing, invalid or expired."
}
]
Get an export of the Job Skill Profile to leverage it for user interaction.
read
) domain_namespace | string Default: "techwolf" The Domain namespace determines the Domains the Skills will be mapped to. Using Example: domain_namespace=taxonomy | ||||||
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 | ||||||
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 | ||||||
response_format | string Default: "list" Defines the format of the returned Skill Profile.
Example: response_format=list | ||||||
include | Array of strings Additional attributes that will be included in the response body. This query parameter can be added multiple times to include more attributes. Example: include=low_data_availability_flag |
{- "external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "low_data_availability": false,
- "skills": [
- {
- "skill": "Machine Learning",
- "skill_id": "ac3a733e-b258-438d-8d39-9a2837a10e11",
- "skill_types": [
- {
- "skill_type": "Job-Specific"
}
], - "domain_name": "Data Science",
- "validation_state": "initially_validated",
- "source_data": [
- {
- "external_id": "61a6e076-d780-11ec-9d64-0242ac120002",
- "source_data_type": "job_profile_data"
}
]
}, - {
- "skill": "Python",
- "skill_id": "4b85469d-6729-4d70-9876-a0faa2a2f63b",
- "skill_types": [
- {
- "skill_type": "Job-Specific",
- "is_common": true
}
], - "domain_name": "Data Science",
- "validation_state": "initially_validated",
- "source_data": [
- {
- "external_id": "61a6e076-d780-11ec-9d64-0242ac120002",
- "source_data_type": "job_profile_data"
}
]
}, - {
- "skill": "TensorFlow",
- "skill_id": "e03c1859-3bae-4700-b2c5-ede2937038de",
- "skill_types": [
- {
- "skill_type": "Family-Specific"
}, - {
- "skill_type": "Job-Specific",
- "is_common": true
}
], - "domain_name": "Data Science",
- "validation_state": "validated",
- "source_data": [
- {
- "external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "source_data_type": "job_family_profile_data"
}, - {
- "external_id": "61a6e076-d780-11ec-9d64-0242ac120002",
- "source_data_type": "job_profile_data"
}
]
}
]
}
Provide feedback about an existing Job 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.
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."
}
]
Get an export of the Job Skill Profile to leverage it for user interaction. The suggested Job Skill Profile automatically updates with changes to the Job Profile Data.
read
) domain_namespace | string Default: "techwolf" The Domain namespace determines the Domains the Skills will be mapped to. Using Example: domain_namespace=taxonomy | ||||||
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 | ||||||
response_format | string Default: "list" Defines the format of the returned Skill Profile.
Example: response_format=list | ||||||
include | Array of strings Additional attributes that will be included in the response body. This query parameter can be added multiple times to include more attributes. Example: include=skill_validation_state |
{- "external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "skills": [
- {
- "skill": "Machine Learning",
- "skill_id": "ac3a733e-b258-438d-8d39-9a2837a10e11",
- "skill_type": "Job-Specific",
- "domain_name": "Data Science",
- "validation_state": "suggested",
- "source_data": [
- {
- "external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "source_data_type": "job_profile_data"
}, - {
- "external_id": "61a6e076-d780-11ec-9d64-0242ac120002",
- "source_data_type": "job_profile_data"
}
]
}, - {
- "skill": "Python",
- "skill_id": "4b85469d-6729-4d70-9876-a0faa2a2f63b",
- "skill_type": "Core",
- "domain_name": "Programming",
- "validation_state": "validated",
- "source_data": [
- {
- "external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "source_data_type": "job_profile_data"
}, - {
- "external_id": "12a6e076-d780-11ec-9d64-0242ac120002",
- "source_data_type": "job_family_profile_data"
}
]
}
]
}
Get an export of the Job Skill Profile based on the market to leverage it for user interaction.
read
) domain_namespace | string Default: "techwolf" The Domain namespace determines the Domains the Skills will be mapped to. Using Example: domain_namespace=taxonomy |
{- "external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "skills": [
- {
- "skill": "Machine Learning",
- "skill_id": "ac3a733e-b258-438d-8d39-9a2837a10e11",
- "domain_name": "Data Science"
}, - {
- "skill": "Python",
- "skill_id": "4b85469d-6729-4d70-9876-a0faa2a2f63b",
- "domain_name": "Programming"
}
]
}
Get a list of external market Skill Profiles for a Job, based on the peer groups defined in the tenant. For every peer group, the Skill Profile is a combination of Profiles found in external market data from the companies in that peer group.
read
) response_format | string Default: "list" Defines the format of the returned Skill Profile.
Example: response_format=list |
[- {
- "external_id": "09de5e58-5161-4ad1-a256-6d01a025914b",
- "peer_groups": [
- {
- "peer_group": "Athletic Sportswear Manufacturing"
}, - {
- "skills": [
- {
- "skill": "Product Design",
- "skill_id": "6d41b6d7-1c09-4f8a-a9c0-361b4c7a92f5",
- "domain_name": "Product Development"
}, - {
- "skill": "Materials Science",
- "skill_id": "9eb6aebf-936d-4814-9c6f-8754becc2f53",
- "domain_name": "Science"
}, - {
- "skill": "Supply Chain Operations",
- "skill_id": "7cfe0001-5a22-49dc-9148-077b546de5cd",
- "domain_name": "Supply Chain"
}
]
}, - {
- "peer_group": "Sport Watches Production"
}, - {
- "skills": [
- {
- "skill": "Embedded Systems",
- "skill_id": "0af7ceb8-26fe-4210-a5c4-3c1b69721403",
- "domain_name": "Information Technology"
}, - {
- "skill": "UX Design",
- "skill_id": "98fc5005-abf9-41f5-b156-742654b7eacd",
- "domain_name": "Information Technology"
}, - {
- "skill": "Algorithm Development",
- "skill_id": "e273a7bd-1ee2-4911-979c-33423dc1ac08",
- "domain_name": "Information Technology"
}
]
}
]
}
]
Job Profile Data influence the skillset of a Job. Profile Data enables an easy method of adding new information to a Job.
Get a list of all Job Profile Data 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": 2,
- "results": [
- {
- "external_id": "5cb554be-5494-1233-8157-525f8a2f429a",
- "data_type": "job_description",
- "timestamp": "2018-11-07T00:25:00.073876",
- "source": "Workday",
- "data": {
- "job_description": "Backend developers have experience in writing code for the backend of a web application. They are responsible for the server-side logic of a web application."
}
}, - {
- "external_id": "62d2c713-ab77-415e-b5fb-2f968ed9c1db",
- "data_type": "job_title",
- "timestamp": "2019-09-07T08:21:10.793021",
- "source": "Company-archive",
- "data": {
- "job_title": "Django Backend developer."
}
}
]
}
Submit new Job Profile Data information to initialise the Job inside the Skill Engine API.
write
) external_id required | string <uuid> (UUID) [ 1 .. 100 ] characters [a-zA-Z0-9_-]+ The unique ID in your system, consisting of alphanumeric characters, hyphens and underscores. |
data_type required | string Type of the Job Profile Data. |
source required | string [ 1 .. 255 ] characters The source of the Job Profile Data. |
required | job_description_content (object) or job_description_file_content (object) or job_title_content (object) or vacancy_content (object) or skill_notes (object) The content of the Job Profile Data. The content should align with the |
{- "external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "data_type": "job_description",
- "source": "Workday",
- "data": {
- "job_description": "Backend developers have experience in writing code for the backend of a web application. They are responsible for the server-side logic of a web application."
}
}
[- {
- "title": "400 Bad Request",
- "description": "The request body was not structured correctly."
}
]
Get a single Job Profile Data item for a Job.
read
) job_external_id required | string <uuid> (UUID) [ 1 .. 100 ] characters [a-zA-Z0-9_-]+ Unique ID linked to a Job, consisting of alphanumeric characters, hyphens and underscores. Example: a3903505-eb84-42dc-a79f-5e7b1fe897b7 |
job_profile_data_external_id required | string <uuid> (UUID) [ 1 .. 100 ] characters [a-zA-Z0-9_-]+ Unique ID linked to a Job Profile Data, consisting of alphanumeric characters, hyphens and underscores. Example: a3903505-eb84-42dc-a79f-5e7b1fe897b7 |
{- "external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "data_type": "job_description",
- "timestamp": "2018-09-052T13:22:39.179747",
- "source": "Workday",
- "data": {
- "job_description": "Backend developers have experience in writing code for the backend of a web application. They are responsible for the server-side logic of a web application."
}
}
Update Profile Data for a Job.
write
) job_external_id required | string <uuid> (UUID) [ 1 .. 100 ] characters [a-zA-Z0-9_-]+ Unique ID linked to a Job, consisting of alphanumeric characters, hyphens and underscores. Example: a3903505-eb84-42dc-a79f-5e7b1fe897b7 |
job_profile_data_external_id required | string <uuid> (UUID) [ 1 .. 100 ] characters [a-zA-Z0-9_-]+ Unique ID linked to Profile Data, consisting of alphanumeric characters, hyphens and underscores. Example: a3903505-eb84-42dc-a79f-5e7b1fe897b7 |
source | string [ 1 .. 255 ] characters The source of the Job Profile Data. |
job_description_content (object) or job_description_file_content (object) or job_title_content (object) or vacancy_content (object) or skill_notes (object) The content of the Job Profile Data. The content should align with the original |
{- "source": "Workday",
- "data": {
- "job_description": "Backend developers have experience in writing code for the backend of a web application. They are responsible for the server-side logic of a web application."
}
}
[- {
- "title": "401 Unauthorized",
- "description": "OAuth access token is missing, invalid or expired."
}
]
Remove Job Profile Data from the system. This step deletes all information linked exclusively to this Job Profile Data. It is not possible to delete Skill Profile Feedback via this endpoint, use the Job Profile Data Patch endpoint instead.
write
) job_external_id required | string <uuid> (UUID) [ 1 .. 100 ] characters [a-zA-Z0-9_-]+ Unique ID linked to a Job, consisting of alphanumeric characters, hyphens and underscores. Example: a3903505-eb84-42dc-a79f-5e7b1fe897b7 |
job_profile_data_external_id required | string <uuid> (UUID) [ 1 .. 100 ] characters [a-zA-Z0-9_-]+ Unique ID linked to a Job Profile Data instance, consisting of alphanumeric characters, hyphens and underscores. Example: a3903505-eb84-42dc-a79f-5e7b1fe897b7 |
{- "code": "Bad Request",
- "message": "You cannot delete a Skill Profile Feedback instance via this endpoint."
}
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 adoption metrics across a collection of Job objects stored in the system, aggregated over their Skills and your Taxonomy.
read
) required | Array of objects (JobAdoptionMetricsQuery) |
{- "queries": [
- {
- "query_id": "query-id",
- "filters": [
- {
- "filter": "attribute",
- "attribute_name": "job_family",
- "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,
- "unique_job_count": 1
}
], - "sum_job_skill_count": 1,
- "unique_employee_count": 10,
- "unique_skill_count": 1,
- "unique_job_count": 1,
- "sum_employee_count": 10
}
], - "sum_job_skill_count": 1,
- "unique_employee_count": 10,
- "unique_skill_count": 1,
- "unique_job_count": 1,
- "sum_employee_count": 10
}
], - "skills_outside_of_the_taxonomy": {
- "skills": [
- {
- "skill_id": "abcde-skill-2",
- "skill_name": "Software Debugging",
- "unique_employee_count": 5,
- "unique_job_count": 15
}
], - "sum_job_skill_count": 15,
- "unique_employee_count": 5,
- "unique_skill_count": 1,
- "unique_job_count": 15,
- "sum_employee_count": 5
}, - "sum_job_skill_count": 16,
- "unique_employee_count": 15,
- "unique_skill_count": 2,
- "unique_job_count": 16,
- "sum_employee_count": 15,
- "total_job_skill_count": 16
}
}
]
}
Vacancies in the Skill Engine API correspond to Job postings or open positions.
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 Vacancies 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
) limit | integer [ 1 .. 200 ] Default: 100 The maximal number of entities returned, ordered by the Example: limit=50 |
offset | integer >= 0 Default: 0 The applied offset for returned entities, results starting from |
is_active | boolean Default: "None" This parameter can be used to only include entities with the Example: is_active=true |
include | Array of strings Additional entity attributes that will be included in the response body. This query parameter can be added multiple times to include more attributes. Example: include=custom_properties |
{- "count": 3,
- "results": [
- {
- "external_id": "5cbdbdbe-5f44-4423-8157-520f8a2f429a",
- "job_title": "Staffing coordinator",
- "job_description": "We are looking for a competent Staffing coordinator to undertake a variety of tasks such as recruitment, orientation and placement of Employees. You will also be the one to ensure that the Company complies with all relevant laws regarding employment.",
- "location": {
- "lat": 51.0216707,
- "lng": 2.6887328
}, - "company": "8cbdbdbe-5f44-4423-8157-520f8a2f429a",
- "active": true,
- "last_updated": "2021-01-21T17:32:28.000Z"
}, - {
- "external_id": "62d2c013-ab77-410e-b5fb-2f96eed9c1db",
- "job_title": "HR assistant",
- "job_description": "We are looking for an HR Assistant to undertake a variety of HR administrative duties.",
- "location": {
- "lat": 50.0216707,
- "lng": 3.6887328
}, - "company": "9abdbdbe-5f44-4423-8157-520f8a2f429a",
- "active": true,
- "last_updated": "2021-01-22T15:02:00.000Z"
}, - {
- "external_id": "6129e3f1-663f-44ea-aa3f-2ce1077b834c",
- "job_title": "HR analyst",
- "job_description": "We are looking for an HR Analyst to gather and process qualitative and quantitative data around jobs, compensation and employment trends.",
- "location": {
- "lat": 51.0516707,
- "lng": 4.6887328
}, - "company": "9hbdbdbe-5f44-4423-8157-520f8a2f429a",
- "active": true,
- "last_updated": "2021-01-21T17:46:29.000Z"
}
]
}
Submit new Vacancy information to initialise their Skill Profile inside the Skill Engine API.
write
) language required | string The language of the input data, which has an impact on the Skill extraction. Example: language=en |
strict | boolean Default: true If strict is enabled, entity creation will fail when a Skill Profile cannot be constructed. If strict is set to false, failed Skill Profile creation will still result in entity creation, but the Skill Profile will be empty. |
external_id required | string <uuid> (UUID) [ 1 .. 100 ] characters [a-zA-Z0-9_-]+ The unique ID in your system, consisting of alphanumeric characters, hyphens and underscores. |
job_title required | string [ 1 .. 255 ] characters Title of the Vacancy. |
job_description required | string non-empty Textual description of the Vacancy (job posting). |
active | boolean or null Default: true The Vacancy will not be used in matching if active is |
Array of objects or null (Language) List of ISO 639-1 codes for languages required by the Vacancy, combined with the proficiency level. The proficiency levels go from 1 (elementary proficiency) to 5 (native proficiency). If the level is omitted, the default proficiency level of 2 is used. | |
company | string or null <uuid> non-empty [a-zA-Z0-9_-]+ external_id from the External Company the Vacancy is linked to. |
Location (object) or LocationAddress (object) |
{- "external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "job_title": "Software engineer",
- "job_description": "We are looking for a software engineer with great communication Skills in Ghent. Experience in front-end development, git, agile working is a plus.",
- "active": true,
- "languages": [
- {
- "language": "nl",
- "level": 2
}
], - "company": "b3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "location": {
- "lat": 51.0216707,
- "lng": 3.6887328
}
}
[- {
- "title": "400 Bad Request",
- "description": "The request body was not structured correctly."
}
]
Get the Vacancy information stored inside the system.
read
) {- "last_updated": "2021-01-21T17:32:28.000Z",
- "external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "job_title": "Software engineer",
- "job_description": "We are looking for a software engineer with great communication Skills in Ghent. Experience in front-end development, git, agile working is a plus.",
- "active": true,
- "languages": [
- {
- "language": "nl",
- "level": 2
}
], - "company": "b3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "location": {
- "lat": 51.0216707,
- "lng": 3.6887328
}
}
Submit the most up-to-date Vacancy 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.
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
) language required | string The language of the input data, which has an impact on the Skill extraction. Example: language=en |
strict | boolean Default: true If strict is enabled, entity creation will fail when a Skill Profile cannot be constructed. If strict is set to false, failed Skill Profile creation will still result in entity creation, but the Skill Profile will be empty. |
job_title | string [ 1 .. 255 ] characters Title of the Vacancy. |
job_description | string non-empty Textual description of the Vacancy (job posting). |
active | boolean or null Default: true The Vacancy will not be used in matching if active is |
Array of objects or null (Language) List of ISO 639-1 codes for languages required by the Vacancy, combined with the proficiency level. The proficiency levels go from 1 (elementary proficiency) to 5 (native proficiency). If the level is omitted, the default proficiency level of 2 is used. | |
company | string or null <uuid> non-empty [a-zA-Z0-9_-]+ external_id from the External Company the Vacancy is linked to. |
Location (object) or LocationAddress (object) |
{- "job_title": "Software engineer",
- "job_description": "We are looking for a software engineer with great communication Skills in Ghent. Experience in front-end development, git, agile working is a plus.",
- "active": true,
- "languages": [
- {
- "language": "nl",
- "level": 2
}
], - "company": "b3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "location": {
- "lat": 51.0216707,
- "lng": 3.6887328
}
}
[- {
- "title": "400 Bad Request",
- "description": "The request body was not structured correctly."
}
]
Remove a Vacancy from the system. This step deletes all information linked exclusively to this Vacancy. If these need to be removed as well, make sure to do this separately. By deleting a Vacancy, 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 Vacancy 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" The format of the response 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 |
{- "external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "skills": [
- {
- "skill": "Machine Learning",
- "skill_id": "c110316a-41d3-46ef-a35e-dbb27785b1c8"
}, - {
- "skill": "Python",
- "skill_id": "4b85469d-6729-4d70-9876-a0faa2a2f63b"
}, - {
- "skill": "Tensorflow",
- "skill_id": "e03c1859-3bae-4700-b2c5-ede2937038de"
}
]
}
Provide feedback about an existing Vacancy Skill Profile to update it inside the system. When the feedback_format
query parameter is skills
, the body of the feedback message updates the existing Skill Profile, so if a Skill is not present in the body, it will not be affected. The feedback can contain updates that either validate or remove the Skill.
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 Vacancy objects stored inside the system.
read
) {- "entity_type": "Vacancy",
- "entity_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "metric_name": "count",
- "metric_value": 1000,
- "last_update": "2020-09-01T11:45:49Z"
}
Search for Vacancies. Unlike other entities, searching happens based on the job_title
text match by default, not based on Skills match. Literal string matching is fuzzy, meaning that typo's and misspellings should still turn up desired results. For example, searching for deceptionist
could still show receptionist
Vacancy results. Literal search will always result in a score of 1.0
. A combination of both types is possible.
read
) limit | integer [ 1 .. 100 ] Default: 10 The maximal number of results returned. Example: limit=10 |
offset | integer >= 0 Default: 0 The rank offset for returned matches, return matches starting from rank offset up to rank offset+limit. |
score_min_threshold | number <float> [ 0 .. 1 ] Default: 0.5 The minimum score of the results. Due to approximations for fast result-delivery, there might be records with a score slightly lower than the minimum. Example: score_min_threshold=0.7 |
language | string Default: "auto" The language of the input text. Example: language=en |
match_type | string Default: "literal" The type of matching. Example: match_type=skills |
text required | string Input text. |
Location (object) or LocationAddress (object) | |
required | Array of max_geo_distance (object) or custom_property (object) or custom_property_is_in_list (object) or custom_property_contains_element (object) or external_id_is_in_list (object) or is_active (object) or exclude_match_feedback (object) |
required | Array of geo_distance (object) or custom_property (object) or skills_match (object) |
{- "text": "Software Engineer",
- "location": {
- "lat": 51.0216707,
- "lng": 3.6887328
}, - "filters": [
- {
- "filter": "max_geo_distance",
- "max_geo_distance": 50
}, - {
- "filter": "custom_property",
- "property_name": "direct_manager",
- "property_value": "John Doe"
}, - {
- "filter": "custom_property_is_in_list",
- "property_name": "drivers_license",
- "possible_values": [
- "C",
- "CE"
]
}, - {
- "filter": "custom_property_contains_element",
- "property_name": "industries",
- "property_value": "electronics"
}, - {
- "filter": "external_id_is_in_list",
- "external_ids": [
- "external_id_1",
- "external_id_2",
- "external_id_3"
]
}, - {
- "filter": "is_active",
- "is_active": true
}, - {
- "filter": "exclude_match_feedback",
- "search_for": "employee_id",
- "exclude_match_feedback": "thumbs_up"
}
], - "weights": [
- {
- "weight": "max_geo_distance",
- "value": 0.1,
- "full_score_distance": 5,
- "zero_score_distance": 15
}, - {
- "weight": "custom_property",
- "property_name": "direct_manager",
- "property_value": "John Doe",
- "operator": "eq",
- "value": 0.04
}, - {
- "weight": "custom_property",
- "property_name": "yearly_salary",
- "property_value": 45000,
- "operator": "gte",
- "value": 0.04
}
]
}
{- "results": [
- {
- "vacancy_id": "vuid-123",
- "score": 0.82
}, - {
- "vacancy_id": "vuid-456",
- "score": 0.74
}, - {
- "vacancy_id": "vuid-789",
- "score": 0.56
}
]
}
Courses in the Skill Engine API correspond to internal/external training or education.
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 Courses 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
) limit | integer [ 1 .. 200 ] Default: 100 The maximal number of entities returned, ordered by the Example: limit=50 |
offset | integer >= 0 Default: 0 The applied offset for returned entities, results starting from |
is_active | boolean Default: "None" This parameter can be used to only include entities with the Example: is_active=true |
include | Array of strings Additional entity attributes that will be included in the response body. This query parameter can be added multiple times to include more attributes. Example: include=custom_properties |
{- "count": 3,
- "results": [
- {
- "external_id": "5cbdbdbe-5f44-4423-8157-520f8a2f429a",
- "course_title": "Programming Fundamentals",
- "active": true,
- "course_description": "Programming is an increasingly important Skill, whether you aspire to a career in software development, or in other fields. This Course is the first in the specialization Introduction to Programming in C, but its lessons extend to any language you might want to learn. This is because programming is fundamentally about figuring out how to solve a class of problems and writing the algorithm, a clear set of steps to solve any problem in its class. This Course will introduce you to a powerful problem-solving process—the Seven Steps—which you can use to solve any programming problem. In this Course, you will learn how to develop an algorithm, then progress to reading code and understanding how programming concepts relate to algorithms.",
- "last_updated": "2021-01-21T17:32:28.000Z",
- "source": null
}, - {
- "external_id": "62d2c013-ab77-410e-b5fb-2f96eed9c1db",
- "course_title": "Product Marketing Core",
- "active": true,
- "course_description": "From research to optimization, Product Marketing Core explores (cliche alert!) the A to Z of product marketing, and with PMMC in your pocket, you’ll have a richer understanding of the what, why, and how of every product marketing principle. And that’s a promise.",
- "last_updated": "2021-01-22T15:02:00.000Z",
- "source": "Workday"
}, - {
- "external_id": "6129e3f1-663f-44ea-aa3f-2ce1077b834c",
- "course_title": "Data Structures and Algorithms",
- "active": true,
- "course_description": "You will analyze both road networks and social networks and will learn how to compute the shortest route between New York and San Francisco (1000 times faster than the standard shortest path algorithms!) Afterwards, you will learn how to assemble genomes from millions of short fragments of DNA and how assembly algorithms fuel recent developments in personalized medicine.",
- "last_updated": "2021-01-21T17:46:29.000Z",
- "source": "Udemy"
}
]
}
Submit new Course information to initialise its Skill Profile inside the Skill Engine API.
write
) language required | string The language of the input data, which has an impact on the Skill extraction. Example: language=en |
strict | boolean Default: true If strict is enabled, entity creation will fail when a Skill Profile cannot be constructed. If strict is set to false, failed Skill Profile creation will still result in entity creation, but the Skill Profile will be empty. |
external_id required | string <uuid> (UUID) [ 1 .. 100 ] characters [a-zA-Z0-9_-]+ The unique ID in your system, consisting of alphanumeric characters, hyphens and underscores. |
course_title required | string [ 1 .. 255 ] characters Title of the Course. |
course_description required | string non-empty Textual description of the Course. |
source | string [ 1 .. 255 ] characters Source system or location of this Course. |
active | boolean or null (CourseActive) Default: true The Course will not be used in matching if active is |
{- "external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "course_title": "Computer Science 101",
- "course_description": "This Professional Certificate will start you at the absolute beginning teaching you about the fundamental binary language of modern computers. You’ll learn about the Turing Machine—a model for the digital computer. You’ll also learn the basics of analytic logic and how learning and applying basic principles of logic can help you both work with and work on technical solutions. You’ll work in a managed environment and learn to code your very first program in Python – a powerful but simple programming language used by app developers and data scientists.",
- "source": "Udemy",
- "active": true
}
[- {
- "title": "400 Bad Request",
- "description": "The request body was not structured correctly."
}
]
Get the Course information stored inside the system.
read
) {- "last_updated": "2021-01-21T17:32:28.000Z",
- "external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "course_title": "Computer Science 101",
- "course_description": "This Professional Certificate will start you at the absolute beginning teaching you about the fundamental binary language of modern computers. You’ll learn about the Turing Machine—a model for the digital computer. You’ll also learn the basics of analytic logic and how learning and applying basic principles of logic can help you both work with and work on technical solutions. You’ll work in a managed environment and learn to code your very first program in Python – a powerful but simple programming language used by app developers and data scientists.",
- "source": "Udemy",
- "active": true
}
Submit the most up-to-date Course 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.
write
) language required | string The language of the input data, which has an impact on the Skill extraction. Example: language=en |
strict | boolean Default: true If strict is enabled, entity creation will fail when a Skill Profile cannot be constructed. If strict is set to false, failed Skill Profile creation will still result in entity creation, but the Skill Profile will be empty. |
course_title | string [ 1 .. 255 ] characters Title of the Course. |
course_description | string non-empty Textual description of the Course. |
source | string [ 1 .. 255 ] characters Source system or location of this Course. |
active | boolean or null (CourseActive) Default: true The Course will not be used in matching if active is |
{- "course_title": "Computer Science 101",
- "course_description": "This Professional Certificate will start you at the absolute beginning teaching you about the fundamental binary language of modern computers. You’ll learn about the Turing Machine—a model for the digital computer. You’ll also learn the basics of analytic logic and how learning and applying basic principles of logic can help you both work with and work on technical solutions. You’ll work in a managed environment and learn to code your very first program in Python – a powerful but simple programming language used by app developers and data scientists.",
- "source": "Workday",
- "active": true
}
[- {
- "title": "400 Bad Request",
- "description": "The request body was not structured correctly."
}
]
Remove a Course from the system. This step deletes all information linked exclusively to this Course and cannot be undone.
[- {
- "title": "401 Unauthorized",
- "description": "OAuth access token is missing, invalid or expired."
}
]
Get an export of the Course 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" The format of the response 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 |
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",
- "skills": [
- {
- "skill": "Machine Learning",
- "skill_id": "c110316a-41d3-46ef-a35e-dbb27785b1c8"
}, - {
- "skill": "Python",
- "skill_id": "4b85469d-6729-4d70-9876-a0faa2a2f63b"
}, - {
- "skill": "Tensorflow",
- "skill_id": "e03c1859-3bae-4700-b2c5-ede2937038de"
}
]
}
Provide feedback about an existing Course Skill Profile to update it inside the system. When the feedback_format
query parameter is skills
, the body of the feedback message updates the existing Skill Profile, so if a Skill is not present in the body, it will not be affected. The feedback can contain updates that either validate or remove the Skill.
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 Course objects stored inside the system.
read
) {- "entity_type": "Course",
- "entity_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "metric_name": "count",
- "metric_value": 1000,
- "last_update": "2020-09-01T11:45:49Z"
}
Skill Clusters in the Skill Engine API allow enterprise customers to use their own Skill Cluster framework.
More info about Skill Clusters can be found at the How it Works page and the Skill Cluster Tutorial.
Custom Properties are supported for this entity.
Get a list of all Skill Clusters 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",
- "skill_cluster_name": "Debug Software",
- "skill_cluster_description": "Repair computer code by analysing testing results, locating the defects causing the software to output an incorrect or unexpected result and removing these faults.",
- "last_updated": "2021-01-21T17:32:28.000Z",
- "skill_cluster_type": "taxonomy"
}, - {
- "external_id": "62d2c013-ab77-410e-b5fb-2f96eed9c1db",
- "skill_cluster_name": "Program Firmware",
- "skill_cluster_description": "Program permanent software with a read-only memory (ROM) on a hardware device, such as an integrated circuit.",
- "last_updated": "2021-01-22T15:02:00.000Z",
- "skill_cluster_type": "inferred"
}, - {
- "external_id": "6129e3f1-663f-44ea-aa3f-2ce1077b834c",
- "skill_cluster_name": "Utilise Machine Learning",
- "skill_cluster_description": "Use techniques and algorithms that are able to extract mastery out of data, learn from it and make predictions, to be used for program optimisation, application adaptation, pattern recognition, filtering, search engines and computer vision.",
- "last_updated": "2021-01-21T17:46:29.000Z",
- "skill_cluster_type": "inferred"
}
]
}
Get the Skill Cluster information stored inside the system.
read
) {- "last_updated": "2021-01-21T17:32:28.000Z",
- "external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "skill_cluster_name": "Audit",
- "skill_cluster_description": "The ability and Skill to conduct audits, identifying exceptions and developing specific solutions or recommendations",
- "skill_cluster_type": "taxonomy"
}
Get an export of the Skill Cluster Skill Profile to leverage it for user interaction.
read
) response_format | string Default: "list" The format in which the Skill Profile needs to be returned. More info about adding your Skill Clusters can be found in the tutorials. 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 |
{- "external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "skills": [
- {
- "skill": "Programming"
}, - {
- "skill": "Business Intelligence"
}, - {
- "skill": "Machine Learning"
}
], - "domain": "Machine Learning"
}
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 Skill Cluster objects stored inside the system.
read
) {- "entity_type": "SkillCluster",
- "entity_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "metric_name": "count",
- "metric_value": 1000,
- "last_update": "2020-09-01T11:45:49Z"
}
An External Company in the Skill Engine API represents any external company. They can be used to match against, using the Vacancies that are linked to them.
Employment and staffing customers can match candidates with external companies, even when they do not have an explicitly advertised position.
Enterprise customers can use External Companies too to profile and compare themselves to other External Companies.
More info about External Companies can be found on the How it Works page and the External Company tutorial.
Custom Properties are supported for this entity.
Get a list of all External Companies 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
) limit | integer [ 1 .. 200 ] Default: 100 The maximal number of entities returned, ordered by the Example: limit=50 |
offset | integer >= 0 Default: 0 The applied offset for returned entities, results starting from |
include | Array of strings Additional entity attributes that will be included in the response body. This query parameter can be added multiple times to include more attributes. Example: include=custom_properties |
{- "count": 2,
- "results": [
- {
- "external_id": "5cbdbdbe-5f44-4423-8157-520f8a2f429a",
- "name": "TechWolf",
- "vat": "BE0702852201",
- "location": {
- "lat": 51.0216707,
- "lng": 2.6887328
}
}, - {
- "external_id": "62d2c013-ab77-410e-b5fb-2f96eed9c1db",
- "name": "Example BVBA",
- "vat": "BE0702852201",
- "location": {
- "lat": 50.0216707,
- "lng": 3.6887328
}
}
]
}
Submit new External Company information to store inside the Skill Engine API.
write
) external_id required | string <uuid> (UUID) [ 1 .. 100 ] characters [a-zA-Z0-9_-]+ The unique ID in your system, consisting of alphanumeric characters, hyphens and underscores. |
name required | string [ 1 .. 255 ] characters Name of the External Company. |
vat required | string [ 1 .. 15 ] characters The VAT identification number for this External Company. |
required | Location (object) or LocationAddress (object) |
Array of objects or null (Language) List of ISO 639-1 codes for language requirements of the External Company, combined with the proficiency level. The proficiency levels go from 1 (elementary proficiency) to 5 (native proficiency). If the level is omitted, the default proficiency level of 2 is used. |
{- "external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "name": "TechWolf",
- "vat": "BE0702852201",
- "location": {
- "lat": 51.0216707,
- "lng": 3.6887328
}, - "languages": [
- {
- "language": "nl",
- "level": 2
}
]
}
[- {
- "title": "400 Bad Request",
- "description": "The request body was not structured correctly."
}
]
Get the External Company information stored inside the system.
read
) {- "external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "name": "TechWolf",
- "vat": "BE0702852201",
- "location": {
- "lat": 51.0216707,
- "lng": 3.6887328
}, - "languages": [
- {
- "language": "nl",
- "level": 2
}
]
}
Submit the most up-to-date External Company information to update the information stored inside the system. Any field that is present will overwrite existing values within the system, while absent fields will be left as-is.
write
) name | string [ 1 .. 255 ] characters Name of the External Company. |
vat | string [ 1 .. 15 ] characters The VAT identification number for this External Company. |
Location (object) or LocationAddress (object) | |
Array of objects or null (Language) List of ISO 639-1 codes for language requirements of the External Company, combined with the proficiency level. The proficiency levels go from 1 (elementary proficiency) to 5 (native proficiency). If the level is omitted, the default proficiency level of 2 is used. |
{- "name": "TechWolf",
- "vat": "BE0702852201",
- "location": {
- "lat": 51.0216707,
- "lng": 3.6887328
}, - "languages": [
- {
- "language": "nl",
- "level": 2
}
]
}
[- {
- "title": "400 Bad Request",
- "description": "The request body was not structured correctly."
}
]
Remove an External Company from the system. The External Company's linked Vacancies will be processed in cascade based on:
[- {
- "title": "401 Unauthorized",
- "description": "OAuth access token is missing, invalid or expired."
}
]
Get an overview of all the Vacancies stored inside the system that are linked to the specified External Company.
{- "count": 3,
- "results": [
- {
- "external_id": "5cbdbdbe-5f44-4423-8157-520f8a2f429a",
- "job_title": "Staffing coordinator",
- "job_description": "We are looking for a competent Staffing coordinator to undertake a variety of tasks such as recruitment, orientation and placement of Employees. You will also be the one to ensure that the Company complies with all relevant laws regarding employment.",
- "location": {
- "lat": 51.0216707,
- "lng": 2.6887328
}, - "company": "8cbdbdbe-5f44-4423-8157-520f8a2f429a",
- "active": true,
- "last_updated": "2021-01-21T17:32:28.000Z"
}, - {
- "external_id": "62d2c013-ab77-410e-b5fb-2f96eed9c1db",
- "job_title": "HR assistant",
- "job_description": "We are looking for an HR Assistant to undertake a variety of HR administrative duties.",
- "location": {
- "lat": 50.0216707,
- "lng": 3.6887328
}, - "company": "9abdbdbe-5f44-4423-8157-520f8a2f429a",
- "active": true,
- "last_updated": "2021-01-22T15:02:00.000Z"
}, - {
- "external_id": "6129e3f1-663f-44ea-aa3f-2ce1077b834c",
- "job_title": "HR analyst",
- "job_description": "We are looking for an HR Analyst to gather and process qualitative and quantitative data around jobs, compensation and employment trends.",
- "location": {
- "lat": 51.0516707,
- "lng": 4.6887328
}, - "company": "9hbdbdbe-5f44-4423-8157-520f8a2f429a",
- "active": true,
- "last_updated": "2021-01-21T17:46:29.000Z"
}
]
}
Upload a list of desired functions that will be created as inactive pseudo Vacancies linked to the External Company. If no Skill Profile can be created from the Job title alone, the desired function will not be stored. The desired function Vacancies will be added to the already existing desired function Vacancies of the External Company.
write
) language required | string The language of the input data, which has an impact on the Skill extraction. Example: language=en |
request_format | string Default: "list" Explicitly sets the input format used to represent the submitted desired functions as either:
Example: request_format=list |
required | Array of objects (job_title) |
{- "titles": [
- {
- "job_title": "Business analyst"
}, - {
- "job_title": "Data Scientist"
}
]
}
[- {
- "title": "400 Bad Request",
- "description": "The request body was not structured correctly."
}
]
Replace the list of desired functions that are used as inactive pseudo Vacancies linked to the External Company. If no Skill Profile can be created from the Job title alone, the desired function will not be stored. Previously existing desired function Vacancies will be removed when using this endpoint.
write
) language required | string The language of the input data, which has an impact on the Skill extraction. Example: language=en |
request_format | string Default: "list" Explicitly sets the input format used to represent the submitted desired functions as either:
Example: request_format=list |
required | Array of objects (job_title) |
{- "titles": [
- {
- "job_title": "Business analyst"
}, - {
- "job_title": "Data Scientist"
}
]
}
[- {
- "title": "400 Bad Request",
- "description": "The request body was not structured correctly."
}
]
Profiles the market-average hiring activity of an External Company based on their linked NACE-codes by creating corresponding pseudo-Vacancies in the system. This operation is additive and remembers previously profiled pseudo-Vacancies.
write
) type required | string non-empty As European member states are free to deepen the baselist of NACE codes to classify economic activities, this parameter specifies the derivative set of NACE codes used as input. For example, NACEBEL-codes are standard use in Belgium. Example: type=nace_bel |
{- "nace_codes": [
- "10110",
- "94910"
]
}
[- {
- "title": "400 Bad Request",
- "description": "The request body was not structured correctly."
}
]
Profiles the market-average hiring activity of an External Company based on their linked NACE-codes by creating corresponding pseudo-Vacancies in the system. This operation is substituting and replaces previously profiled pseudo-Vacancies.
write
) type required | string non-empty As European member states are free to deepen the baselist of NACE codes to classify economic activities, this parameter specifies the derivative set of NACE codes used as input. For example, NACEBEL-codes are standard use in Belgium. Example: type=nace_bel |
{- "nace_codes": [
- "10110",
- "94910"
]
}
[- {
- "title": "400 Bad Request",
- "description": "The request body was not structured correctly."
}
]
Search for External Companies
read
) limit | integer [ 1 .. 100 ] Default: 10 The maximal number of results returned. Example: limit=10 |
offset | integer >= 0 Default: 0 The rank offset for returned matches, return matches starting from rank offset up to rank offset+limit. |
score_min_threshold | number <float> [ 0 .. 1 ] Default: 0.5 The minimum score of the results. Due to approximations for fast result-delivery, there might be records with a score slightly lower than the minimum. Example: score_min_threshold=0.7 |
language | string Default: "auto" The language of the input text. Example: language=en |
text required | string Input text. |
Location (object) or LocationAddress (object) | |
required | Array of max_geo_distance (object) or custom_property (object) or custom_property_is_in_list (object) or custom_property_contains_element (object) or external_id_is_in_list (object) |
required | Array of geo_distance (object) or custom_property (object) or skills_match (object) |
{- "text": "Bakery",
- "location": {
- "lat": 51.0216707,
- "lng": 3.6887328
}, - "filters": [
- {
- "filter": "max_geo_distance",
- "max_geo_distance": 50
}, - {
- "filter": "custom_property",
- "property_name": "direct_manager",
- "property_value": "John Doe"
}, - {
- "filter": "custom_property_is_in_list",
- "property_name": "drivers_license",
- "possible_values": [
- "C",
- "CE"
]
}, - {
- "filter": "custom_property_contains_element",
- "property_name": "industries",
- "property_value": "electronics"
}, - {
- "filter": "external_id_is_in_list",
- "external_ids": [
- "external_id_1",
- "external_id_2",
- "external_id_3"
]
}
], - "weights": [
- {
- "weight": "max_geo_distance",
- "value": 0.1,
- "full_score_distance": 5,
- "zero_score_distance": 15
}, - {
- "weight": "custom_property",
- "property_name": "direct_manager",
- "property_value": "John Doe",
- "operator": "eq",
- "value": 0.04
}, - {
- "weight": "custom_property",
- "property_name": "yearly_salary",
- "property_value": 45000,
- "operator": "gte",
- "value": 0.04
}
]
}
{- "results": [
- {
- "company_id": "cuid-123",
- "score": 0.9,
- "matching_vacancies": [
- {
- "vacancy_id": "a4003805-eb84-42dc-a79f-5e7b1fe897b7",
- "score": 0.9,
- "job_title": "Business Analyst"
}, - {
- "vacancy_id": "b4003805-eb84-42dc-a79f-5e7b1fe897b7",
- "score": 0.7,
- "job_title": "Data Scientist"
}
]
}, - {
- "company_id": "cuid-456",
- "score": 0.8,
- "matching_vacancies": [
- {
- "vacancy_id": "e1d2b367-d899-474f-a3e4-4f926e2bf6d9",
- "score": 0.8,
- "job_title": "Software Engineer"
}, - {
- "vacancy_id": "3d21ce18-f599-43e6-9a57-10e13916f1dd",
- "score": 0.7,
- "job_title": "Data Scientist"
}
]
}
]
}
read
) query required | string <= 100 characters Example: query=Machine%20le |
limit | integer >= 1 Default: 10 The maximal number of results returned. Example: limit=10 |
search_method | string Default: "autocomplete" Indicates how Skills are searched for with the given query. Example: search_method=autocomplete |
domain_namespace | string Default: "techwolf" The Domain namespace determines the Domains the Skills will be mapped to. Using Example: domain_namespace=taxonomy |
[- {
- "skill": "Machine Learning",
- "skill_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "domain": "Data Science"
}
]
read
) employee_external_id required | string <uuid> (UUID) [ 1 .. 100 ] characters [a-zA-Z0-9_-]+ Unique external ID linked to this Employee, consisting of alphanumeric characters, hyphens and underscores. Example: a3903505-eb84-42dc-a79f-5e7b1fe897b7 |
vacancy_external_id required | string <uuid> (UUID) [ 1 .. 100 ] characters [a-zA-Z0-9_-]+ Unique external ID linked to this Vacancy, consisting of alphanumeric characters, hyphens and underscores. Example: b003505-eb84-42dc-a79f-5e7b1fe897b7 |
[- {
- "skill_name": "Machine Learning",
- "skill_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7"
}
]
{- "skill_names": [
- "Machine Learning",
- "Python",
- "Tensorflow"
]
}
[- {
- "results": [
- {
- "skill_name": "Machine Learning",
- "skill_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "external_id": "af572197-d6a9-4366-a816-caeadccb260c"
}
]
}
]
Organisational Units in the Skill Engine API represent groupings of Employees arranged in a hierarchical structure.
Custom Properties are supported for this entity.
Get a list of all Organisational Units available in the system.
read
) limit | integer [ 1 .. 200 ] Default: 100 The maximal number of entities returned, ordered by the Example: limit=50 |
offset | integer >= 0 Default: 0 The applied offset for returned entities, results starting from |
parent_id | string This parameter can be used to only include Organisational Units with the specified Example: parent_id=c3903505-eb84-42dc-a79f-5d8b1fe897b7 |
{- "count": 3,
- "results": [
- {
- "external_id": "5cbdbdbe-5f44-4423-8157-520f8a2f429a",
- "name": "Engineering",
- "total_nr_of_employees": 20,
- "active": true,
- "parent_id": null
}, - {
- "external_id": "6129e3f1-663f-44ea-aa3f-2ce1077b834c",
- "name": "IT",
- "total_nr_of_employees": 6,
- "active": true,
- "parent_id": "5cbdbdbe-5f44-4423-8157-520f8a2f429a"
}, - {
- "external_id": "62d2c013-ab77-410e-b5fb-2f96eed9c1db",
- "name": "Finance",
- "total_nr_of_employees": 8,
- "active": true,
- "parent_id": null
}
]
}
Create a new Organisational Unit in the Skill Engine API.
write
) external_id required | string <uuid> (UUID) [ 1 .. 100 ] characters [a-zA-Z0-9_-]+ The unique ID in your system, consisting of alphanumeric characters, hyphens and underscores. |
name required | string [ 1 .. 100 ] characters The name of the Organisational Unit. |
active | boolean Default: true Indicates whether the Organisational Unit is active or not. |
parent_id | string <uuid> [ 1 .. 100 ] characters [a-zA-Z0-9_-]+ Default: null Unique identifier for the parent Organisational Unit, establishing the organisational structure. Organisational Units with |
{- "external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "name": "Engineering",
- "active": true,
- "parent_id": "b4824606-fc95-53ed-b80g-6f8c2ge908c8"
}
[- {
- "title": "400 Bad Request",
- "description": "The request body was not structured correctly."
}
]
Get the Organisational Unit information stored inside the system.
{- "external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "name": "Engineering",
- "active": true,
- "parent_id": "b4824606-fc95-53ed-b80g-6f8c2ge908c8",
- "total_nr_of_employees": 13
}
Submit the most up-to-date Organisational Unit information. Any field that is present will overwrite existing values within the system, while absent fields will be left as-is.
write
) name | string [ 1 .. 255 ] characters Name of the Organisational Unit. |
active | boolean Default: true Indicates whether the Organisational Unit is active or not. |
parent_id | string <uuid> [ 1 .. 100 ] characters [a-zA-Z0-9_-]+ Unique identifier for the parent Organisational Unit, establishing the organisational structure. Organisational Units with |
{- "name": "Engineering",
- "active": true,
- "parent_id": "b4824606-fc95-53ed-b80g-6f8c2ge908c8"
}
[- {
- "title": "400 Bad Request",
- "description": "The request body was not structured correctly."
}
]
Remove an Organisational Unit and all its subordinate units from the system. This action will remove all information associated exclusively with these units and cannot be undone.
[- {
- "title": "401 Unauthorized",
- "description": "OAuth access token is missing, invalid or expired."
}
]
Custom Properties within the Skill Engine API offer users the capability to finely customize attributes for a wide array of entities, including:
More info about entities can be found on the How it Works page.
Get a list of all the Custom Property Definitions stored inside the system.
read
) entity_type required | string Custom Properties are supported on the following entity types: Example: employees |
[- {
- "property_name": "wage",
- "property_type": "number"
}, - {
- "property_name": "sector",
- "property_type": "text"
}
]
Create a new Custom Property Definition in the system.
write
) entity_type required | string Custom Properties are supported on the following entity types: Example: employees |
{- "property_name": "sector",
- "property_type": "text"
}
[- {
- "title": "400 Bad Request",
- "description": "The request body was not structured correctly."
}
]
Get the Custom Property Definition information stored inside the system.
read
) entity_type required | string Custom Properties are supported on the following entity types: Example: employees |
required | object (CustomPropertyDefinitionPropertyName) CustomPropertyDefinition property name. |
{- "property_name": "sector",
- "property_type": "text"
}
Rename a Custom Property Definition.
write
) entity_type required | string Custom Properties are supported on the following entity types: Example: employees |
required | object (CustomPropertyDefinitionPropertyName) CustomPropertyDefinition property name. |
{- "property_name": "sector"
}
[- {
- "title": "400 Bad Request",
- "description": "The request body was not structured correctly."
}
]
Remove a Custom Property Definition from the system.
write
) entity_type required | string Custom Properties are supported on the following entity types: Example: employees |
required | object (CustomPropertyDefinitionPropertyName) CustomPropertyDefinition property name. |
[- {
- "title": "401 Unauthorized",
- "description": "OAuth access token is missing, invalid or expired."
}
]
Fetch all entity's Custom Properties from the system (if any exists, otherwise an empty list is returned).
read
) entity_type required | string Custom Properties are supported on the following entity types: Example: employees |
entity_type_external_id required | string <uuid> (UUID) [ 1 .. 100 ] characters [a-zA-Z0-9_-]+ Unique external ID linked to this entity, consisting of alphanumeric characters, hyphens and underscores. Note that the endpoint Example: a3903505-eb84-42dc-a79f-5e7b1fe897b7 |
[- {
- "property_name": "type",
- "property_value": "online"
}, - {
- "property_name": "years_of_experience",
- "property_value": 3
}, - {
- "property_name": "online",
- "property_value": true
}, - {
- "property_name": "tools",
- "property_value": [
- "JIRA",
- "Git"
]
}, - {
- "property_name": "creation_date",
- "property_value": "2023-04-25T17:14:30.40"
}
]
In addition to the default fields available for each entity, a set of Custom Properties can be added. Each entity is allowed to have a maximum of 100 properties, with properties being numbers or strings (maximum length 1000 characters).
write
) entity_type required | string Custom Properties are supported on the following entity types: Example: employees |
entity_type_external_id required | string <uuid> (UUID) [ 1 .. 100 ] characters [a-zA-Z0-9_-]+ Unique external ID linked to this entity, consisting of alphanumeric characters, hyphens and underscores. Note that the endpoint Example: a3903505-eb84-42dc-a79f-5e7b1fe897b7 |
[- {
- "property_name": "type",
- "property_value": "online"
}, - {
- "property_name": "years_of_experience",
- "property_value": 3
}, - {
- "property_name": "online",
- "property_value": true
}, - {
- "property_name": "tools",
- "property_value": [
- "JIRA",
- "Git"
]
}, - {
- "property_name": "creation_date",
- "property_value": "2023-04-25T17:14:30.40"
}
]
{- "title": "400 Bad Request",
- "description": "The request body was not structured correctly."
}
In addition to the default fields available for each entity, a set of Custom Properties can be added. Each entity is allowed to have a maximum of 100 properties, with properties being numbers or strings (maximum length 1000 characters).
write
) entity_type required | string Custom Properties are supported on the following entity types: Example: employees |
entity_type_external_id required | string <uuid> (UUID) [ 1 .. 100 ] characters [a-zA-Z0-9_-]+ Unique external ID linked to this entity, consisting of alphanumeric characters, hyphens and underscores. Note that the endpoint Example: a3903505-eb84-42dc-a79f-5e7b1fe897b7 |
[- {
- "property_name": "type",
- "property_value": "online"
}, - {
- "property_name": "years_of_experience",
- "property_value": 3
}, - {
- "property_name": "online",
- "property_value": true
}, - {
- "property_name": "tools",
- "property_value": [
- "JIRA",
- "Git"
]
}, - {
- "property_name": "creation_date",
- "property_value": "2023-04-25T17:14:30.40"
}
]
{- "title": "400 Bad Request",
- "description": "The request body was not structured correctly."
}
Drop all entity's Custom Properties from the system (if any exists).
write
) entity_type required | string Custom Properties are supported on the following entity types: Example: employees |
entity_type_external_id required | string <uuid> (UUID) [ 1 .. 100 ] characters [a-zA-Z0-9_-]+ Unique external ID linked to this entity, consisting of alphanumeric characters, hyphens and underscores. Note that the endpoint Example: a3903505-eb84-42dc-a79f-5e7b1fe897b7 |
[- {
- "title": "401 Unauthorized",
- "description": "OAuth access token is missing, invalid or expired."
}
]
The Skill Engine API allows you to fetch matching entities and External Companies with a wide range of different configurations. The system leverages a set of filters (constraints that are applied before matching, making a binary decision for each entity whether they should be considered) and weights (reweighting of the match scores) to let you tailor results to your wishes. You can find more information about how filters work here.
Match results can be queried in a paginated manner, allowing you to iteratively
fetch all relevant results for a match query using the common limit
and
offset
setup. Under the hood, the Skill Engine API uses a two-step process to
enable paginated results: first, approximate matching is applied to create an
initial ordering of results, followed by refinement of these results into the
final scores. The ordering of the results, and therefore also the contents of
any given page, are determined entirely by the approximate matching. This allows
us to provide high volumes of matches without the delay caused by refining all
possible matches for every single query. As approximate and refined scores can
in some cases deviate from each other slightly, it is expected that in some
cases the last result of a given page can have a lower score than the first
result of the next -- if this is problematic for your use case (i.e. you want
the exact top 10), then we recommend using a higher limit and trimming down
results, as this suffices to capture any reordering caused by refinement.
By default, a geographic distance filter is applied by default such that only
entities within a 50 km range are considered. This range can be adapted by
configuring the max_geo_distance
filter. To retain fast response times, any
matching request that has more than 10.000 entities fulfilling all filter
criteria will be cut off at the 10.000 entities that are geographically closest
to the search point.
You can use filters in the request body to restrict the match results based on distance, language & Custom Properties. If the max_geo_distance
filter is not provided, a default value of 50km is used.
read
) score_min_threshold | number <float> [ 0 .. 1 ] Default: 0.5 The minimum score of the results. Due to approximations for fast result-delivery, there might be records with a score slightly lower than the minimum. Example: score_min_threshold=0.7 |
limit | integer [ 1 .. 100 ] Default: 10 The maximal number of results returned. Example: limit=10 |
offset | integer >= 0 Default: 0 The rank offset for returned matches, return matches starting from rank offset up to rank offset+limit. |
response_format | string Default: "simple" If set to Example: response_format=explained |
include | Array of strings Additional entity attributes that will be included in the response body. This query parameter can be added multiple times to include more attributes. When include Example: include=custom_properties&include=entity&include=location |
required | Array of max_geo_distance (object) or multi_max_geo_distances (object) or language (object) or last_updated (object) or custom_property_equal (object) or custom_property (object) or custom_property_is_in (object) or custom_property_is_in_list (object) or custom_property_contains (object) or custom_property_contains_element (object) or custom_property_list_overlap (object) or external_id_is_in_list (object) or exclude_match_feedback (object) |
required | Array of skills_match (object) or desired_functions (object) or geo_distance (object) or language (object) or custom_property (object) or custom_property_is_in (object) or custom_property_is_in_list (object) or custom_property_contains (object) or custom_property_contains_element (object) or custom_property_list_overlap (object) |
used_event_types | Array of strings If not empty, only Skill Events of the types listed here will be taken into account to perform the matching. Learn more about the Skill Event Types at How it works. |
{- "filters": [
- {
- "filter": "max_geo_distance",
- "max_geo_distance": 50
}, - {
- "filter": "multi_max_geo_distances",
- "multi_max_geo_distances": [
- {
- "max_geo_distance": 20,
- "location": {
- "lat": 51.34,
- "lng": 3.15
}
}, - {
- "max_geo_distance": 20,
- "location": {
- "country": "BE",
- "postal_code": 9000
}
}
]
}, - {
- "filter": "language",
- "max_overqualification": 2,
- "max_underqualification": 1
}, - {
- "filter": "last_updated",
- "value": "2022-01-01",
- "operator": "lt"
}, - {
- "filter": "custom_property_equal",
- "from_entity_property": "desired_wage",
- "to_entity_property": "wage"
}, - {
- "filter": "custom_property",
- "property_name": "direct_manager",
- "property_value": "John Doe"
}, - {
- "filter": "custom_property_is_in",
- "from_entity_property": "required_drivers_license",
- "to_entity_property": "drivers_licenses"
}, - {
- "filter": "custom_property_is_in_list",
- "property_name": "drivers_license",
- "possible_values": [
- "C",
- "CE"
]
}, - {
- "filter": "custom_property_contains",
- "from_entity_property": "shift_regime_codes",
- "to_entity_property": "desired_regime"
}, - {
- "filter": "custom_property_list_overlap",
- "from_entity_property": "desired_industries",
- "to_entity_property": "industries"
}, - {
- "filter": "custom_property_contains_element",
- "property_name": "industries",
- "property_value": "electronics"
}, - {
- "filter": "external_id_is_in_list",
- "external_ids": [
- "c350500-eb84-42dc-a79f-5e7b1fe897b7",
- "b450500-eb84-42dc-a79f-5e7b1fe897c8"
]
}
], - "weights": [
- {
- "weight": "skills_match",
- "value": 1
}, - {
- "weight": "desired_functions",
- "value": 0.03
}, - {
- "weight": "geo_distance",
- "value": 0.1,
- "full_score_distance": 5,
- "zero_score_distance": 50
}, - {
- "weight": "language",
- "value": 0.1,
- "max_overqualification": 2,
- "max_underqualification": 3
}, - {
- "weight": "custom_property",
- "value": 0.04,
- "property_name": "yearly_salary",
- "operator": "gte",
- "property_value": 45000
}, - {
- "weight": "custom_property_is_in",
- "value": 0.06,
- "from_entity_property": "desired_work_regime",
- "to_entity_property": "offered_work_regimes"
}, - {
- "weight": "custom_property_is_in_list",
- "value": 0.05,
- "property_name": "region",
- "possible_values": [
- "Flanders",
- "Wallonia"
]
}, - {
- "weight": "custom_property_contains",
- "value": 0.07,
- "from_entity_property": "sectors",
- "to_entity_property": "desired_sector"
}, - {
- "weight": "custom_property_contains_element",
- "value": 0.04,
- "property_name": "industries",
- "property_value": [
- "Electronics",
- "Aviation"
]
}, - {
- "weight": "custom_property_list_overlap",
- "value": 0.04,
- "from_entity_property": "desired_industries",
- "to_entity_property": "industries"
}
], - "used_event_types": [
- "working_history",
- "education_history"
]
}
{- "results": [
- {
- "employee_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "vacancy_id": "b003505-eb84-42dc-a79f-5e7b1fe897b7",
- "score": 0.87657
}
]
}
read
) employee_external_id required | string <uuid> (UUID) [ 1 .. 100 ] characters [a-zA-Z0-9_-]+ Unique external ID linked to this Employee, consisting of alphanumeric characters, hyphens and underscores. Example: a3903505-eb84-42dc-a79f-5e7b1fe897b7 |
vacancy_external_id required | string <uuid> (UUID) [ 1 .. 100 ] characters [a-zA-Z0-9_-]+ Unique external ID linked to this Vacancy, consisting of alphanumeric characters, hyphens and underscores. Example: b003505-eb84-42dc-a79f-5e7b1fe897b7 |
response_format | string Default: "simple" If set to Example: response_format=explained |
include | Array of strings Additional entity attributes that will be included in the response body. This query parameter can be added multiple times to include more attributes. Example: include=relevant_experience |
{- "employee_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "vacancy_id": "b003505-eb84-42dc-a79f-5e7b1fe897b7",
- "score": 0.87657
}
You can use filters in the request body to restrict the match results based on distance, language & Custom Properties. If the max_geo_distance
filter is not provided, a default value of 50km is used.
read
) score_min_threshold | number <float> [ 0 .. 1 ] Default: 0.5 The minimum score of the results. Due to approximations for fast result-delivery, there might be records with a score slightly lower than the minimum. Example: score_min_threshold=0.7 |
limit | integer [ 1 .. 100 ] Default: 10 The maximal number of results returned. Example: limit=10 |
offset | integer >= 0 Default: 0 The rank offset for returned matches, return matches starting from rank offset up to rank offset+limit. |
response_format | string Default: "simple" If set to Example: response_format=explained |
include | Array of strings Additional entity attributes that will be included in the response body. This query parameter can be added multiple times to include more attributes. When include Example: include=custom_properties&include=entity&include=location |
required | Array of max_geo_distance (object) or multi_max_geo_distances (object) or language (object) or last_updated (object) or custom_property_equal (object) or custom_property (object) or custom_property_is_in (object) or custom_property_is_in_list (object) or custom_property_contains (object) or custom_property_contains_element (object) or custom_property_list_overlap (object) or external_id_is_in_list (object) or exclude_match_feedback (object) |
required | Array of skills_match (object) or desired_functions (object) or geo_distance (object) or language (object) or custom_property (object) or custom_property_is_in (object) or custom_property_is_in_list (object) or custom_property_contains (object) or custom_property_contains_element (object) or custom_property_list_overlap (object) |
{- "filters": [
- {
- "filter": "max_geo_distance",
- "max_geo_distance": 50
}, - {
- "filter": "multi_max_geo_distances",
- "multi_max_geo_distances": [
- {
- "max_geo_distance": 20,
- "location": {
- "lat": 51.34,
- "lng": 3.15
}
}, - {
- "max_geo_distance": 20,
- "location": {
- "country": "BE",
- "postal_code": 9000
}
}
]
}, - {
- "filter": "language",
- "max_overqualification": 2,
- "max_underqualification": 1
}, - {
- "filter": "last_updated",
- "value": "2022-01-01",
- "operator": "lt"
}, - {
- "filter": "custom_property_equal",
- "from_entity_property": "desired_wage",
- "to_entity_property": "wage"
}, - {
- "filter": "custom_property",
- "property_name": "direct_manager",
- "property_value": "John Doe"
}, - {
- "filter": "custom_property_is_in",
- "from_entity_property": "required_drivers_license",
- "to_entity_property": "drivers_licenses"
}, - {
- "filter": "custom_property_is_in_list",
- "property_name": "drivers_license",
- "possible_values": [
- "C",
- "CE"
]
}, - {
- "filter": "custom_property_contains",
- "from_entity_property": "shift_regime_codes",
- "to_entity_property": "desired_regime"
}, - {
- "filter": "custom_property_list_overlap",
- "from_entity_property": "desired_industries",
- "to_entity_property": "industries"
}, - {
- "filter": "custom_property_contains_element",
- "property_name": "industries",
- "property_value": "electronics"
}, - {
- "filter": "external_id_is_in_list",
- "external_ids": [
- "c350500-eb84-42dc-a79f-5e7b1fe897b7",
- "b450500-eb84-42dc-a79f-5e7b1fe897c8"
]
}
], - "weights": [
- {
- "weight": "skills_match",
- "value": 1
}, - {
- "weight": "desired_functions",
- "value": 0.03
}, - {
- "weight": "geo_distance",
- "value": 0.1,
- "full_score_distance": 5,
- "zero_score_distance": 50
}, - {
- "weight": "language",
- "value": 0.1,
- "max_overqualification": 2,
- "max_underqualification": 3
}, - {
- "weight": "custom_property",
- "value": 0.04,
- "property_name": "yearly_salary",
- "operator": "gte",
- "property_value": 45000
}, - {
- "weight": "custom_property_is_in",
- "value": 0.06,
- "from_entity_property": "desired_work_regime",
- "to_entity_property": "offered_work_regimes"
}, - {
- "weight": "custom_property_is_in_list",
- "value": 0.05,
- "property_name": "region",
- "possible_values": [
- "Flanders",
- "Wallonia"
]
}, - {
- "weight": "custom_property_contains",
- "value": 0.07,
- "from_entity_property": "sectors",
- "to_entity_property": "desired_sector"
}, - {
- "weight": "custom_property_contains_element",
- "value": 0.04,
- "property_name": "industries",
- "property_value": [
- "Electronics",
- "Aviation"
]
}, - {
- "weight": "custom_property_list_overlap",
- "value": 0.04,
- "from_entity_property": "desired_industries",
- "to_entity_property": "industries"
}
]
}
{- "results": [
- {
- "employee_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "vacancy_id": "b003505-eb84-42dc-a79f-5e7b1fe897b7",
- "score": 0.87657
}
]
}
read
) limit | integer [ 1 .. 100 ] Default: 10 The maximal number of results returned. Example: limit=10 |
score_min_threshold | number <float> [ 0 .. 1 ] Default: 0.5 The minimum score of the results. Due to approximations for fast result-delivery, there might be records with a score slightly lower than the minimum. Example: score_min_threshold=0.7 |
response_format | string Default: "simple" The response format determines which additional data is returned along with the matches. Currently only supports the 'simple' format. Example: response_format=simple |
include | Array of strings Additional entity attributes that will be included in the response body. This query parameter can be added multiple times to include more attributes. Example: include=custom_properties&include=entity |
{- "results": [
- {
- "score": 0.8,
- "external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7"
}
]
}
Courses that are connected through a SkillEvent with the Employee, indicating that the Employee has already taken the Course, are excluded from the recommendations. Additionally, Courses of which the active
attribute is set to false
are filtered out as well.
read
) limit | integer [ 1 .. 100 ] Default: 10 The maximal number of results returned. Example: limit=10 |
score_min_threshold | number <float> [ 0 .. 1 ] Default: 0.5 The minimum score of the results. Due to approximations for fast result-delivery, there might be records with a score slightly lower than the minimum. Example: score_min_threshold=0.7 |
response_format | string Default: "simple" If set to Example: response_format=explained |
use_adjacent_skills | boolean Default: true If set to Example: use_adjacent_skills=false |
include | Array of strings Additional entity attributes that will be included in the response body. This query parameter can be added multiple times to include more attributes. When include Example: include=custom_properties&include=entity |
required | Array of custom_property (object) or exclude_match_feedback (object) or custom_property_is_in_list (object) |
required | Array of skills_match (object) |
{- "filters": [
- {
- "filter": "custom_property",
- "property_name": "yearly_salary",
- "operator": "gte",
- "property_value": true
}
], - "weights": [
- {
- "weight": "skills_match",
- "value": 1
}
]
}
{- "results": [
- {
- "score": 0.8,
- "external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7"
}
]
}
read
) employee_external_id required | string <uuid> (UUID) [ 1 .. 100 ] characters [a-zA-Z0-9_-]+ Unique external ID linked to this Employee, consisting of alphanumeric characters, hyphens and underscores. Example: a3903505-eb84-42dc-a79f-5e7b1fe897b7 |
vacancy_external_id required | string <uuid> (UUID) [ 1 .. 100 ] characters [a-zA-Z0-9_-]+ Unique external ID linked to this Vacancy, consisting of alphanumeric characters, hyphens and underscores. Example: b003505-eb84-42dc-a79f-5e7b1fe897b7 |
[- {
- "external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "course_title": "Computer Science 101",
- "course_description": "This Professional Certificate will start you at the absolute beginning teaching you about the fundamental binary language of modern computers. You’ll learn about the Turing Machine—a model for the digital computer. You’ll also learn the basics of analytic logic and how learning and applying basic principles of logic can help you both work with and work on technical solutions. You’ll work in a managed environment and learn to code your very first program in Python – a powerful but simple programming language used by app developers and data scientists.",
- "source": "Udemy",
- "active": true,
- "relevant_skills": [
- "Python",
- "Django"
]
}
]
Courses that are connected through a SkillEvent with the Employee, indicating that the Employee has already taken the Course, are excluded from the recommendations. Additionally, Courses of which the active
attribute is set to false
are filtered out as well.
read
) employee_external_id required | string <uuid> (UUID) [ 1 .. 100 ] characters [a-zA-Z0-9_-]+ Unique external ID linked to this Employee, consisting of alphanumeric characters, hyphens and underscores. Example: a3903505-eb84-42dc-a79f-5e7b1fe897b7 |
vacancy_external_id required | string <uuid> (UUID) [ 1 .. 100 ] characters [a-zA-Z0-9_-]+ Unique external ID linked to this Vacancy, consisting of alphanumeric characters, hyphens and underscores. Example: b003505-eb84-42dc-a79f-5e7b1fe897b7 |
limit | integer [ 1 .. 100 ] Default: 10 The maximal number of results returned. Example: limit=10 |
response_format | string Default: "simple" If set to Example: response_format=explained |
use_adjacent_skills | boolean Default: true If set to Example: use_adjacent_skills=false |
include | Array of strings Additional entity attributes that will be included in the response body. This query parameter can be added multiple times to include more attributes. When include Example: include=custom_properties&include=entity |
required | Array of custom_property (object) or exclude_match_feedback (object) or custom_property_is_in_list (object) |
required | Array of skills_match (object) |
{- "filters": [
- {
- "filter": "custom_property",
- "property_name": "yearly_salary",
- "operator": "gte",
- "property_value": true
}
], - "weights": [
- {
- "weight": "skills_match",
- "value": 1
}
]
}
{- "results": [
- {
- "addressable_score": 0.8,
- "external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7"
}
]
}
Courses that are connected through a SkillEvent with the Employee, indicating that the Employee has already taken the Course, are excluded from the recommendations. Additionally, Courses of which the active
attribute is set to false
are filtered out as well.
read
) employee_external_id required | string <uuid> (UUID) [ 1 .. 100 ] characters [a-zA-Z0-9_-]+ Unique external ID linked to this Employee, consisting of alphanumeric characters, hyphens and underscores. Example: a3903505-eb84-42dc-a79f-5e7b1fe897b7 |
job_external_id required | string <uuid> (UUID) [ 1 .. 100 ] characters [a-zA-Z0-9_-]+ Unique external ID linked to this Job, consisting of alphanumeric characters, hyphens and underscores. Example: b003505-eb84-42dc-a79f-5e7b1fe897b7 |
limit | integer [ 1 .. 100 ] Default: 10 The maximal number of results returned. Example: limit=10 |
response_format | string Default: "simple" If set to Example: response_format=explained |
use_adjacent_skills | boolean Default: true If set to Example: use_adjacent_skills=false |
include | Array of strings Additional entity attributes that will be included in the response body. This query parameter can be added multiple times to include more attributes. When include Example: include=custom_properties&include=entity |
required | Array of last_updated (object) or custom_property_equal (object) or custom_property (object) or custom_property_is_in (object) or custom_property_is_in_list (object) or custom_property_contains (object) or custom_property_contains_element (object) or custom_property_list_overlap (object) or external_id_is_in_list (object) |
required | Array of skills_match (object) List of weights to be applied during matching. Currently, Skills match weight is the only supported weight for Job matching and is set to 1.0 by default. |
{- "filters": [
- {
- "filter": "last_updated",
- "value": "2022-01-01",
- "operator": "lt"
}, - {
- "filter": "custom_property_equal",
- "from_entity_property": "desired_wage",
- "to_entity_property": "wage"
}, - {
- "filter": "custom_property",
- "property_name": "direct_manager",
- "property_value": "John Doe"
}, - {
- "filter": "custom_property_is_in",
- "from_entity_property": "required_drivers_license",
- "to_entity_property": "drivers_licenses"
}, - {
- "filter": "custom_property_is_in_list",
- "property_name": "drivers_license",
- "possible_values": [
- "C",
- "CE"
]
}, - {
- "filter": "custom_property_contains",
- "from_entity_property": "shift_regime_codes",
- "to_entity_property": "desired_regime"
}, - {
- "filter": "custom_property_list_overlap",
- "from_entity_property": "desired_industries",
- "to_entity_property": "industries"
}, - {
- "filter": "custom_property_contains_element",
- "property_name": "industries",
- "property_value": "electronics"
}, - {
- "filter": "external_id_is_in_list",
- "external_ids": [
- "c350500-eb84-42dc-a79f-5e7b1fe897b7",
- "b450500-eb84-42dc-a79f-5e7b1fe897c8"
]
}
], - "weights": [
- {
- "weight": "skills_match",
- "value": 1
}
]
}
{- "results": [
- {
- "addressable_score": 0.8,
- "external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7"
}
]
}
You can use filters in the request body to restrict the match results based on distance, language & Custom Properties. If the max_geo_distance
filter is not provided, a default value of 50km is used.
read
) score_min_threshold | number <float> [ 0 .. 1 ] Default: 0.5 The minimum score of the results. Due to approximations for fast result-delivery, there might be records with a score slightly lower than the minimum. Example: score_min_threshold=0.7 |
limit | integer [ 1 .. 100 ] Default: 10 The maximal number of results returned. Example: limit=10 |
offset | integer >= 0 Default: 0 The rank offset for returned matches, return matches starting from rank offset up to rank offset+limit. |
required | Array of max_geo_distance (object) or language (object) or last_updated (object) or custom_property_equal (object) or custom_property (object) or custom_property_is_in (object) or custom_property_is_in_list (object) or custom_property_contains (object) or custom_property_contains_element (object) or custom_property_list_overlap (object) or external_id_is_in_list (object) |
required | Array of skills_match (object) or desired_functions (object) or geo_distance (object) or custom_property (object) or custom_property_is_in (object) or custom_property_is_in_list (object) or custom_property_contains (object) or custom_property_contains_element (object) or custom_property_list_overlap (object) |
{- "filters": [
- {
- "filter": "max_geo_distance",
- "max_geo_distance": 50
}, - {
- "filter": "language",
- "max_overqualification": 2,
- "max_underqualification": 1
}, - {
- "filter": "last_updated",
- "value": "2022-01-01",
- "operator": "lt"
}, - {
- "filter": "custom_property_equal",
- "from_entity_property": "desired_wage",
- "to_entity_property": "wage"
}, - {
- "filter": "custom_property",
- "property_name": "direct_manager",
- "property_value": "John Doe"
}, - {
- "filter": "custom_property_is_in",
- "from_entity_property": "required_drivers_license",
- "to_entity_property": "drivers_licenses"
}, - {
- "filter": "custom_property_is_in_list",
- "property_name": "drivers_license",
- "possible_values": [
- "C",
- "CE"
]
}, - {
- "filter": "custom_property_contains",
- "from_entity_property": "shift_regime_codes",
- "to_entity_property": "desired_regime"
}, - {
- "filter": "custom_property_list_overlap",
- "from_entity_property": "desired_industries",
- "to_entity_property": "industries"
}, - {
- "filter": "custom_property_contains_element",
- "property_name": "industries",
- "property_value": "electronics"
}, - {
- "filter": "external_id_is_in_list",
- "external_ids": [
- "c350500-eb84-42dc-a79f-5e7b1fe897b7",
- "b450500-eb84-42dc-a79f-5e7b1fe897c8"
]
}
], - "weights": [
- {
- "weight": "skills_match",
- "value": 1
}, - {
- "weight": "desired_functions",
- "value": 0.03
}, - {
- "weight": "geo_distance",
- "value": 0.1,
- "full_score_distance": 5,
- "zero_score_distance": 50
}, - {
- "weight": "custom_property",
- "value": 0.04,
- "property_name": "yearly_salary",
- "operator": "gte",
- "property_value": 45000
}, - {
- "weight": "custom_property_is_in",
- "value": 0.06,
- "from_entity_property": "desired_work_regime",
- "to_entity_property": "offered_work_regimes"
}, - {
- "weight": "custom_property_is_in_list",
- "value": 0.05,
- "property_name": "region",
- "possible_values": [
- "Flanders",
- "Wallonia"
]
}, - {
- "weight": "custom_property_contains",
- "value": 0.07,
- "from_entity_property": "sectors",
- "to_entity_property": "desired_sector"
}, - {
- "weight": "custom_property_contains_element",
- "value": 0.04,
- "property_name": "industries",
- "property_value": [
- "Electronics",
- "Aviation"
]
}, - {
- "weight": "custom_property_list_overlap",
- "value": 0.04,
- "from_entity_property": "desired_industries",
- "to_entity_property": "industries"
}
]
}
{- "results": [
- {
- "employee_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "company_id": "c350500-eb84-42dc-a79f-5e7b1fe897b7",
- "score": 0.87657,
- "matching_vacancies": [
- {
- "employee_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "vacancy_id": "a4003805-eb84-42dc-a79f-5e7b1fe897b7",
- "score": 0.9,
- "job_title": "Business Analyst"
}, - {
- "employee_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "vacancy_id": "b4003805-eb84-42dc-a79f-5e7b1fe897b7",
- "score": 0.7,
- "job_title": "Data Scientist"
}
]
}
]
}
You can use filters in the request body to restrict the match results based on distance, language & Custom Properties. If the max_geo_distance
filter is not provided, a default value of 50km is used.
read
) score_min_threshold | number <float> [ 0 .. 1 ] Default: 0.5 The minimum score of the results. Due to approximations for fast result-delivery, there might be records with a score slightly lower than the minimum. Example: score_min_threshold=0.7 |
limit | integer [ 1 .. 100 ] Default: 10 The maximal number of results returned. Example: limit=10 |
offset | integer >= 0 Default: 0 The rank offset for returned matches, return matches starting from rank offset up to rank offset+limit. |
required | Array of max_geo_distance (object) or language (object) or last_updated (object) or custom_property_equal (object) or custom_property (object) or custom_property_is_in (object) or custom_property_is_in_list (object) or custom_property_contains (object) or custom_property_contains_element (object) or custom_property_list_overlap (object) or external_id_is_in_list (object) |
required | Array of skills_match (object) or desired_functions (object) or geo_distance (object) or language (object) or custom_property (object) or custom_property_is_in (object) or custom_property_is_in_list (object) or custom_property_contains (object) or custom_property_contains_element (object) or custom_property_list_overlap (object) |
{- "filters": [
- {
- "filter": "max_geo_distance",
- "max_geo_distance": 50
}, - {
- "filter": "language",
- "max_overqualification": 2,
- "max_underqualification": 1
}, - {
- "filter": "last_updated",
- "value": "2022-01-01",
- "operator": "lt"
}, - {
- "filter": "custom_property_equal",
- "from_entity_property": "desired_wage",
- "to_entity_property": "wage"
}, - {
- "filter": "custom_property",
- "property_name": "direct_manager",
- "property_value": "John Doe"
}, - {
- "filter": "custom_property_is_in",
- "from_entity_property": "required_drivers_license",
- "to_entity_property": "drivers_licenses"
}, - {
- "filter": "custom_property_is_in_list",
- "property_name": "drivers_license",
- "possible_values": [
- "C",
- "CE"
]
}, - {
- "filter": "custom_property_contains",
- "from_entity_property": "shift_regime_codes",
- "to_entity_property": "desired_regime"
}, - {
- "filter": "custom_property_list_overlap",
- "from_entity_property": "desired_industries",
- "to_entity_property": "industries"
}, - {
- "filter": "custom_property_contains_element",
- "property_name": "industries",
- "property_value": "electronics"
}, - {
- "filter": "external_id_is_in_list",
- "external_ids": [
- "c350500-eb84-42dc-a79f-5e7b1fe897b7",
- "b450500-eb84-42dc-a79f-5e7b1fe897c8"
]
}
], - "weights": [
- {
- "weight": "skills_match",
- "value": 1
}, - {
- "weight": "desired_functions",
- "value": 0.03
}, - {
- "weight": "geo_distance",
- "value": 0.1,
- "full_score_distance": 5,
- "zero_score_distance": 50
}, - {
- "weight": "language",
- "value": 0.1,
- "max_overqualification": 2,
- "max_underqualification": 3
}, - {
- "weight": "custom_property",
- "value": 0.04,
- "property_name": "yearly_salary",
- "operator": "gte",
- "property_value": 45000
}, - {
- "weight": "custom_property_is_in",
- "value": 0.06,
- "from_entity_property": "desired_work_regime",
- "to_entity_property": "offered_work_regimes"
}, - {
- "weight": "custom_property_is_in_list",
- "value": 0.05,
- "property_name": "region",
- "possible_values": [
- "Flanders",
- "Wallonia"
]
}, - {
- "weight": "custom_property_contains",
- "value": 0.07,
- "from_entity_property": "sectors",
- "to_entity_property": "desired_sector"
}, - {
- "weight": "custom_property_contains_element",
- "value": 0.04,
- "property_name": "industries",
- "property_value": [
- "Electronics",
- "Aviation"
]
}, - {
- "weight": "custom_property_list_overlap",
- "value": 0.04,
- "from_entity_property": "desired_industries",
- "to_entity_property": "industries"
}
]
}
{- "results": [
- {
- "employee_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "company_id": "c350500-eb84-42dc-a79f-5e7b1fe897b7",
- "score": 0.87657,
- "matching_vacancies": [
- {
- "employee_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "vacancy_id": "a4003805-eb84-42dc-a79f-5e7b1fe897b7",
- "score": 0.9,
- "job_title": "Business Analyst"
}, - {
- "employee_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "vacancy_id": "b4003805-eb84-42dc-a79f-5e7b1fe897b7",
- "score": 0.7,
- "job_title": "Data Scientist"
}
]
}
]
}
read
) {- "job_id": "b003505-eb84-42dc-a79f-5e7b1fe897b7",
- "employee_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "score": 0.87657
}
read
) employee_external_id required | string <uuid> (UUID) [ 1 .. 100 ] characters [a-zA-Z0-9_-]+ Unique external ID linked to this Employee, consisting of alphanumeric characters, hyphens and underscores. Example: a3903505-eb84-42dc-a79f-5e7b1fe897b7 |
job_external_id required | string <uuid> (UUID) [ 1 .. 100 ] characters [a-zA-Z0-9_-]+ Unique external ID linked to this Job, consisting of alphanumeric characters, hyphens and underscores. Example: b003505-eb84-42dc-a79f-5e7b1fe897b7 |
{- "job_id": "b003505-eb84-42dc-a79f-5e7b1fe897b7",
- "employee_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "score": 0.87657
}
read
) score_min_threshold | number <float> [ 0 .. 1 ] Default: 0.5 The minimum score of the results. Due to approximations for fast result-delivery, there might be records with a score slightly lower than the minimum. Example: score_min_threshold=0.7 |
limit | integer [ 1 .. 100 ] Default: 10 The maximal number of results returned. Example: limit=10 |
offset | integer >= 0 Default: 0 The rank offset for returned matches, return matches starting from rank offset up to rank offset+limit. |
response_format | string Default: "simple" If set to Example: response_format=explained |
include | Array of strings Additional entity attributes that will be included in the response body. This query parameter can be added multiple times to include more attributes. When include Example: include=custom_properties&include=entity |
required | Array of last_updated (object) or custom_property_equal (object) or custom_property (object) or custom_property_is_in (object) or custom_property_is_in_list (object) or custom_property_contains (object) or custom_property_contains_element (object) or custom_property_list_overlap (object) or external_id_is_in_list (object) |
required | Array of skills_match (object) List of weights to be applied during matching. Currently, Skills match weight is the only supported weight for Job matching and is set to 1.0 by default. |
{- "filters": [
- {
- "filter": "last_updated",
- "value": "2022-01-01",
- "operator": "lt"
}, - {
- "filter": "custom_property_equal",
- "from_entity_property": "desired_wage",
- "to_entity_property": "wage"
}, - {
- "filter": "custom_property",
- "property_name": "direct_manager",
- "property_value": "John Doe"
}, - {
- "filter": "custom_property_is_in",
- "from_entity_property": "required_drivers_license",
- "to_entity_property": "drivers_licenses"
}, - {
- "filter": "custom_property_is_in_list",
- "property_name": "drivers_license",
- "possible_values": [
- "C",
- "CE"
]
}, - {
- "filter": "custom_property_contains",
- "from_entity_property": "shift_regime_codes",
- "to_entity_property": "desired_regime"
}, - {
- "filter": "custom_property_list_overlap",
- "from_entity_property": "desired_industries",
- "to_entity_property": "industries"
}, - {
- "filter": "custom_property_contains_element",
- "property_name": "industries",
- "property_value": "electronics"
}, - {
- "filter": "external_id_is_in_list",
- "external_ids": [
- "c350500-eb84-42dc-a79f-5e7b1fe897b7",
- "b450500-eb84-42dc-a79f-5e7b1fe897c8"
]
}
], - "weights": [
- {
- "weight": "skills_match",
- "value": 1
}
]
}
{- "results": [
- {
- "job_id": "b003505-eb84-42dc-a79f-5e7b1fe897b7",
- "employee_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "score": 0.87657
}
]
}
read
) score_min_threshold | number <float> [ 0 .. 1 ] Default: 0.5 The minimum score of the results. Due to approximations for fast result-delivery, there might be records with a score slightly lower than the minimum. Example: score_min_threshold=0.7 |
limit | integer [ 1 .. 100 ] Default: 10 The maximal number of results returned. Example: limit=10 |
offset | integer >= 0 Default: 0 The rank offset for returned matches, return matches starting from rank offset up to rank offset+limit. |
response_format | string Default: "simple" If set to Example: response_format=explained |
include | Array of strings Additional entity attributes that will be included in the response body. This query parameter can be added multiple times to include more attributes. When include Example: include=custom_properties&include=entity |
required | Array of last_updated (object) or custom_property_equal (object) or custom_property (object) or custom_property_is_in (object) or custom_property_is_in_list (object) or custom_property_contains (object) or custom_property_contains_element (object) or custom_property_list_overlap (object) or external_id_is_in_list (object) |
required | Array of skills_match (object) List of weights to be applied during matching. Currently, Skills match weight is the only supported weight for Job matching and is set to 1.0 by default. |
{- "filters": [
- {
- "filter": "last_updated",
- "value": "2022-01-01",
- "operator": "lt"
}, - {
- "filter": "custom_property_equal",
- "from_entity_property": "desired_wage",
- "to_entity_property": "wage"
}, - {
- "filter": "custom_property",
- "property_name": "direct_manager",
- "property_value": "John Doe"
}, - {
- "filter": "custom_property_is_in",
- "from_entity_property": "required_drivers_license",
- "to_entity_property": "drivers_licenses"
}, - {
- "filter": "custom_property_is_in_list",
- "property_name": "drivers_license",
- "possible_values": [
- "C",
- "CE"
]
}, - {
- "filter": "custom_property_contains",
- "from_entity_property": "shift_regime_codes",
- "to_entity_property": "desired_regime"
}, - {
- "filter": "custom_property_list_overlap",
- "from_entity_property": "desired_industries",
- "to_entity_property": "industries"
}, - {
- "filter": "custom_property_contains_element",
- "property_name": "industries",
- "property_value": "electronics"
}, - {
- "filter": "external_id_is_in_list",
- "external_ids": [
- "c350500-eb84-42dc-a79f-5e7b1fe897b7",
- "b450500-eb84-42dc-a79f-5e7b1fe897c8"
]
}
], - "weights": [
- {
- "weight": "skills_match",
- "value": 1
}
]
}
{- "results": [
- {
- "job_id": "b003505-eb84-42dc-a79f-5e7b1fe897b7",
- "employee_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "score": 0.87657
}
]
}
Identify the most relevant jobs from which potential candidates can be hired to fill the given job's skill requirements. Relevant for succession planning.
read
) score_min_threshold | number <float> [ 0 .. 1 ] Default: 0.5 The minimum score of the results. Due to approximations for fast result-delivery, there might be records with a score slightly lower than the minimum. Example: score_min_threshold=0.7 |
limit | integer [ 1 .. 100 ] Default: 10 The maximal number of results returned. Example: limit=10 |
offset | integer >= 0 Default: 0 The rank offset for returned matches, return matches starting from rank offset up to rank offset+limit. |
response_format | string Default: "simple" If set to Example: response_format=explained |
include | Array of strings Additional entity attributes that will be included in the response body. This query parameter can be added multiple times to include more attributes. When include Example: include=custom_properties&include=entity |
required | Array of last_updated (object) or custom_property_equal (object) or custom_property (object) or custom_property_is_in (object) or custom_property_is_in_list (object) or custom_property_contains (object) or custom_property_contains_element (object) or custom_property_list_overlap (object) or external_id_is_in_list (object) |
required | Array of skills_match (object) List of weights to be applied during matching. Currently, Skills match weight is the only supported weight for Job matching and is set to 1.0 by default. |
{- "filters": [
- {
- "filter": "last_updated",
- "value": "2022-01-01",
- "operator": "lt"
}, - {
- "filter": "custom_property_equal",
- "from_entity_property": "desired_wage",
- "to_entity_property": "wage"
}, - {
- "filter": "custom_property",
- "property_name": "direct_manager",
- "property_value": "John Doe"
}, - {
- "filter": "custom_property_is_in",
- "from_entity_property": "required_drivers_license",
- "to_entity_property": "drivers_licenses"
}, - {
- "filter": "custom_property_is_in_list",
- "property_name": "drivers_license",
- "possible_values": [
- "C",
- "CE"
]
}, - {
- "filter": "custom_property_contains",
- "from_entity_property": "shift_regime_codes",
- "to_entity_property": "desired_regime"
}, - {
- "filter": "custom_property_list_overlap",
- "from_entity_property": "desired_industries",
- "to_entity_property": "industries"
}, - {
- "filter": "custom_property_contains_element",
- "property_name": "industries",
- "property_value": "electronics"
}, - {
- "filter": "external_id_is_in_list",
- "external_ids": [
- "c350500-eb84-42dc-a79f-5e7b1fe897b7",
- "b450500-eb84-42dc-a79f-5e7b1fe897c8"
]
}
], - "weights": [
- {
- "weight": "skills_match",
- "value": 1
}
]
}
{- "results": [
- {
- "job_id": "b003505-eb84-42dc-a79f-5e7b1fe897b7",
- "source_job_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "score": 0.87657
}
]
}
Identify the most relevant jobs to which employees in the given job can be moved based on job skill requirements. Relevant for career development and internal mobility opportunities.
read
) score_min_threshold | number <float> [ 0 .. 1 ] Default: 0.5 The minimum score of the results. Due to approximations for fast result-delivery, there might be records with a score slightly lower than the minimum. Example: score_min_threshold=0.7 |
limit | integer [ 1 .. 100 ] Default: 10 The maximal number of results returned. Example: limit=10 |
offset | integer >= 0 Default: 0 The rank offset for returned matches, return matches starting from rank offset up to rank offset+limit. |
response_format | string Default: "simple" If set to Example: response_format=explained |
include | Array of strings Additional entity attributes that will be included in the response body. This query parameter can be added multiple times to include more attributes. When include Example: include=custom_properties&include=entity |
required | Array of last_updated (object) or custom_property_equal (object) or custom_property (object) or custom_property_is_in (object) or custom_property_is_in_list (object) or custom_property_contains (object) or custom_property_contains_element (object) or custom_property_list_overlap (object) or external_id_is_in_list (object) |
required | Array of skills_match (object) List of weights to be applied during matching. Currently, Skills match weight is the only supported weight for Job matching and is set to 1.0 by default. |
{- "filters": [
- {
- "filter": "last_updated",
- "value": "2022-01-01",
- "operator": "lt"
}, - {
- "filter": "custom_property_equal",
- "from_entity_property": "desired_wage",
- "to_entity_property": "wage"
}, - {
- "filter": "custom_property",
- "property_name": "direct_manager",
- "property_value": "John Doe"
}, - {
- "filter": "custom_property_is_in",
- "from_entity_property": "required_drivers_license",
- "to_entity_property": "drivers_licenses"
}, - {
- "filter": "custom_property_is_in_list",
- "property_name": "drivers_license",
- "possible_values": [
- "C",
- "CE"
]
}, - {
- "filter": "custom_property_contains",
- "from_entity_property": "shift_regime_codes",
- "to_entity_property": "desired_regime"
}, - {
- "filter": "custom_property_list_overlap",
- "from_entity_property": "desired_industries",
- "to_entity_property": "industries"
}, - {
- "filter": "custom_property_contains_element",
- "property_name": "industries",
- "property_value": "electronics"
}, - {
- "filter": "external_id_is_in_list",
- "external_ids": [
- "c350500-eb84-42dc-a79f-5e7b1fe897b7",
- "b450500-eb84-42dc-a79f-5e7b1fe897c8"
]
}
], - "weights": [
- {
- "weight": "skills_match",
- "value": 1
}
]
}
{- "results": [
- {
- "job_id": "b003505-eb84-42dc-a79f-5e7b1fe897b7",
- "target_job_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "score": 0.87657
}
]
}
read
) employee_external_id required | string <uuid> (UUID) [ 1 .. 100 ] characters [a-zA-Z0-9_-]+ Unique external ID linked to this Employee, consisting of alphanumeric characters, hyphens and underscores. Example: a3903505-eb84-42dc-a79f-5e7b1fe897b7 |
job_family_external_id required | string <uuid> (UUID) [ 1 .. 100 ] characters [a-zA-Z0-9_-]+ Unique external ID linked to this Job, consisting of alphanumeric characters, hyphens and underscores. Example: b003505-eb84-42dc-a79f-5e7b1fe897b7 |
{- "job_family_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "employee_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "score": 0.87657
}
read
) limit | integer [ 1 .. 100 ] Default: 10 The maximal number of results returned. Example: limit=10 |
offset | integer >= 0 Default: 0 The rank offset for returned matches, return matches starting from rank offset up to rank offset+limit. |
response_format | string Default: "simple" If set to Example: response_format=explained |
include | Array of strings Additional entity attributes that will be included in the response body. This query parameter can be added multiple times to include more attributes. When include Example: include=entity&include=custom_properties |
required | Array of last_updated (object) or custom_property_equal (object) or custom_property (object) or custom_property_is_in (object) or custom_property_is_in_list (object) or custom_property_contains (object) or custom_property_contains_element (object) or custom_property_list_overlap (object) or external_id_is_in_list (object) |
required | Array of skills_match (object) List of weights to be applied during matching. Currently, Skills match weight is the only supported weight for Job Family matching and is set to 1.0 by default. |
{- "filters": [
- {
- "filter": "last_updated",
- "value": "2022-01-01",
- "operator": "lt"
}, - {
- "filter": "custom_property_equal",
- "from_entity_property": "desired_wage",
- "to_entity_property": "wage"
}, - {
- "filter": "custom_property",
- "property_name": "direct_manager",
- "property_value": "John Doe"
}, - {
- "filter": "custom_property_is_in",
- "from_entity_property": "required_drivers_license",
- "to_entity_property": "drivers_licenses"
}, - {
- "filter": "custom_property_is_in_list",
- "property_name": "drivers_license",
- "possible_values": [
- "C",
- "CE"
]
}, - {
- "filter": "custom_property_contains",
- "from_entity_property": "shift_regime_codes",
- "to_entity_property": "desired_regime"
}, - {
- "filter": "custom_property_list_overlap",
- "from_entity_property": "desired_industries",
- "to_entity_property": "industries"
}, - {
- "filter": "custom_property_contains_element",
- "property_name": "industries",
- "property_value": "electronics"
}, - {
- "filter": "external_id_is_in_list",
- "external_ids": [
- "c350500-eb84-42dc-a79f-5e7b1fe897b7",
- "b450500-eb84-42dc-a79f-5e7b1fe897c8"
]
}
], - "weights": [
- {
- "weight": "skills_match",
- "value": 1
}
]
}
{- "results": [
- {
- "job_family_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "employee_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "score": 0.87657
}
]
}
read
) score_min_threshold | number <float> [ 0 .. 1 ] Default: 0.5 The minimum score of the results. Due to approximations for fast result-delivery, there might be records with a score slightly lower than the minimum. Example: score_min_threshold=0.7 |
limit | integer [ 1 .. 100 ] Default: 10 The maximal number of results returned. Example: limit=10 |
offset | integer >= 0 Default: 0 The rank offset for returned matches, return matches starting from rank offset up to rank offset+limit. |
response_format | string Default: "simple" If set to Example: response_format=explained |
include | Array of strings Additional entity attributes that will be included in the response body. This query parameter can be added multiple times to include more attributes. When include Example: include=custom_properties&include=entity |
required | Array of last_updated (object) or custom_property_equal (object) or custom_property (object) or custom_property_is_in (object) or custom_property_is_in_list (object) or custom_property_contains (object) or custom_property_contains_element (object) or custom_property_list_overlap (object) or external_id_is_in_list (object) |
required | Array of skills_match (object) List of weights to be applied during matching. Currently, Skills match weight is the only supported weight for Job Family matching and is set to 1.0 by default. |
{- "filters": [
- {
- "filter": "last_updated",
- "value": "2022-01-01",
- "operator": "lt"
}, - {
- "filter": "custom_property_equal",
- "from_entity_property": "desired_wage",
- "to_entity_property": "wage"
}, - {
- "filter": "custom_property",
- "property_name": "direct_manager",
- "property_value": "John Doe"
}, - {
- "filter": "custom_property_is_in",
- "from_entity_property": "required_drivers_license",
- "to_entity_property": "drivers_licenses"
}, - {
- "filter": "custom_property_is_in_list",
- "property_name": "drivers_license",
- "possible_values": [
- "C",
- "CE"
]
}, - {
- "filter": "custom_property_contains",
- "from_entity_property": "shift_regime_codes",
- "to_entity_property": "desired_regime"
}, - {
- "filter": "custom_property_list_overlap",
- "from_entity_property": "desired_industries",
- "to_entity_property": "industries"
}, - {
- "filter": "custom_property_contains_element",
- "property_name": "industries",
- "property_value": "electronics"
}, - {
- "filter": "external_id_is_in_list",
- "external_ids": [
- "c350500-eb84-42dc-a79f-5e7b1fe897b7",
- "b450500-eb84-42dc-a79f-5e7b1fe897c8"
]
}
], - "weights": [
- {
- "weight": "skills_match",
- "value": 1
}
]
}
{- "results": [
- {
- "job_family_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "employee_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "score": 0.87657
}
]
}
write
) employee_external_id required | string <uuid> (UUID) [ 1 .. 100 ] characters [a-zA-Z0-9_-]+ Unique external ID linked to this Employee, consisting of alphanumeric characters, hyphens and underscores. Example: a3903505-eb84-42dc-a79f-5e7b1fe897b7 |
vacancy_external_id required | string <uuid> (UUID) [ 1 .. 100 ] characters [a-zA-Z0-9_-]+ Unique external ID linked to this Vacancy, consisting of alphanumeric characters, hyphens and underscores. Example: b003505-eb84-42dc-a79f-5e7b1fe897b7 |
{- "feedback": "thumbs_up"
}
[- {
- "title": "401 Unauthorized",
- "description": "OAuth access token is missing, invalid or expired."
}
]
write
) employee_external_id required | string <uuid> (UUID) [ 1 .. 100 ] characters [a-zA-Z0-9_-]+ Unique external ID linked to this Employee, consisting of alphanumeric characters, hyphens and underscores. Example: a3903505-eb84-42dc-a79f-5e7b1fe897b7 |
vacancy_external_id required | string <uuid> (UUID) [ 1 .. 100 ] characters [a-zA-Z0-9_-]+ Unique external ID linked to this Vacancy, consisting of alphanumeric characters, hyphens and underscores. Example: b003505-eb84-42dc-a79f-5e7b1fe897b7 |
[- {
- "title": "401 Unauthorized",
- "description": "OAuth access token is missing, invalid or expired."
}
]
write
) employee_external_id required | string <uuid> (UUID) [ 1 .. 100 ] characters [a-zA-Z0-9_-]+ Unique external ID linked to this Employee, consisting of alphanumeric characters, hyphens and underscores. Example: a3903505-eb84-42dc-a79f-5e7b1fe897b7 |
course_external_id required | string <uuid> (UUID) [ 1 .. 100 ] characters [a-zA-Z0-9_-]+ Unique external ID linked to this Course, consisting of alphanumeric characters, hyphens and underscores. Example: b003505-eb84-42dc-a79f-5e7b1fe897b7 |
{- "feedback": "thumbs_up"
}
[- {
- "title": "401 Unauthorized",
- "description": "OAuth access token is missing, invalid or expired."
}
]
write
) employee_external_id required | string <uuid> (UUID) [ 1 .. 100 ] characters [a-zA-Z0-9_-]+ Unique external ID linked to this Employee, consisting of alphanumeric characters, hyphens and underscores. Example: a3903505-eb84-42dc-a79f-5e7b1fe897b7 |
course_external_id required | string <uuid> (UUID) [ 1 .. 100 ] characters [a-zA-Z0-9_-]+ Unique external ID linked to this Course, consisting of alphanumeric characters, hyphens and underscores. Example: b003505-eb84-42dc-a79f-5e7b1fe897b7 |
[- {
- "title": "401 Unauthorized",
- "description": "OAuth access token is missing, invalid or expired."
}
]
A crucial aspect of the configurability of matchmaking inside Skill Engine API is the use of filters. You can see filters as hard constraints that are applied prior to the calculation of any Skills based match. The filters available for a matching endpoint are described in the specification of this endpoint, but for further clarification, this section provides a more complete overview.
Filters can apply to one side of the matching equation, or can use both. In the
latter case, we distinguish between the source entity (the one you are
searching matches for) and the target entities (the ones you are searching
for matches within). For example, if you request matches on
/vacancies/{vid}/matching_employees
, then the source entity is the Vacancy
with external_id vid
, while the target entities consist of all Employees
together.
Single entity filters are always applied to the target entities, irrespective of the properties of the source entity.
The custom_property
filter is one of the base building blocks for filtering in
Skill Engine API. It filters the target entities using a value you provide
inside the filter itself, and supports equality as well as a range of greater
than / less than varieties. To know if you've applied the filter in the right
direction, it's good to phrase it as: "I want to receive all entities that have
a property_name
that is operator
to/than property_value
". For example, the
filter below results in all entities that have a wage
Custom Property above
3000
.
{
"filter": "custom_property",
"property_name": "wage",
"property_value": "3000",
"operator": "gt"
}
When looking for matching vacancies, you can use the prefix company__
before
the actual property name to apply the filter on the Custom Properties of the
external company linked to the Vacancy, rather than on the Custom Properties of
the Vacancies itself. For example if you only want the Vacancies linked to
external Companies that allow telework, the filter would like this:
{
"filter": "custom_property",
"property_name": "company__telework_policy",
"property_value": "allowed"
}
When looking for matching external companies, the prefix vacancy__
can be used
before the actual value of property_name
to apply the filtering to the Custom
Properties associated to the Vacancies linked to the external Companies instead
the external Companies itself.
The custom_property_contains_element
can be applied to list[text]
type
Custom Properties, and selects those entities for which the Custom Property
value contains the supplied property_value
. For example, the filter below
could be used in a situation where Employees indicate the industries they want
to work in -- in that case, the filter selects only the Employees that want to
work in electronics
.
{
"filter": "custom_property_contains_element",
"property_name": "industries",
"property_value": "electronics"
}
If you want to require the Custom Property value to contain multiple different
elements, you can simply append more filters, which will create the desired
effect. If you want to filter for entities containing one or more of multiple
elements, you can supply a list of options instead of just one value. To update
our example from above, the filter below selects Employees that want to work in
electronics
, chemicals
or both.
{
"filter": "custom_property_contains_element",
"property_name": "industries",
"property_value": ["electronics", "chemicals"]
}
When looking for matching vacancies, you can use the prefix company__
before
the actual property name to apply the filter on the Custom Properties of the
external company linked to the Vacancy, rather than on the Custom Properties of
the Vacancies itself. For the example above this would become
company__industries
.
When looking for matching external companies, the prefix vacancy__
can be used
before the actual value of property_name
to apply the filtering to the Custom
Properties associated to the Vacancies linked to the external Companies instead
the external Companies itself.
In similar fashion to the contains element filter, the
custom_property_is_in_list
filter selects entities for which (non-list) Custom
Property property_name
is contained in the passed list of possible_values
.
For example, if you're looking for an Employee that wants to work either full
time or part time, you might submit a filter similar to the one below:
{
"filter": "custom_property_is_in_list",
"property_name": "possible_work_regimes",
"possible_values": ["fulltime", "parttime"]
}
When looking for matching vacancies, you can use the prefix company__
before
the actual property name to apply the filter on the Custom Properties of the
external company linked to the Vacancy, rather than on the Custom Properties of
the Vacancies itself. For the example above this would become
company__possible_work_regimes
.
When looking for matching external companies, the prefix vacancy__
can be used
before the actual value of property_name
to apply the filtering to the Custom
Properties associated to the Vacancies linked to the external Companies instead
the external Companies itself.
This filter allows explicit filtering on external IDs of the target entities. Any entity not mentioned in the list is excluded.
{
"filter": "external_id_is_in_list",
"external_ids": ["external_id_1", "external_id_2", "external_id_3"]
}
Entity relation filters filter the target entities using some relation they may or may not have with the source entity.
This rather simple filter allows you to filter the target entities based on
their distance from the source entity. The distance is expressed in kilometers,
and calculated in a straight line between the two points. If the source entity
has no location
set, this filter will not have any effect. If the source
entity does have a location, then target entities without a location will not be
considered. If no geo distance filter is provided, Employee/Vacancy matching
defaults to a range of 50km.
{
"filter": "max_geo_distance",
"max_geo_distance": 50
}
The language
filter allows you to determine how language requirements are
handled when matching between Employees and Vacancies. As each language
indicated on either of these entity types also has a level, you can tune the
strictness of this filter by modifying max_underqualification
and
max_overqualification
. These respective values indicate how many levels below
or above the languages in the source entity those in the target entities are
allowed to be. Checking is only done for languages present in the source entity,
so in case of an empty languages
attribute on the source side, this filter
will not have any effect. If max_underqualification
is equal or greater than
the level of one or more languages for the source entity, target entities that
do not mention this language will also be considered valid combinations with it.
{
"filter": "language",
"max_overqualification": 2,
"max_underqualification": 1
}
The custom_property_equal
filter simply checks for equality between properties
on the source and target entities. By providing the name of the property to be
used on the source side as from_entity_property
and the one on the target side
as to_entity_property
, you can flexibly choose which Custom Properties to use.
{
"filter": "custom_property_equal",
"from_entity_property": "employment_type",
"to_entity_property": "employment_type"
}
When the filtering is applied to vacancies, either as from_entity
or as
to_entity
, you can use the prefix company__
before the actual value of
from_entity_property
or to_entity_property
to apply the filtering on the
Custom Properties of the external company linked to the Vacancy rather than the
Vacancy itself.
When the filtering is applied to external Companies as to_entity
, the prefix
vacancy__
can be used before the actual value of to_entity_property
to apply
the filtering to the Custom Properties associated to the Vacancies linked to the
external Companies instead the external Companies itself.
The custom_property_contains
filter is very similar to the
custom_property_equal
filter, but instead works with a list[text]
and text
property, checking whether one contains the other. Specifically, this filter
selects the target entities for which the value of to_entity_property
is a
part of the from_entity_property
(which must be a list type) of the source
entity. The example below reflects the scenario where an Employee might indicate
in which countries they want to work, so that only Vacancies in one of these
countries can be returned. If the Custom Property is not set for the source
entity, the filter has no effect. If the target entities lack the
to_entity_property
, they are ignored.
{
"filter": "custom_property_contains",
"from_entity_property": "allowed_countries",
"to_entity_property": "country"
}
When the filtering is applied to vacancies, either as from_entity
or as
to_entity
, you can use the prefix company__
before the actual value of
from_entity_property
or to_entity_property
to apply the filtering on the
Custom Properties of the external company linked to the Vacancy rather than the
Vacancy itself.
When the filtering is applied to external Companies as to_entity
, the prefix
vacancy__
can be used before the actual value of to_entity_property
to apply
the filtering to the Custom Properties associated to the Vacancies linked to the
external Companies instead the external Companies itself.
The custom_property_is_in
filter is the mirror image of the
custom_property_contains
filter. If you apply one type in fetching Vacancies
for a given Employee, then you can transform it into the other to have the
equivalent constraint while fetching Employees for a given Vacancy. The example
below reflects the transformed version of the example given for the contains
filter above.
{
"filter": "custom_property_is_in",
"from_entity_property": "country",
"to_entity_property": "allowed_countries"
}
When the filtering is applied to vacancies, either as from_entity
or as
to_entity
, you can use the prefix company__
before the actual value of
from_entity_property
or to_entity_property
to apply the filtering on the
Custom Properties of the external company linked to the Vacancy rather than the
Vacancy itself.
When the filtering is applied to external Companies as to_entity
, the prefix
vacancy__
can be used before the actual value of to_entity_property
to apply
the filtering to the Custom Properties associated to the Vacancies linked to the
external Companies instead of the external Companies themselves.
The custom_property_list_overlap
filter checks for overlap between two
list[text]
Custom Properties. Specifically, this filter selects the target
entities for which at least one of the values in to_entity_property
(which
must be a list type) is contained in from_entity_property
of the source
entity. The example below shows a scenario in which an Employee might indicate
in which industries they want to be involved, such that only Vacancies that are
linked to one of these industries will be returned. If the Custom Property is
not set for the source entity, the filter has no effect. Target entities that
lack the to_entity_property
property are excluded.
{
"filter": "custom_property_list_overlap",
"from_entity_property": "desired_industries",
"to_entity_property": "industries"
}
When the filtering is applied to Vacancies, either as from_entity
or as
to_entity
, you can use the prefix company__
before the actual value of
from_entity_property
or to_entity_property
to apply the filtering on the
Custom Properties of the External Company linked to the Vacancy rather than the
Vacancy itself.
When the filtering is applied to External Companies as to_entity
, the prefix
vacancy__
can be used before the actual value of to_entity_property
to apply
the filtering to the Custom Properties associated to the Vacancies linked to the
External Companies instead the External Companies themselves.
The last_updated
filter allows you to filter the target entities based on
last_updated
property. The filter supports a range of greater than / less than
varieties.
{
"filter": "last_updated",
"operator": "gt, gte, lt, lte",
"value": "datetime"
}
The last_updated_with_taxonomy_change
filter checks if a Taxonomy change took
place within the constraints of the filter. If that it the case, all target
entities are returned, as all can be affected by a Taxonomy change. If no
Taxonomy change took place, the filter operates like a last_updated
filter.
{
"filter": "last_updated_with_taxonomy_change",
"operator": "gt, gte, lt, lte",
"value": "datetime"
}
Export data from the API through pagination. Request the first page of an export
by not specifying the starting_after
field. Next pages can be requested by
setting the starting_after
field to the last external_id
from the previous
page. When there is no more data after the requested page, has_next
will be
false
.
Export all Skill Clusters of all Employees by paginating through the data.
The Employees are returned based on their creation time, with those created first being returned first.
read
) limit required | integer [ 1 .. 100 ] The number of Employees to show on a single page. |
starting_after | string <= 100 characters The |
Array of is_active (object) or last_updated (object) A set of filters to apply on the exported Employees. | |
include | Array of strings Expand the results with extra data. |
{- "limit": 10,
- "starting_after": "4cbdbabe-5644-4423-8157-520f8a2f429a",
- "filters": [
- {
- "filter": "is_active",
- "is_active": true
}
], - "include": [
- "sources",
- "current_skills",
- "related_skills",
- "rejected_skills"
]
}
{- "has_next": true,
- "records": [
- {
- "external_id": "5cbdbdbe-5f44-4423-8157-520f8a2f429a",
- "skill_clusters": [
- {
- "skill_cluster_id": "51e605a8-ca08-4ba6-a359-28bad07b38f6",
- "skill_cluster_name": "DevOps",
- "domain_name": "Computer Science",
- "proficiency_level": 3,
- "validation_state": "validated",
- "current_skills": [
- {
- "name": "Git",
- "skill_id": "ed8a3b44-59a0-44a6-a283-6c0e4b303be1",
- "validation_state": "suggested",
- "skill_sources": [
- "working_history",
- "resume_document"
]
}, - {
- "name": "Jenkins",
- "skill_id": "eebcf485-9045-4669-a6f7-6e7faa465ff9",
- "validation_state": "suggested",
- "skill_sources": [
- "resume_document"
]
}, - {
- "name": "Kubernetes",
- "skill_id": "94835c7e-4135-40d7-aea6-165b33d01589",
- "validation_state": "validated",
- "skill_sources": [
- "working_history",
- "resume_document"
]
}
], - "related_skills": [
- {
- "name": "Helm",
- "skill_id": "63454703-6462-4ccc-bb50-34a0e99bfbf3",
- "validation_state": "suggested",
- "skill_sources": [
- "resume_document",
- "education_history"
]
}
], - "sources": [
- "working_history",
- "education_history",
- "resume_document"
]
}, - {
- "skill_cluster_id": "df96accd-cfa9-414e-96e8-2f6421e9a768",
- "skill_cluster_name": "Programming Languages",
- "domain_name": "Computer Science",
- "proficiency_level": 2,
- "validation_state": "suggested",
- "current_skills": [
- {
- "name": "Python",
- "skill_id": "4b85469d-6729-4d70-9876-a0faa2a2f63b",
- "validation_state": "suggested",
- "skill_sources": [
- "working_history"
]
}, - {
- "name": "Java",
- "skill_id": "9e914d31-9db1-4d2d-8d16-ed8a88539879",
- "validation_state": "rejected",
- "skill_sources": [
- "working_history"
]
}
], - "related_skills": [
- {
- "name": "Django",
- "skill_id": "eeb27f67-8abc-4ad9-babb-7868eaa13078",
- "validation_state": "suggested",
- "skill_sources": [
- "working_history"
]
}, - {
- "name": "Spring Framework",
- "skill_id": "f21b6e1a-dee2-478a-b92f-b4641237af6b",
- "validation_state": "suggested",
- "skill_sources": [
- "working_history"
]
}
], - "sources": [
- "working_history"
]
}
]
}, - {
- "external_id": "61a6e076-d780-11ec-9d64-0242ac120002",
- "skill_clusters": [
- {
- "skill_cluster_id": "32575bc1-5c01-4d6f-89dc-8b4dceccf98a",
- "skill_cluster_name": "Financial accounting",
- "domain_name": "Finance",
- "proficiency_level": 2,
- "current_skills": [
- {
- "name": "Balance Sheet",
- "skill_id": "8313fe8a-f39e-4a35-8c82-93b46c3de9bb",
- "validation_state": "validated",
- "skill_sources": [ ]
}, - {
- "name": "IFRS",
- "skill_id": "bdb5ee3f-8ba0-4c40-92b2-0277431ae069",
- "validation_state": "suggested",
- "skill_sources": [
- "learning"
]
}
], - "related_skills": [ ],
- "sources": [
- "learning"
]
}
]
}
], - "next_starting_after": "61a6e076-d780-11ec-9d64-0242ac120002"
}
Export all Skill Profiles of all Employees by paginating through the data.
The Employees are returned based on their creation time, with those created first being returned first.
read
) limit required | integer [ 1 .. 100 ] The number of Employees shown on a single page. |
starting_after | string <= 100 characters The |
Array of is_active (object) or last_updated (object) A set of filters to apply on the exported Employees. | |
include | Array of strings Expand the results with extra data. |
output_skills_sorting | string Default: "alphabetical" Sort the Skills in the results alphabetically or by decreasing confidence. |
{- "limit": 10,
- "starting_after": "4cbdbabe-5644-4423-8157-520f8a2f429a",
- "filters": [
- {
- "filter": "is_active",
- "is_active": true
}
], - "include": [
- "skill_validation_state",
- "sources",
- "rejected_skills",
- "low_data_availability_flag"
], - "output_skills_sorting": "alphabetical"
}
{- "has_next": true,
- "records": [
- {
- "external_id": "61a6e076-d780-11ec-9d64-0242ac120002",
- "num_skill_events": 2,
- "low_data_availability": false,
- "seniority": 4.290482248178559,
- "skills": [
- {
- "skill_id": "4b85469d-6729-4d70-9876-a0faa2a2f63b",
- "skill": "Python",
- "validation_state": "suggested",
- "sources": [
- "education_history"
], - "source_events": [
- {
- "external_id": "5cbdbdbe-5f44-4423-8157-520f8a2f429a",
- "event_type": "education_history",
- "source": "workday"
}
]
}, - {
- "skill_id": "267d511f-26d4-4c84-b2ae-eae89627deba",
- "skill": "Unit Testing",
- "validation_state": "suggested",
- "sources": [
- "working_history"
], - "source_events": [
- {
- "external_id": "5cbdbdbe-5f44-4423-8157-520f8a2f429a",
- "event_type": "working_history",
- "source": "workday"
}
]
}
]
}, - {
- "external_id": "5cbdbdbe-5f44-4423-8157-520f8a2f429a",
- "num_skill_events": 5,
- "low_data_availability": false,
- "seniority": 3.389503858602185,
- "skills": [
- {
- "skill_id": "8313fe8a-f39e-4a35-8c82-93b46c3de9bb",
- "skill": "Balance Sheet",
- "validation_state": "validated",
- "sources": [
- "education_history"
], - "source_events": [
- {
- "external_id": "5cbdbdbe-5f44-4423-8157-520f8a2f429a",
- "event_type": "education_history",
- "source": "workday"
}
]
}, - {
- "skill_id": "bdb5ee3f-8ba0-4c40-92b2-0277431ae069",
- "skill": "IFRS",
- "validation_state": "rejected",
- "sources": [
- "working_history"
], - "source_events": [
- {
- "external_id": "5cbdbdbe-5f44-4423-8157-520f8a2f429a",
- "event_type": "working_history",
- "source": "workday"
}
]
}
]
}
], - "next_starting_after": "5cbdbdbe-5f44-4423-8157-520f8a2f429a"
}
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.
read
) is_active | boolean Default: "None" This parameter can be used to only include entities with the Example: is_active=true |
skill_id | string <uuid> [ 1 .. 100 ] characters 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. Example: skill_id=a3903505-eb84-42dc-a79f-5e7b1fe897b7 |
include | Array of strings Default: [] When set to Example: include=low_data_availability_flag |
{- "job_family_groups": [
- {
- "job_family_group_name": "IT & Engineering",
- "low_data_availability": 0,
- "job_families": [
- {
- "external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "job_family_name": "Mobile Development",
- "low_data_availability": 0,
- "jobs": [
- {
- "external_id": "a3903505-eb84-42dc-a79f-5d8b1fe897b7",
- "job_name": "Front End Developer",
- "low_data_availability": 0
}
]
}
]
}
]
}
Export all Skill Clusters for all Jobs by paginating through the data.
The Jobs are returned based on their creation time, with those created first being returned first.
read
) limit required | integer [ 1 .. 100 ] The number of Jobs to show on a single page. |
starting_after | string <= 100 characters The |
Array of is_active (object) or last_updated (object) A set of filters to apply on the exported Jobs. | |
include | Array of strings Expand the results with extra data. |
{- "limit": 10,
- "starting_after": "4cbdbabe-5644-4423-8157-520f8a2f429a",
- "filters": [
- {
- "filter": "is_active",
- "is_active": true
}
], - "include": [
- "skills"
]
}
{- "has_next": true,
- "records": [
- {
- "external_id": "5cbdbdbe-5f44-4423-8157-520f8a2f429a",
- "skill_clusters": [
- {
- "skill_cluster_id": "51e605a8-ca08-4ba6-a359-28bad07b38f6",
- "skill_cluster_name": "DevOps",
- "domain_name": "Computer Science",
- "skills": [
- {
- "skill_name": "Git",
- "skill_id": "ed8a3b44-59a0-44a6-a283-6c0e4b303be1",
- "skill_types": [
- {
- "skill_type": "Job-Specific",
- "is_common": true
}
]
}
]
}, - {
- "skill_cluster_id": "df96accd-cfa9-414e-96e8-2f6421e9a768",
- "skill_cluster_name": "Programming Languages",
- "domain_name": "Computer Science",
- "skills": [
- {
- "skill_name": "Python",
- "skill_id": "4b85469d-6729-4d70-9876-a0faa2a2f63b",
- "skill_types": [
- {
- "skill_type": "Family-Specific"
}
]
}, - {
- "skill_name": "Java",
- "skill_id": "9e914d31-9db1-4d2d-8d16-ed8a88539879",
- "skill_types": [
- {
- "skill_type": "Job-Specific",
- "is_common": true
}
]
}
]
}
]
}, - {
- "external_id": "61a6e076-d780-11ec-9d64-0242ac120002",
- "skill_clusters": [
- {
- "skill_cluster_id": "32575bc1-5c01-4d6f-89dc-8b4dceccf98a",
- "skill_cluster_name": "Financial accounting",
- "domain_name": "Finance",
- "skills": [
- {
- "skill_name": "Balance Sheet",
- "skill_id": "8313fe8a-f39e-4a35-8c82-93b46c3de9bb",
- "skill_types": [
- {
- "skill_type": "Job-Specific"
}
]
}, - {
- "skill_name": "IFRS",
- "skill_id": "bdb5ee3f-8ba0-4c40-92b2-0277431ae069",
- "skill_types": [
- {
- "skill_type": "Job-Specific",
- "is_common": true
}
]
}
]
}
]
}
], - "next_starting_after": "61a6e076-d780-11ec-9d64-0242ac120002"
}
Export all Skill Profiles of all Jobs by paginating through the data.
The Jobs are returned based on their creation time, with those created first being returned first.
read
) domain_namespace | string Default: "techwolf" The Domain namespace determines the Domains the Skills will be mapped to. Using Example: domain_namespace=taxonomy | ||||||
response_format | string Default: "list" Defines the format of the returned Skill Profile.
Example: response_format=list |
limit required | integer [ 1 .. 100 ] The number of Jobs to show on a single page. |
starting_after | string <= 100 characters The |
Array of is_active (object) or last_updated (object) or job_family_id_is_in_list (object) A set of filters used to apply on the exported Job Skill Profiles. | |
include | Array of strings Expand the results with additional data |
output_skills_sorting | string Default: "alphabetical" Sort the Skills in the results alphabetically or by decreasing confidence. |
{- "limit": 10,
- "starting_after": "4cbdbabe-5644-4423-8157-520f8a2f429a",
- "filters": [
- {
- "filter": "last_updated",
- "value": "2022-01-01",
- "operator": "lt"
}, - {
- "filter": "job_family_id_is_in_list",
- "job_family_ids": [
- "5cbdbdbe-5f44-4423-8157-520f8a2f429a",
- "62d2c013-ab77-410e-b5fb-2f96eed9c1db"
]
}
], - "include": [
- "low_data_availability_flag"
], - "output_skills_sorting": "alphabetical"
}
{- "has_next": true,
- "records": [
- {
- "external_id": "5cbdbdbe-5f44-4423-8157-520f8a2f429a",
- "low_data_availability": false,
- "skills": [
- {
- "skill_id": "8313fe8a-f39e-4a35-8c82-93b46c3de9bb",
- "skill": "Balance Sheet",
- "skill_types": [
- {
- "skill_type": "Job-Specific",
- "is_common": true
}
], - "domain_name": "Finance",
- "validation_state": "validated"
}, - {
- "skill_id": "bdb5ee3f-8ba0-4c40-92b2-0277431ae069",
- "skill": "IFRS",
- "skill_types": [
- {
- "skill_type": "Job-Specific"
}
], - "domain_name": "Finance",
- "validation_state": "initially_validated"
}
]
}, - {
- "external_id": "61a6e076-d780-11ec-9d64-0242ac120002",
- "low_data_availability": false,
- "skills": [
- {
- "skill": "Machine Learning",
- "skill_id": "ac3a733e-b258-438d-8d39-9a2837a10e11",
- "skill_types": [
- {
- "skill_type": "Family-Specific"
}
], - "domain_name": "Data Science",
- "validation_state": "validated"
}, - {
- "skill": "Python",
- "skill_id": "4b85469d-6729-4d70-9876-a0faa2a2f63b",
- "skill_types": [
- {
- "skill_type": "Job-Specific"
}
], - "domain_name": "Programming",
- "validation_state": "validated"
}
]
}
], - "next_starting_after": "61a6e076-d780-11ec-9d64-0242ac120002"
}
Export all suggested Skill Profiles of all Jobs by paginating through the data.
The Jobs are returned based on their creation time, with those created first being returned first.
read
) domain_namespace | string Default: "techwolf" The Domain namespace determines the Domains the Skills will be mapped to. Using Example: domain_namespace=taxonomy | ||||||
response_format | string Default: "list" Defines the format of the returned Skill Profile.
Example: response_format=list |
limit required | integer [ 1 .. 100 ] The number of Jobs to show on a single page. |
starting_after | string <= 100 characters The |
Array of is_active (object) or last_updated (object) or job_family_id_is_in_list (object) A set of filters used to apply on the exported Job suggested Skill Profiles. | |
include | Array of strings Expand the results with additional data |
output_skills_sorting | string Default: "alphabetical" Sort the Skills in the results alphabetically or by decreasing confidence. |
{- "limit": 10,
- "starting_after": "4cbdbabe-5644-4423-8157-520f8a2f429a",
- "filters": [
- {
- "filter": "last_updated",
- "value": "2022-01-01",
- "operator": "lt"
}, - {
- "filter": "job_family_id_is_in_list",
- "job_family_ids": [
- "5cbdbdbe-5f44-4423-8157-520f8a2f429a",
- "62d2c013-ab77-410e-b5fb-2f96eed9c1db"
]
}
], - "include": [
- "skill_validation_state"
], - "output_skills_sorting": "alphabetical"
}
{- "has_next": true,
- "records": [
- {
- "external_id": "5cbdbdbe-5f44-4423-8157-520f8a2f429a",
- "skills": [
- {
- "skill_id": "8313fe8a-f39e-4a35-8c82-93b46c3de9bb",
- "skill": "Balance Sheet",
- "skill_type": "Core",
- "domain_name": "Finance",
- "validation_state": "suggested",
- "source_data": [
- {
- "external_id": "5cbdbdbe-5f44-4423-8157-520f8a2f429a",
- "source_data_type": "job_profile_data"
}
]
}, - {
- "skill_id": "bdb5ee3f-8ba0-4c40-92b2-0277431ae069",
- "skill": "IFRS",
- "skill_type": "Job-Specific",
- "domain_name": "Finance",
- "validation_state": "validated",
- "source_data": [
- {
- "external_id": "5cbdbdbe-5f44-4423-8157-520f8a2f429a",
- "source_data_type": "job_profile_data"
}
]
}
]
}, - {
- "external_id": "61a6e076-d780-11ec-9d64-0242ac120002",
- "skills": [
- {
- "skill": "Machine Learning",
- "skill_id": "ac3a733e-b258-438d-8d39-9a2837a10e11",
- "skill_type": "Job-Specific",
- "domain_name": "Data Science",
- "validation_state": "suggested",
- "source_data": [
- {
- "external_id": "61a6e076-d780-11ec-9d64-0242ac120002",
- "source_data_type": "job_profile_data"
}, - {
- "external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "source_data_type": "job_profile_data"
}
]
}, - {
- "skill": "Python",
- "skill_id": "4b85469d-6729-4d70-9876-a0faa2a2f63b",
- "skill_type": "Job-Specific",
- "domain_name": "Programming",
- "validation_state": "suggested",
- "source_data": [
- {
- "external_id": "61a6e076-d780-11ec-9d64-0242ac120002",
- "source_data_type": "job_profile_data"
}, - {
- "external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "source_data_type": "job_profile_data"
}
]
}
]
}
], - "next_starting_after": "61a6e076-d780-11ec-9d64-0242ac120002"
}
Export all external market Skill Profiles of all Jobs by paginating through the data.
The Jobs are returned based on their creation time, with those created first being returned first.
read
) response_format | string Default: "list" Defines the format of the returned Skill Profile.
Example: response_format=list |
limit required | integer [ 1 .. 100 ] The number of Jobs to show on a single page. |
starting_after | string <= 100 characters The |
Array of is_active (object) or last_updated (object) or job_family_id_is_in_list (object) A set of filters used to apply on the exported Job Skill Profiles. | |
output_skills_sorting | string Default: "alphabetical" Sort the Skills in the results alphabetically or by decreasing confidence. |
{- "limit": 10,
- "starting_after": "4cbdbabe-5644-4423-8157-520f8a2f429a",
- "filters": [
- {
- "filter": "last_updated",
- "value": "2022-01-01",
- "operator": "lt"
}, - {
- "filter": "job_family_id_is_in_list",
- "job_family_ids": [
- "5cbdbdbe-5f44-4423-8157-520f8a2f429a",
- "62d2c013-ab77-410e-b5fb-2f96eed9c1db"
]
}
], - "output_skills_sorting": "alphabetical"
}
{- "has_next": true,
- "records": [
- {
- "external_id": "09de5e58-5161-4ad1-a256-6d01a025914b",
- "peer_groups": [
- {
- "peer_group": "Sport Watches Production"
}, - {
- "skills": [
- {
- "skill": "Product Design",
- "skill_id": "6d41b6d7-1c09-4f8a-a9c0-361b4c7a92f5",
- "domain_name": "Product Development"
}, - {
- "skill": "Materials Science",
- "skill_id": "9eb6aebf-936d-4814-9c6f-8754becc2f53",
- "domain_name": "Science"
}, - {
- "skill": "Supply Chain Operations",
- "skill_id": "7cfe0001-5a22-49dc-9148-077b546de5cd",
- "domain_name": "Supply Chain"
}
]
}
]
}, - {
- "external_id": "9e914d31-9db1-4d2d-8d16-ed8a88539879",
- "peer_groups": [
- {
- "peer_group": "Sport Watches Production"
}, - {
- "skills": [
- {
- "skill": "Embedded Systems",
- "skill_id": "0af7ceb8-26fe-4210-a5c4-3c1b69721403",
- "domain_name": "Information Technology"
}, - {
- "skill": "UX Design",
- "skill_id": "98fc5005-abf9-41f5-b156-742654b7eacd",
- "domain_name": "Information Technology"
}, - {
- "skill": "Algorithm Development",
- "skill_id": "e273a7bd-1ee2-4911-979c-33423dc1ac08",
- "domain_name": "Information Technology"
}
]
}
]
}
], - "next_starting_after": "61a6e076-d780-11ec-9d64-0242ac120002"
}
Export all Skill Profiles of all Job Families by paginating through the data.
The Job Families are returned based on their creation time, with those created first being returned first.
read
) domain_namespace | string Default: "techwolf" The Domain namespace determines the Domains the Skills will be mapped to. Using Example: domain_namespace=taxonomy | ||||||
response_format | string Default: "list" Defines the format of the returned Skill Profile.
Example: response_format=list |
limit required | integer [ 1 .. 100 ] The number of Job Families to show on a single page. |
starting_after | string <= 100 characters The |
Array of is_active (object) or last_updated (object) A set of filters used to apply on the exported Job Family Skill Profiles. | |
include | Array of strings Expand the results with additional data |
output_skills_sorting | string Default: "alphabetical" Sort the Skills in the results alphabetically or by decreasing confidence. |
{- "limit": 10,
- "starting_after": "4cbdbabe-5644-4423-8157-520f8a2f429a",
- "filters": [
- {
- "filter": "is_active",
- "is_active": true
}
], - "include": [
- "skill_validation_state"
], - "output_skills_sorting": "alphabetical"
}
{- "has_next": true,
- "records": [
- {
- "external_id": "5cbdbdbe-5f44-4423-8157-520f8a2f429a",
- "skills": [
- {
- "skill_id": "8313fe8a-f39e-4a35-8c82-93b46c3de9bb",
- "skill": "Balance Sheet",
- "skill_types": [
- {
- "skill_type": "Family-Specific"
}
], - "domain_name": "Finance",
- "validation_state": "validated"
}
]
}, - {
- "external_id": "61a6e076-d780-11ec-9d64-0242ac120002",
- "skills": [
- {
- "skill": "Machine Learning",
- "skill_id": "ac3a733e-b258-438d-8d39-9a2837a10e11",
- "skill_types": [
- {
- "skill_type": "Family-Specific"
}
], - "domain_name": "Data Science",
- "validation_state": "validated"
}, - {
- "skill": "Python",
- "skill_id": "4b85469d-6729-4d70-9876-a0faa2a2f63b",
- "skill_types": [
- {
- "skill_type": "Family-Specific"
}
], - "domain_name": "Programming",
- "validation_state": "initially_validated"
}
]
}
], - "next_starting_after": "61a6e076-d780-11ec-9d64-0242ac120002"
}
Export all Suggested Skill Profiles of all Job Families by paginating through the data.
The Job Families are returned based on their creation time, with those created first being returned first.
read
) domain_namespace | string Default: "techwolf" The Domain namespace determines the Domains the Skills will be mapped to. Using Example: domain_namespace=taxonomy | ||||||
response_format | string Default: "list" Defines the format of the returned Skill Profile.
Example: response_format=list |
limit required | integer [ 1 .. 100 ] The number of Job Families to show on a single page. |
starting_after | string <= 100 characters The |
Array of is_active (object) or last_updated (object) A set of filters used to apply on the exported Job Family Suggested Skill Profiles. | |
include | Array of strings Expand the results with additional data |
output_skills_sorting | string Default: "alphabetical" Sort the Skills in the results alphabetically or by decreasing confidence. |
{- "limit": 10,
- "starting_after": "4cbdbabe-5644-4423-8157-520f8a2f429a",
- "filters": [
- {
- "filter": "is_active",
- "is_active": true
}
], - "include": [
- "skill_validation_state"
], - "output_skills_sorting": "alphabetical"
}
{- "has_next": true,
- "records": [
- {
- "external_id": "5cbdbdbe-5f44-4423-8157-520f8a2f429a",
- "skills": [
- {
- "skill_id": "8313fe8a-f39e-4a35-8c82-93b46c3de9bb",
- "skill": "Balance Sheet",
- "skill_type": "Core",
- "domain_name": "Finance",
- "validation_state": "suggested",
- "source_data": [
- {
- "external_id": "5cbdbdbe-5f44-4423-8157-520f8a2f429a",
- "source_data_type": "job_family_profile_data"
}
]
}, - {
- "skill_id": "bdb5ee3f-8ba0-4c40-92b2-0277431ae069",
- "skill": "IFRS",
- "skill_type": "Core",
- "domain_name": "Finance",
- "validation_state": "suggested",
- "source_data": [
- {
- "external_id": "5cbdbdbe-5f44-4423-8157-520f8a2f429a",
- "source_data_type": "job_family_profile_data"
}
]
}
]
}, - {
- "external_id": "61a6e076-d780-11ec-9d64-0242ac120002",
- "skills": [
- {
- "skill": "Machine Learning",
- "skill_id": "ac3a733e-b258-438d-8d39-9a2837a10e11",
- "skill_type": "Core",
- "domain_name": "Data Science",
- "validation_state": "validated",
- "source_data": [
- {
- "external_id": "61a6e076-d780-11ec-9d64-0242ac120002",
- "source_data_type": "job_family_profile_data"
}, - {
- "external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "source_data_type": "job_profile_data"
}
]
}
]
}
], - "next_starting_after": "61a6e076-d780-11ec-9d64-0242ac120002"
}
Export all Skill Profiles of all Courses by paginating through the data.
The Courses are returned based on their creation time, with those created first being returned first.
read
) limit required | integer [ 1 .. 100 ] The number of Course Skill Profiles to show on a single page. |
starting_after | string <= 100 characters The |
Array of is_active (object) or last_updated (object) A set of filters used to apply on the exported Course Skill Profiles. |
{- "limit": 10,
- "starting_after": "4cbdbabe-5644-4423-8157-520f8a2f429a",
- "filters": [
- {
- "filter": "is_active",
- "is_active": true
}
]
}
{- "has_next": true,
- "records": [
- {
- "external_id": "5cbdbdbe-5f44-4423-8157-520f8a2f429a",
- "skills": [
- {
- "skill_name": "Git",
- "skill_id": "ed8a3b44-59a0-44a6-a283-6c0e4b303be1"
}, - {
- "skill_name": "Jenkins",
- "skill_id": "eebcf485-9045-4669-a6f7-6e7faa465ff9"
}, - {
- "skill_name": "Kubernetes",
- "skill_id": "94835c7e-4135-40d7-aea6-165b33d01589"
}
]
}, - {
- "external_id": "61a6e076-d780-11ec-9d64-0242ac120002",
- "skills": [
- {
- "skill_name": "Balance Sheet",
- "skill_id": "8313fe8a-f39e-4a35-8c82-93b46c3de9bb"
}, - {
- "skill_name": "IFRS",
- "skill_id": "bdb5ee3f-8ba0-4c40-92b2-0277431ae069"
}
]
}
], - "next_starting_after": "61a6e076-d780-11ec-9d64-0242ac120002"
}
Employees without an assigned position will be included in the result, with job_id=null
and score=0.0
.
read
) {- "limit": 10,
- "starting_after": "4cbdbabe-5644-4423-8157-520f8a2f429a",
- "filters": [
- {
- "filter": "is_active",
- "is_active": true
}
]
}
{- "has_next": true,
- "next_starting_after": "61a6e076-d780-11ec-9d64-0242ac120002",
- "records": [
- {
- "job_id": "b003505-eb84-42dc-a79f-5e7b1fe897b7",
- "employee_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "score": 0.87657
}
]
}
Get an export of the entire Taxonomy.
read
) include | Array of strings Additional attributes that will be included in the response body. This query parameter can be added multiple times to include more attributes. Example: include=skill_description&include=skill_cluster_description |
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 |
{- "domains": [
- {
- "external_id": "48329b6e-6770-4f95-88a1-79dcc38b1c08",
- "domain_name": "Human Resources",
- "skill_clusters": [
- {
- "external_id": "c8e866ac-c1e5-4386-8911-d17320c54db9",
- "skill_cluster_name": "Recruiting",
- "skill_cluster_description": "Recruiting is the process of attracting, screening, and selecting qualified people for a job. Recruiting requires the ability to identify and attract potential candidates to an organization.",
- "skills": [
- {
- "external_id": null,
- "skill_id": "8037b52e-841c-471c-9c16-ffb0e9c6c490",
- "skill_name": "Screening Resumes",
- "skill_description": "The Screening Resumes process involves reviewing Job applicants' resumes in order to identify those candidates who best match the qualifications and requirements of the open position. The Skill \"Screening Resumes\" requires one to be able to quickly and effectively screen resumes in order to identify qualified candidates for a position.",
- "skill_vocab": "TechWolf"
}, - {
- "external_id": null,
- "skill_id": "aa0195dc-3784-4c20-9d3c-5a6373ffd179",
- "skill_name": "Student Recruiting",
- "skill_description": "Student Recruiting is the process of attracting and enrolling students for educational institutions. The Skill \"Student Recruiting\" requires the ability to identify and attract potential students to an organization.",
- "skill_vocab": "TechWolf"
}, - {
- "external_id": null,
- "skill_id": "77a43cdb-51d6-44f0-8f0e-d155f0bd0088",
- "skill_name": "Writing",
- "skill_description": "",
- "skill_vocab": "TechWolf"
}
]
}
]
}, - {
- "external_id": "9c022f76-a649-4d08-a52f-ec3f9ad8ba42",
- "domain_name": "IT",
- "skill_clusters": [
- {
- "external_id": "2e7c8774-3416-4033-b640-8a255f70df2c",
- "skill_cluster_name": "Programming Languages",
- "skill_cluster_description": "Knowledge of programming languages and their use in software development.",
- "skills": [
- {
- "external_id": null,
- "skill_id": "c8c4b3a1-2d55-4dde-a71c-d7129c675a77",
- "skill_name": "SQL",
- "skill_description": "SQL is a standard database query language.The Skill \\\"SQL\\\" requires the ability to write and execute SQL queries.",
- "skill_vocab": "TechWolf"
}, - {
- "external_id": null,
- "skill_id": "4b85469d-6729-4d70-9876-a0faa2a2f63b",
- "skill_name": "Python",
- "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.",
- "skill_vocab": "TechWolf"
}
]
}, - {
- "external_id": "564aadce-b2c7-4c4e-a87a-63263963db21",
- "skill_cluster_name": "Debug Software",
- "skill_cluster_description": "Debugging is the process of finding and resolving defects or problems within a computer program that prevent correct operation of computer software or a system. Debugging requires the ability to identify and fix issues within a software system.",
- "skills": [
- {
- "external_id": null,
- "skill_id": "267d511f-26d4-4c84-b2ae-eae89627deba",
- "skill_name": "Unit Testing",
- "skill_description": "Unit Testing is a software testing method in which individual units of source code, sets of one or more computer program modules together with associated control data, usage procedures, and operating procedures, are tested to determine whether they are fit for use. The Skill \"Unit Testing\" requires the ability to create and run tests on individual components of a software system to ensure they are functioning correctly.",
- "skill_vocab": "TechWolf"
}, - {
- "external_id": null,
- "skill_id": "4b85469d-6729-4d70-9876-a0faa2a2f63b",
- "skill_name": "Python",
- "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.",
- "skill_vocab": "TechWolf"
}
]
}
]
}
]
}
Export the Organisational Structure as a hierarchy. Each Organisational Unit can have at most one parent unit, with no limit on the number of levels.
read
) skill_id | string <uuid> [ 1 .. 100 ] characters The unique ID of a Skill, consisting of alphanumeric characters and hyphens. Setting this parameter will include only Organisational Units with Employees that have this Skill in their Skill Profile, and per Organisational Unit only count the number of Employees with this Skill. Example: skill_id=a3903505-eb84-42dc-a79f-5e7b1fe897b7 |
include | Array of strings Default: [] When set to Example: include=low_data_availability_flag |
{- "organisational_structure": [
- {
- "external_id": "c3903505-eb84-42dc-a79f-5d8b1fe897b7",
- "name": "Engineering",
- "total_nr_of_employees": 16,
- "low_data_availability": 0,
- "children": [
- {
- "external_id": "d3903505-eb84-42dc-a79f-5d8b1fe897b7",
- "name": "Frontend Engineering",
- "total_nr_of_employees": 9,
- "low_data_availability": 0,
- "children": [
- { }
]
}
]
}
]
}
Reports aggregate and group Metrics into a broader overview.
More info about Reports can be found on the How it Works page .
Retrieve the total number of all entities in the system.
read
) {- "report_name": "counts",
- "report_data": {
- "counts": {
- "employees": 1000,
- "vacancies": 1000,
- "courses": 1000
}
}, - "last_update": "2020-09-01T11:45:49Z"
}
Get your Skill inventory, the Skill Clusters of your entities, and where these originate from. This report generates a zip file containing the following files:
dim_{entity_type}.csv
: A list of all entities in the system, containing external IDs and Custom Properties provided in entity_columns
.fact_{entity_type}_property.csv
: A list of Custom Property mappings containing external IDs of the entity, Custom Property name and Custom Property value for all the Custom Properties provided in entity_properties
.dim_skill.csv
: A list of all Skills referred to in the files above containing the external IDs, the name and the description.dim_skill_cluster.csv
: A list of all Skill Clusters in the system, containing the name, the Domain name and their Skills.fact_{entity_type}_skill_cluster.csv
: A list of the validation state and proficiency level for each combination of Employee and Skill Cluster.fact_skill_cluster.csv
: A list of all Skills in each Skill Cluster, containing the Skill Cluster external IDs and Skill external IDs.fact_skill_source.csv
: A list containing the source of each Skill of an Employee.read
) Filters for the Skill inventory report.
entity_type required | string non-empty Name of the entity type for which the report will be generated. |
required | Array of objects (DimColumn) The Custom Property columns that will be included in the |
required | Array of objects (FactProperty) The Custom Properties that will be included in the |
{- "entity_type": "employee",
- "entity_columns": [
- {
- "column_name": "dim_column_name",
- "property_name": "dim_property_name"
}
], - "entity_properties": [
- {
- "property_name": "fact_property_name"
}
]
}
[- {
- "title": "400 Bad Request",
- "description": "The request body was not structured correctly."
}
]
This report generates a zip file containing the following files:
dim_employee.csv
: A list of all Employees in the system, containing their external IDs and Custom Properties provided in employee_columns
.fact_employee_property.csv
: A list of Custom Property mappings containing external IDs of the Employee, Custom Property name and Custom Property value for all the Custom Properties provided in employee_properties
.dim_vacancy.csv
: A list of all Vacancies in the system, containing external IDs and Custom Properties provided in vacancy_columns
.fact_vacancy_property.csv
: A list of Custom Property mappings containing external IDs of the Vacancy, Custom Property name and Custom Property value for all Custom Properties provided in vacancy_properties
.fact_vacancy_skill.csv
: Contains a list of all Vacancy external ID-Skill pairs.fact_match_skill.csv
: Contains the match score for every Skill for all Employee-Vacancy pairs.dim_skill.csv
: A list of all Skills referred to in the files above containing the external IDs, the name and the description.fact_match.csv
: Contains the match score of all Employee-Vacancy pairs.read
) Filters for the Skill inventory report.
max_employees_per_vacancy required | number [ 1 .. 100 ] The max number of Employees that will be matched for each Vacancy. |
Array of objects (DimColumn) The Custom Property columns that will be included in the | |
Array of objects (FactProperty) The Custom Properties that will be included in the | |
Array of objects (DimColumn) The Custom Property columns that will be included in the | |
Array of objects (FactProperty) The Custom Properties that will be included in the |
{- "max_employees_per_vacancy": 50,
- "employee_columns": [
- {
- "column_name": "dim_column_name",
- "property_name": "dim_property_name"
}
], - "employee_properties": [
- {
- "property_name": "fact_property_name"
}
], - "vacancy_columns": [
- {
- "column_name": "dim_column_name",
- "property_name": "dim_property_name"
}
], - "vacancy_properties": [
- {
- "property_name": "fact_property_name"
}
]
}
[- {
- "title": "400 Bad Request",
- "description": "The request body was not structured correctly."
}
]
Get your Job Architecture Benchmark containing the Jobs and how they compare to the ones in their peer groups. This report generates a zip file containing the following files:
dim_peer_group.csv
: A list of all Jobs in the system, containing external IDs and the ID of the peer group.fact_peer_group_property.csv
: Currently unused.dim_job.csv
: A list of all Jobs present in the system, containing their external IDs, Job titles and Custom Properties provided in job_columns
.fact_job_property.csv
: A list of Custom Property mappings containing external IDs of the Job, Custom Property name and Custom Property value for all Custom Properties provided in job_properties
.dim_skill.csv
: A list of all Skills referred to in the files above containing the external IDs, the name and the description.fact_match_skill.csv
: Contains the match score for every Skill for all peer group - Job pairs.fact_match.csv
: Contains the match score of all peer group - Job pairs.read
) Options for the Job Architecture benchmark report.
job_columns required | Array of any The Custom Property columns that will be included in the |
Array of objects (FactProperty) The Custom Properties that will be included in the | |
Array of objects (DimColumn) The Custom Property columns that will be included in the | |
Array of objects (FactProperty) The Custom Properties that will be included in the |
{- "job_columns": [
- {
- "column_name": "dim_column_name",
- "property_name": "dim_property_name"
}
], - "job_properties": [
- {
- "property_name": "fact_property_name"
}
], - "peer_group_columns": [
- {
- "column_name": "dim_column_name",
- "property_name": "dim_property_name"
}
], - "peer_group_properties": [
- {
- "property_name": "fact_property_name"
}
]
}
[- {
- "title": "400 Bad Request",
- "description": "The request body was not structured correctly."
}
]
Reports aggregate and group Metrics into a broader overview.
More info about Reports can be found on the How it Works page .
Retrieve the Skill Cluster adoption report for all Employees with respect to the value of a Custom Property and one or more Skill Clusters.
The report consists of three smaller reports. A heatmap, a Skill Cluster adoption report, and a Skill breakdown.
read_reports
) Filters for the Skill Cluster adoption report
{- "group_by_custom_property": "Department",
- "relevant_skill_clusters": [
- "Artificial Intelligence",
- "Programming Languages"
]
}
{- "report_name": "employee_skill_cluster_adoption",
- "report_data": {
- "property_name": "Department",
- "heatmap": [
- {
- "property_value": "IT & Engineering",
- "skill_clusters": [
- {
- "skill_cluster_name": "Artificial Intelligence",
- "adoption": 0.6
}, - {
- "skill_cluster_name": "Programming Languages",
- "adoption": 0.2
}
]
}, - {
- "property_value": "Sales",
- "skill_clusters": [
- {
- "skill_cluster_name": "Artificial Intelligence",
- "adoption": 0.1
}, - {
- "skill_cluster_name": "Programming Languages",
- "adoption": 0.2
}
]
}
], - "skill_cluster_adoption": [
- {
- "external_id": "5cbdbdbe-5f44-4423-8157-520f8a2f429a",
- "property_value": "IT & Engineering",
- "assigned_position": "Software Engineer",
- "skill_clusters": [
- {
- "skill_cluster_name": "Programming Languages",
- "proficiency_level": 2
}, - {
- "skill_cluster_name": "DevOps",
- "proficiency_level": 3
}
]
}, - {
- "external_id": "61a6e076-d780-11ec-9d64-0242ac120002",
- "property_value": "Research",
- "assigned_position": "NLP Engineer",
- "skill_clusters": [
- {
- "skill_cluster_name": "Artificial Intelligence",
- "proficiency_level": 2
}
]
}
], - "skill_breakdown": [
- {
- "external_id": "5cbdbdbe-5f44-4423-8157-520f8a2f429a",
- "skill_clusters": [
- {
- "skill_cluster_name": "Programming Languages",
- "skills": [
- {
- "name": "Python"
}, - {
- "name": "Java"
}
]
}, - {
- "skill_cluster_name": "Artificial Intelligence",
- "skills": [
- {
- "name": "Machine Learning"
}, - {
- "name": "Deep Learning"
}
]
}
]
}, - {
- "external_id": "61a6e076-d780-11ec-9d64-0242ac120002",
- "skill_clusters": [
- {
- "skill_cluster_name": "Artificial Intelligence",
- "skills": [
- {
- "name": "Deep Learning"
}
]
}
]
}
]
}, - "last_update": "2020-09-01T11:45:49Z"
}
Retrieve all key metrics of all Employees
read_reports
) {- "report_name": "employees_key_metrics",
- "report_data": {
- "total_active": 100,
- "total_active_with_skill": 80,
- "total_active_with_validated_skill": 60,
- "total_active_with_low_data_availability": 10,
- "validated_skills": {
- "total_confirmed_skills": 50,
- "total_rejected_skills": 10
}
}, - "last_update": "2020-09-01T11:45:49Z"
}
Reports aggregate and group Metrics into a broader overview.
More info about Reports can be found on the How it Works page .
Retrieve all key metrics of all Jobs
read_reports
) {- "report_name": "jobs_key_metrics",
- "report_data": {
- "total_active": 100,
- "total_active_with_skill": 80,
- "total_active_with_validated_skill": 60,
- "total_active_with_low_data_availability": 10,
- "validated_skills": {
- "total_confirmed_skills": 50,
- "total_rejected_skills": 10
}
}, - "last_update": "2020-09-01T11:45:49Z"
}
Reports aggregate and group Metrics into a broader overview.
More info about Reports can be found on the How it Works page .
Generate the Employee Quality Matrix for all Employees in the system.
read_reports
) {- "report_name": "employee_quality_matrix",
- "report_data": {
- "entity_count": 100,
- "data_quality_matrix": [
- {
- "source": "JIRA",
- "event_type": "ticket",
- "source_type": "employee-specific",
- "source_coverage": 0.8,
- "empty_profile": 0.05,
- "source_quality": 0.85,
- "total_skill_volume": 45,
- "unique_skill_volume": 24,
- "source_differentation": 0.68
}
]
}, - "last_update": "2020-09-01T11:45:49Z"
}
Generate the Job Quality Matrix for all Jobs in the system.
read_reports
) {- "report_name": "job_quality_matrix",
- "report_data": {
- "entity_count": 100,
- "data_quality_matrix": [
- {
- "source": "Workday",
- "event_type": "job_title",
- "source_type": "market-specific",
- "source_coverage": 0.8,
- "empty_profile": 0.05,
- "source_quality": 0.85,
- "total_skill_volume": 45,
- "unique_skill_volume": 24,
- "source_differentation": 0.68
}
]
}, - "last_update": "2020-09-01T11:45:49Z"
}
Generate the Employee Maturity Overview for all Employees in the system.
read_reports
) limit | integer [ 1 .. 500 ] Default: 200 The maximal number of returned entities. Example: limit=250 |
offset | integer >= 0 Default: 0 The applied offset for returned entities, results starting from |
update_low_data_availability | boolean Default: true If enabled, the Example: update_low_data_availability=true |
{- "report_name": "employee_data_maturity_overview",
- "report_data": {
- "entity_count": 100,
- "data_maturity_overview": [
- {
- "external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "low_data_availability": false,
- "reasons": [
- [
- "MAX_SOURCE_GENERALITY",
- "MIN_EVENT_TYPE_DIVERSITY"
]
]
}
]
}, - "last_update": "2020-09-01T11:45:49Z"
}
Generate the Job Maturity Overview for all Jobs in the system.
read_reports
) limit | integer [ 1 .. 500 ] Default: 200 The maximal number of returned entities. Example: limit=250 |
offset | integer >= 0 Default: 0 The applied offset for returned entities, results starting from |
update_low_data_availability | boolean Default: true If enabled, the Example: update_low_data_availability=true |
{- "report_name": "job_data_maturity_overview",
- "report_data": {
- "entity_count": 100,
- "data_maturity_overview": [
- {
- "external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "low_data_availability": false,
- "reasons": [
- [
- "MAX_SOURCE_GENERALITY",
- "MIN_EVENT_TYPE_DIVERSITY"
]
]
}
]
}, - "last_update": "2020-09-01T11:45:49Z"
}
Generate Data Improvement Actions for all Entities, Skill Events and Job Profile Data in the system.
read_reports
) {- "report_name": "data_improvement_actions",
- "report_data": {
- "data_improvement_actions": [
- {
- "source": "JIRA",
- "event_type": "string",
- "content_field": "ticket_description",
- "observation": "Half of descriptions are too short (less than 300 characters)",
- "impact": "High",
- "examples": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
]
}
]
}, - "last_update": "2020-09-01T11:45:49Z"
}
The File Load Task is an experimental feature that allows you to upload files to the API that are processed asynchronously. This is useful for large files that would otherwise take a long time to upload and process in a single request.
Create a new File Load Task to load a CSV-file into the system. The file headers should contain all required columns that are needed for creating the specified entity types as a flat list. The file should be uploaded to a S3 bucket and the File Load Task should be created with the URI of the file in the S3 bucket. More info about the File Load Task can be found at the File Load Task Tutorial.
read
) {- "entity_type": "learning",
- "method": "s3_iam_user",
- "uri": "s3://bucket-name/file-name.csv",
- "credentials": {
- "aws_access_key_id": "AKIAIOSFODNN7EXAMPLE",
- "aws_secret_access_key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
- "aws_session_token": "AQoDYXdzEJrtyd"
}
}
{- "task_id": "01J8QBS1RS5MBEK9FW7J4MPJ1R"
}
Get the status of a File Load Task.
{- "task_id": "01J8QBS1RS5MBEK9FW7J4MPJ1R",
- "entity_type": "learning",
- "method": "s3_iam_user",
- "uri": "s3://bucket-name/file-name.csv",
- "status": "in_progress",
- "created_on": "2021-01-01T00:00:00Z",
- "progress": {
- "created": 5,
- "skipped": 3,
- "processed_rows": 8,
- "total_rows": 100
}
}