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

# Jobs

## Jobs datasource specification

This page describes the file-based datasource specification for syncing **Jobs**
and their **Vacancies** into TechWolf when no standardized connector (such as
Workday or SAP SuccessFactors) is available. It defines the files TechWolf
expects, the fields within each file, and which fields are required.

Use this specification when a customer exports Job data from any source system
to flat files. As long as the data can be shaped into the files below, TechWolf
can ingest it.

Jobs are referenced by Employees: the Employee Baseline points to a Job through
`assigned_position`, and Internal Work History points to a Job through `job_id`
(see the
[Employees](/integrations/datasource-integrations/non-standard-datasource-integrations/employees)
specification). A Job referenced there must be synced through the Job
Information file below.

For the broader picture of how file-based integrations work and how they compare
to API-based connectors, see
[Key concepts](/integrations/datasource-integrations/datasources-key-concepts).

### Technical data flow

Files are delivered to TechWolf over **SFTP** and land in an **AWS S3** bucket,
from where the file-based integration ingests them.

1. The customer (or their source system) exports the Job files described below
   to a customer-hosted SFTP server.
2. TechWolf connects to that SFTP server, pulls the files, and writes them to
   the customer's S3 bucket under the file-based ingest prefix.
3. The file-based integration reads the files from S3 and syncs the data into
   the TechWolf SkillEngine API.

To configure the SFTP server and the folder mappings TechWolf pulls from, see
[Self-service SFTP setup](/integrations/reference/sftp/self-service-setup). For
the S3 layout and naming conventions, see
[File Organization](/integrations/reference/file-structure).

Each file has a fixed location and naming pattern on S3. The base path is:

```
s3://techwolf-<customer>/production/external/input/integrations/file_based/
```

<Note>
  During the testing phase, the `staging` environment path is used instead:
  `s3://techwolf-<customer>/staging/external/input/integrations/file_based/`.
</Note>

### Reading the field tables

Each field is annotated in the **Key** column to indicate its role:

* **Primary key** — the external ID of the file; uniquely identifies the entity.
* **Foreign key** — references the primary key of another entity, linking the
  two.

Fields without a Key annotation are TechWolf data fields used for skill
inference or context, not identifiers.

### Job Information

The baseline Job file. **Required.** Contains the Jobs (and their architecture
hierarchy) that TechWolf infers skills for.

File on S3:
`.../file_based/TechWolf_Job_Information/TechWolf_Job_Information_[yyyy][MM][dd]_[HH][mm][ss].csv`

| TechWolf field                        | Required | Key         | Notes                                          |
| ------------------------------------- | -------- | ----------- | ---------------------------------------------- |
| job\_id                               | Required | Primary key | External ID of the file. ID of the Job.        |
| job\_title                            | Required |             |                                                |
| job\_description                      | Optional |             |                                                |
| skill\_requirements                   | Optional |             |                                                |
| job\_hierarchy\_level\_1              | Optional |             | Top level of the Job architecture.             |
| job\_hierarchy\_level\_2              | Optional |             |                                                |
| job\_hierarchy\_level\_2\_ID          | Optional |             |                                                |
| job\_hierarchy\_level\_2\_description | Optional |             |                                                |
| active                                | Optional |             | Job assumed to be active if no value is given. |

### Job Vacancies

Open Vacancies (Job Requisitions) linked to Jobs. **Highly recommended.**
Vacancy text is a strong signal for skill inference.

File on S3:
`.../file_based/TechWolf_Job_Requisition/TechWolf_Job_Requisition_[yyyy][MM][dd]_[HH][mm][ss].csv`

| TechWolf field             | Required | Key         | Notes                                                |
| -------------------------- | -------- | ----------- | ---------------------------------------------------- |
| requisition\_id            | Required | Primary key | External ID of the file. ID of the Vacancy.          |
| job\_id                    | Optional | Foreign key | Job linked to the Vacancy, used for skill inference. |
| job\_title                 | Required |             |                                                      |
| job\_description           | Required |             |                                                      |
| job\_requisition\_inactive | Optional |             |                                                      |
