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 at https://techwolf.eu.auth0.com/oauth/token
with
grant_type client_credentials
.
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 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.
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.
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.
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.
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.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.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, Assana, 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.Domains in the Skill Engine API allow enterprise customers to adapt Domains in their Taxonomy.
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.
{- "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."
}
]
Skill Clusters in the Skill Engine API allow enterprise customers to adapt Skill Clusters in their Taxonomy.
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"
}, - {
- "external_id": "62d2c013-ab77-410e-b5fb-2f96eed9c1db",
- "skill_cluster_name": "Database Management",
- "last_updated": "2023-05-22T13:22:41.165Z"
}
]
}
Create a new Skill Cluster in the system that is linked to a Domain.
write
) {- "external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "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."
}
]
Get the Skill Cluster information stored in the system.
{- "external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "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.",
- "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": [
- {
- "skill_id": "4b85469d-6729-4d70-9876-a0faa2a2f63b",
- "skill_name": "Python"
}, - {
- "skill_id": "c8c4b3a1-2d55-4dde-a71c-d7129c675a77",
- "skill_name": "SQL"
}
]
}
Add a Skill to a Skill Cluster.
write
) [- {
- "title": "400 Bad Request",
- "description": "The request body was not structured correctly."
}
]
Remove a Skill from a Skill Cluster.
write
) [- {
- "title": "401 Unauthorized",
- "description": "OAuth access token is missing, invalid or expired."
}
]
Get the Skill information stored inside the Vocabulary.
{- "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."
}
Get the Skill information stored inside the system for multiple Skills.
read
) {- "results": [
- {
- "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_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."
}
], - "count": 2
}
Get an export of the entire Taxonomy.
{- "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",
- "skills": [
- {
- "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_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_id": "77a43cdb-51d6-44f0-8f0e-d155f0bd0088",
- "skill_name": "Writing",
- "skill_description": ""
}
]
}
]
}, - {
- "external_id": "9c022f76-a649-4d08-a52f-ec3f9ad8ba42",
- "domain_name": "IT",
- "skill_clusters": [
- {
- "external_id": "2e7c8774-3416-4033-b640-8a255f70df2c",
- "skill_cluster_name": "Programming Languages",
- "skills": [
- {
- "skill_id": "9e914d31-9db1-4d2d-8d16-ed8a88539879",
- "skill_name": "Java",
- "skill_description": "Java is a programming language that enables developers to create small applications that run on any platform.The skill \"Java\" requires one to be able to write code in the Java programming language."
}, - {
- "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."
}
]
}, - {
- "external_id": "564aadce-b2c7-4c4e-a87a-63263963db21",
- "skill_cluster_name": "Debug Software",
- "skills": [
- {
- "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_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."
}
]
}
]
}
]
}
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 (Change) |
{- "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
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",
- "location": {
- "lat": 50.0216707,
- "lng": 3.6887328
}, - "assigned_position": "HR assistant",
- "last_updated": "2021-01-21T17:32:28.000Z"
}, - {
- "external_id": "62d2c013-ab77-410e-b5fb-2f96eed9c1db",
- "location": {
- "lat": 51.0216707,
- "lng": 2.6887328
}, - "assigned_position": "Staffing coordinator",
- "last_updated": "2021-01-22T15:02:00.000Z"
}, - {
- "external_id": "6129e3f1-663f-44ea-aa3f-2ce1077b834c",
- "location": {
- "lat": 51.0516707,
- "lng": 4.6887328
}, - "assigned_position": "HR analyst",
- "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",
- "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",
- "relative_importance": 3
}, - {
- "title": "Police Officer",
- "relative_importance": 5
}
], - "non_desired_functions": [
- {
- "title": "Software Developer",
- "relative_importance": 2
}
], - "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",
- "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",
- "relative_importance": 3
}, - {
- "title": "Police Officer",
- "relative_importance": 5
}
], - "non_desired_functions": [
- {
- "title": "Software Developer",
- "relative_importance": 2
}
], - "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",
- "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",
- "relative_importance": 3
}, - {
- "title": "Police Officer",
- "relative_importance": 5
}
], - "non_desired_functions": [
- {
- "title": "Software Developer",
- "relative_importance": 2
}
], - "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 a list of all the Custom Property Definitions stored inside the system.
read
) [- {
- "property_name": "wage",
- "property_type": "number"
}, - {
- "property_name": "sector",
- "property_type": "text"
}
]
Create a new Custom Property Definition in the system.
write
) {- "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.
{- "property_name": "sector",
- "property_type": "text"
}
Rename a Custom Property Definition.
{- "property_name": "sector"
}
[- {
- "title": "400 Bad Request",
- "description": "The request body was not structured correctly."
}
]
Remove a Custom Property Definition from the system.
[- {
- "title": "401 Unauthorized",
- "description": "OAuth access token is missing, invalid or expired."
}
]
Fetch all Employee properties from the system (if any exists, otherwise an empty list is returned).
[- {
- "property_name": "direct_manager",
- "property_value": "John Doe"
}, - {
- "property_name": "yearly_wage",
- "property_value": 50000
}, - {
- "property_name": "freelancer",
- "property_value": false
}, - {
- "property_name": "driving_licenses",
- "property_value": [
- "B",
- "C"
]
}, - {
- "property_name": "start_date",
- "property_value": "2020-01-14"
}, - {
- "property_name": "creation_date",
- "property_value": "2020-01-12T17:14:30.40"
}
]
In addition to the default fields available for each Employee, a set of custom properties can be added. Each Employee is allowed to have a maximum of 100 properties, with properties being numbers or strings (maximum length 1000 characters).
write
) [- {
- "property_name": "direct_manager",
- "property_value": "John Doe"
}, - {
- "property_name": "yearly_wage",
- "property_value": 50000
}, - {
- "property_name": "freelancer",
- "property_value": false
}, - {
- "property_name": "driving_licenses",
- "property_value": [
- "B",
- "C"
]
}, - {
- "property_name": "start_date",
- "property_value": "2020-01-14"
}, - {
- "property_name": "creation_date",
- "property_value": "2020-01-12T17:14:30.40"
}
]
{- "title": "400 Bad Request",
- "description": "The request body was not structured correctly."
}
In addition to the default fields available for each Employee, a set of custom properties can be added. Each Employee is allowed to have a maximum of 100 properties, with properties being numbers or strings (maximum length 1000 characters).
write
) [- {
- "property_name": "direct_manager",
- "property_value": "John Doe"
}, - {
- "property_name": "yearly_wage",
- "property_value": 50000
}, - {
- "property_name": "freelancer",
- "property_value": false
}, - {
- "property_name": "driving_licenses",
- "property_value": [
- "B",
- "C"
]
}, - {
- "property_name": "start_date",
- "property_value": "2020-01-14"
}, - {
- "property_name": "creation_date",
- "property_value": "2020-01-12T17:14:30.40"
}
]
{- "title": "400 Bad Request",
- "description": "The request body was not structured correctly."
}
Drop all Employee properties from the system (if any exists).
[- {
- "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" The format of the response profile. More info about adding your Skill Clusters can be found in the tutorials. Example: response_format=list |
{- "external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "num_skill_events": 5,
- "skills": [
- {
- "skill": "Machine Learning",
- "validation_state": "suggested"
}, - {
- "skill": "Python",
- "validation_state": "validated"
}, - {
- "skill": "Tensorflow",
- "validation_state": "suggested"
}
]
}
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
) Array of objects (SkillWithRequiredHasSkillArray) The skills contained in this profile. |
{- "skills": [
- {
- "skill": "Machine Learning",
- "has_skill": true
}, - {
- "skill": "Python",
- "has_skill": true
}, - {
- "skill": "Tensorflow",
- "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 .
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.
{- "entity_type": "Employee",
- "entity_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "metric_name": "employability",
- "metric_value": 0.8,
- "last_update": "2020-09-01T11:45:49Z"
}
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) or non_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
}, - {
- "weight": "non_desired_functions",
- "value": 0.08
}
]
}
{- "entity_type": "Employee",
- "entity_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
- "metric_name": "employability",
- "metric_value": 0.8,
- "last_update": "2020-09-01T11:45:49Z"
}
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"
}
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": "non_desired_functions",
- "value": 0.08
}, - {
- "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
}
]
}
[- {
- "count": 3,
- "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 pro