Competency Framework

Adding Competencies

The essential first step of any flow with the Skill Engine API is creating the Entities within the system.

For example, to create a Competency you can simply submit a POST request to /competencies:

{
  "external_id": "CP-001",
  "competency_name": "Data Science Modelling",
  "competency_description": "The ability to use machine learning algorithms to extract value from data"
}

The sequence diagram below shows the communication steps:

Your SystemSkill Engine APIPOST /competenciesSkill Extraction✅ HTTP 204 No ContentSkill Extraction Failed❌ HTTP 422 Unprocessable Entity❌ HTTP 409 Conflictalt[Creation Successful][Creation Failed][Entity Already Exists]Your SystemSkill Engine API

After the initial creation, the Competency can be updated by sending a PATCH request to /competencies/CP-001. More information can be found at the endpoint specification.

The lifecycle of each Entity is managed explicitly, meaning that you cannot overwrite an existing Entity with a POST message. To update an Entity, you can execute a PATCH call at its specific endpoint.

Providing Profile Feedback

After creating Competency CP-001, you can check its skill profile via a GET request to /competencies/CP-001/skill_profile:

{
    "external_id": "CP-001",
    "skills": [
        {
            "skill": "Manage Data",
            "score": 3.3977703385459996
        },
        {
            "skill": "Machine Learning Algorithms",
            "score": 3.4488449834888506
        },
        {
            "skill": "Algorithms",
            "score": 3.077467422973527
        }
    ]
}

If you think that this skill profile is not complete, you can add or remove skills by sending a PUT request to the /competencies/CP-001/skill_profile endpoint.

Note that the body of this feedback message replaces the existing skill profile - so for example if you want to replace the skill Algorithms with Python, you can send a PUT request with query parameter feedback_format="skills" and the following body:

{
    "skills": [
        {
            "skill": "Manage Data",
            "score": 3.3977703385459996
        },
        {
            "skill": "Machine Learning Algorithms",
            "score": 3.4488449834888506
        },
        {
            "skill": "Python",
            "score": 3.0
        }
    ]
}