> ## Documentation Index
> Fetch the complete documentation index at: https://developers.techwolf.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Skill Events

The skill set of an employee is not static. Over time, a person will work on
many projects and topics, follow courses, and change positions. Past experiences
become irrelevant compared to newer ones. The concept of Skill Events allows
adding those.

<img src="https://mintcdn.com/techwolf/7TXsvK-gPA_qHtHt/images/skills_timeline.png?fit=max&auto=format&n=7TXsvK-gPA_qHtHt&q=85&s=ab6bddd67efdde88fdfb279cd9e8be81" alt="Skills Timeline" width="960" height="540" data-path="images/skills_timeline.png" />

Skill Events can be added via a `POST` call to the
`/employees/{employee_external_id}/skill_events`
<a href="/reference/latest/Employees/SkillEvents/post-employees-employee-external-id-skill-events" target="_blank">endpoint</a>.
There are currently 11 event types supported, which all have different `content`
in the request body. For example, take Employee 101 with the following history:

* Graduated “Computer Science” in 2018
* Worked as a “Software Developer” from 2018-2020 & afterwards started a job as
  “Product Owner”
* Took a course on “Agile & Scrum” in 2021

Adding these events to the Employee can by calling
`/employees/101/skill_events?language=auto` with the following bodies:

```JSON theme={null}
{
  "external_id": "degree-101-1",
  "event_type": "education_history",
  "timestamp": "2018-07-01",
  "source": "oracle",
  "content": {
    "degree_name": "Computer Science"
  }
}
```

```JSON theme={null}
{
  "external_id": "working-history-101-1",
  "event_type": "working_history",
  "timestamp": "2020-05-02",
  "source": "oracle",
  "content":
  {
    "start_date": "2018-09-01",
    "end_date": "2020-05-02",
    "job_title": "Software Developer",
    "job_description": "Tools: Scala, Git, Docker"
  }
}
```

```JSON theme={null}
{
  "external_id": "working-history-101-2",
  "event_type": "working_history",
  "timestamp": "2020-05-02",
  "source": "oracle",
  "content": {
    "start_date": "2020-05-02",
    "job_title": "Product Owner",
    "job_description": "-"
  }
}
```

```JSON theme={null}
{
  "external_id":"learning-101-1",
  "event_type": "learning",
  "timestamp": "2021-05-01",
  "source": "coursera",
  "content": {
    "learning_title": "Agile & Scrum",
    "learning_description": "In this course you learn the fundamentals of Agile:stand-ups, retrospectives, sprints, …"
  }
}
```

When adding a Skill Event, it automatically contributes to the Skill Profile -
which is why you should only send completed events. (i.e. when a certificate is
obtained or a goal is accomplished). Requesting the Skill Cluster profile of this
Employee can via a `GET` call to the
`/employees/101/skill_profile?response_format=skill_clusters`
<a href="/reference/latest/Employees/EmployeeProfile/get-employees-external-id-skill-profile" target="_blank">endpoint</a>.
The response body will be as follows:

```JSON theme={null}
{
  "external_id": "a3903505-eb84-42dc-a79f-5e7b1fe897b7",
  "num_skill_events": 5,
  "skill_clusters": [{
    "skill_cluster_name": "Programming",
    "proficiency_level": 2
  }, {
    "skill_cluster_name": "Business Intelligence",
    "proficiency_level": 3
  }]
}
```
