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

# Linking Vacancies

External Companies in the Skill Engine API are modeled by linking previous and
current hiring behaviour, as well as desired functions to them. This is
implemented through Vacancy entities, leveraging the `company` and `active`
fields available for this entity type.

## Hiring History

A first option is to link real Vacancies to an External Company. These Vacancies
can include both positions that are currently open and historical Vacancy
advertisements. It's possible to link a Vacancy while
[creating or updating](/tutorials/vacancy-matching/entity-creation/) it, by
specifying the `external_id` of the External Company via the `company` attribute
in the request body of the Vacancy.

If a position is currently open, and you want it to be taken into account in the
overall [vacancy matching](/tutorials/vacancy-matching/overview/), the `active`
attribute of the Vacancy needs to be set to `true`. If a position is no longer
open, you can create or update the entity to set the same field to `false`,
excluding it from the same process. Inactive vacancies in the Skill Engine API
are currently only used in the context of matching with External Companies.

## Desired Functions

If you don't have Vacancies on file for an External Company, but you do have
information about their typical hiring needs through a different way, you can
integrate this information into the Skill Engine API through the use of
<i>desired functions</i>.

You can add these functions by submitting their title to the
`companies/<external_id>/desired_functions` endpoint. This endpoint will create
a new Vacancy entity for every submitted title, linking each to the External
Company and setting the Vacancy location to the same values as for the External
Company. As these entities do not represent currently open Vacancies, their
`active` field is set to `false` by default, making sure that they do are not
involved in the traditional vacancy matching.
