> ## 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.

# Entities

We built the Skill Engine API around a domain-driven philosophy: our goal is to
express functionality in the same language that our customers and end-users
speak. That way, the Skill Engine API maps onto your use case with the least
amount of friction. This page describes the available entity types and their
meaning and functionality.

<div class="attention">
  Throughout this developer portal, entity names are capitalized. For example,
  'Employee' indicates an Employee entity.
</div>

The Skill Engine API supports four entity types:

* <b>Employee</b>: represents either a person within your organization or a
  candidate within the job market.
* <b>Vacancy</b>: corresponds to job postings or open positions.
* <b>Course</b>: any internal or external training or education.
* <b>Occupation</b>: a generic role or function defined by your organization.

```mermaid theme={null}
 classDiagram
      Entity <|-- Employee
      Entity <|-- Vacancy
      Entity <|-- Course
      Entity <|-- Occupation
      Entity : external_id
      Entity : custom_properties
      Entity : skill_profile
      class Employee{
          location
          languages
          desired_functions
          skill_events
          ...
      }
      class Vacancy{
          location
          job_title
          job_description
          ...
      }
      class Course{
          course_title
          course_description
          ...
      }
      class Occupation{
          occupation_name
          occupation_description
          occupation_titles
          ...
      }
```

All of these entities share the following properties:

1. An entity in the Skill Engine API corresponds to the same one in your
   organization and is mapped one-on-one with them. For example, each Employee
   entity links to one (and only one) employee in your core systems.
2. An entity has a single and <i>meaningful</i> skill profile.
3. An entity's lifecycle is explicitly managed: you are in control of its
   continued existence.
4. An entity can have <b>custom properties</b> that are used for filtering,
   enhanced matching, and advanced querying.

## Flexible Data Models

We know that your use case may require unique business logic. We accommodated
the Skill Engine to integrate your logic on demand. It has customization
built-in, rather than worrying about it after the fact.

Do you want to use properties like work regimes, country preferences, or
ratings? Custom properties will be your go-to tool. Head over to
the [custom properties tutorial](/tutorials/custom-properties/overview) to get
started with your desired custom properties. We also provide our customers with
integration support, so if you want to learn even more about mapping your use
case, don't hesitate to get in touch!
