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

# Gupy as a data source

> Bring data from Gupy to your Lakehouse.

Gupy is a Brazilian recruitment platform (ATS) used to open jobs, receive applications, evaluate candidates and register hires. The connector extracts data from the Gupy Public API (api.gupy.io) so you can analyze your whole hiring funnel in your Lakehouse: the jobs you open, the candidatures they receive with the candidate's profile, the offers you send and what happens to each hire afterwards.

## Configuring Gupy as a Source

In the [Sources](https://app.nekt.ai/sources) tab, click on the "Add source" button located on the top right of your screen. Then, select the Gupy option from the list of connectors.

Click **Next** and you'll be prompted to add your access.

### 1. Add account access

You'll need a Gupy access token so Nekt can read your data. Sign in to the Gupy panel as an administrator, open **Settings > Tokens Generation** and create a new token with read permission for the data you want to extract. The token belongs to the company, so a single token covers every job and candidature of your account.

<Warning>The Gupy public API is only available on the **Premium** and **Enterprise** plans. If the Tokens Generation screen is not available in your panel, talk to your Customer Success contact at Gupy — or open a ticket with their support — to have the API enabled before setting up this source.</Warning>

The following configurations are available:

* **Access token**: your Gupy access token. It is sent as a Bearer token on every request. This field is required.

* **Initial sync date**: (Optional) the oldest candidature to extract, by creation date. Gupy offers no date filter on its endpoints, so this cut-off is applied while reading the data: it limits how much data is written to your Lakehouse, not how long the extraction takes. Leave it empty to bring your whole history.

* **Job statuses**: (Optional) a comma-separated list of job statuses to read, for example `published, closed`. Only jobs in these statuses are extracted, along with their candidatures — a good way to speed up the extraction on companies with a long hiring history. Leave it empty to read every job. Allowed values: `draft`, `waiting_approval`, `approved`, `disapproved`, `published`, `frozen`, `closed`, `canceled`.

Once you're done, click **Next**.

### 2. Select streams

Choose which data streams you want to sync. For faster extractions, select only the streams that are relevant to your analysis. You can select entire groups of streams or pick specific ones.

> Tip: The stream can be found more easily by typing its name.

<Warning>**Application comments**, **Application rating criteria** and **Job offers** are read one candidature at a time, because that is the only way Gupy exposes them. On companies with many candidatures they are by far the slowest part of the extraction — select them only when you need that data.</Warning>

Select the streams and click **Next**.

### 3. Configure data streams

Customize how you want your data to appear in your catalog. Select the desired layer where the data will be placed, a folder to organize it inside the layer, a name for each table (which will effectively contain the fetched data) and the type of sync.

* **Layer**: choose between the existing layers on your catalog. This is where you will find your new extracted tables as the extraction runs successfully.
* **Folder**: a folder can be created inside the selected layer to group all tables being created from this new data source.
* **Table name**: we suggest a name, but feel free to customize it. You have the option to add a **prefix** to all tables at once and make this process faster!
* **Sync Type**: no Gupy endpoint accepts a "last updated" filter, so every stream of this connector is extracted as **FULL\_TABLE** — each run brings the current state of your data, including status changes on candidatures created long ago.

Once you are done configuring, click **Next**.

### 4. Configure data source

Describe your data source for easy identification within your organization, not exceeding 140 characters.

To define your [Trigger](https://docs.nekt.com/get-started/core-concepts/triggers), consider how often you want data to be extracted from this source. This decision usually depends on how frequently you need the new table data updated (every day, once a week, or only at specific times).

Optionally, you can define some additional settings:

* Configure Delta Log Retention and determine for how long we should store old states of this table as it gets updated. Read more about this resource [here](https://docs.nekt.com/get-started/core-concepts/resource-control).
* Determine when to execute an **Additional [Full Sync](https://docs.nekt.com/get-started/core-concepts/types-of-sync#additional-full-sync)**.

Once you are ready, click **Next** to finalize the setup.

### 5. Check your new source

You can view your new source on the [Sources](https://app.nekt.ai/sources) page. If needed, manually trigger the source extraction by clicking on the arrow button. Once executed, your data will appear in your Catalog.

<Warning>For you to be able to see it on your [Catalog](https://app.nekt.ai/catalog), you need at least one successful source run.</Warning>

## Good to know

* **Candidate data comes with the candidature.** Gupy has no candidate endpoint of its own, so a candidate's profile — name, contact, address, schooling, work experience — is returned attached to their application and is extracted in the **Applications** stream, in the `candidate_` columns. The same person applying to three jobs appears in three rows, one per candidature.
* **Extraction cost grows with the number of jobs.** Candidatures and the other per-job streams are read one job at a time, so narrowing the **Job statuses** setting is the most effective way to make a large account sync faster.
* **Permissions follow the token.** If a module is not enabled for your company, or the token was created without permission for it, the corresponding stream is skipped with a warning in the run log instead of failing the whole extraction.
* **Nested data is stored as JSON text.** Fields that hold a list of objects — a candidate's work experience and academic background, the answers to a job's additional questions, a job's custom fields and position codes, the delivery history of an offer — are stored as JSON strings, so you can parse them in a Query without your table schema changing between runs.
* **Rate limits are respected automatically.** Gupy allows 500 requests per minute per IP address. The connector backs off and retries when it is throttled, and pauses when Gupy reports the request window is nearly spent, so a large extraction slows down instead of failing.

## Streams and Fields

Below you'll find all available data streams from Gupy and their corresponding fields:

<AccordionGroup>
  <Accordion title="Jobs">
    Job openings (vagas) of the company. This is the entry point of the connector: the per-job and per-candidature streams are expanded from the jobs listed here.

    **Primary key:** `id` · **Sync type:** FULL\_TABLE

    | Field                        | Type     | Description                                                                                                                                      |
    | :--------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------- |
    | `id`                         | Integer  | Unique identifier of the job in Gupy.                                                                                                            |
    | `code`                       | String   | Job posting code shown in the platform (e.g. 999-99999).                                                                                         |
    | `name`                       | String   | Name of the job opening (e.g. Programador Node.js).                                                                                              |
    | `status`                     | String   | Current status of the job: draft, waiting\_approval, approved, disapproved, published, frozen, closed or canceled.                               |
    | `type`                       | String   | Contract type of the opening (e.g. vacancy\_type\_effective, vacancy\_type\_internship, vacancy\_type\_apprentice, vacancy\_type\_talent\_pool). |
    | `publication_type`           | String   | Whether the job is published externally or only internally (external, internal).                                                                 |
    | `num_vacancies`              | Integer  | Number of positions available in this job.                                                                                                       |
    | `department_id`              | Integer  | Identifier of the department that owns the job.                                                                                                  |
    | `department_name`            | String   | Name of the department that owns the job.                                                                                                        |
    | `role_id`                    | Integer  | Identifier of the role (cargo) of the job.                                                                                                       |
    | `role_name`                  | String   | Name of the role (cargo) of the job.                                                                                                             |
    | `branch_id`                  | Integer  | Identifier of the company branch of the job.                                                                                                     |
    | `branch_name`                | String   | Name of the company branch of the job.                                                                                                           |
    | `description`                | String   | Public description of the job.                                                                                                                   |
    | `responsibilities`           | String   | Main responsibilities and attributions of the job.                                                                                               |
    | `prerequisites`              | String   | Requirements and skills expected from candidates.                                                                                                |
    | `additional_information`     | String   | Additional information shown in the posting.                                                                                                     |
    | `notes`                      | String   | Internal notes about the job, not shown to candidates.                                                                                           |
    | `disabilities`               | Boolean  | Whether the job is available for people with disabilities (PcD).                                                                                 |
    | `address_country`            | String   | Country of the job's work location.                                                                                                              |
    | `address_country_short_name` | String   | Country abbreviation of the work location.                                                                                                       |
    | `address_state`              | String   | State of the job's work location.                                                                                                                |
    | `address_state_short_name`   | String   | State abbreviation of the work location.                                                                                                         |
    | `address_city`               | String   | City of the job's work location.                                                                                                                 |
    | `address_street`             | String   | Street of the job's work location.                                                                                                               |
    | `address_district`           | String   | District of the job's work location.                                                                                                             |
    | `address_complements`        | String   | Address complement of the work location.                                                                                                         |
    | `address_number`             | String   | Street number of the work location.                                                                                                              |
    | `address_zip_code`           | String   | Postal code (CEP) of the work location.                                                                                                          |
    | `address_latitude`           | Number   | Latitude of the work location.                                                                                                                   |
    | `address_longitude`          | Number   | Longitude of the work location.                                                                                                                  |
    | `remote_working`             | Boolean  | Whether the job is remote. Being deprecated by Gupy in favour of workplace\_type.                                                                |
    | `workplace_type`             | String   | Workplace model of the job: hybrid, on-site or remote.                                                                                           |
    | `reason`                     | String   | Why the position was opened: staff\_increase or staff\_replacement.                                                                              |
    | `image`                      | String   | URL of the image used on the job page.                                                                                                           |
    | `social_media_image`         | String   | URL of the image used when sharing on social media.                                                                                              |
    | `application_deadline`       | Date     | Last date on which candidates can apply.                                                                                                         |
    | `career_page_id`             | Integer  | Identifier of the career page the job is published on.                                                                                           |
    | `career_page_name`           | String   | Name of the career page the job is published on.                                                                                                 |
    | `vacancy_codes`              | String   | Position codes associated with the job (JSON array of objects with id, code, status and error\_message).                                         |
    | `manager_id`                 | Integer  | User identifier of the hiring manager.                                                                                                           |
    | `manager_name`               | String   | Name of the hiring manager.                                                                                                                      |
    | `manager_email`              | String   | Email address of the hiring manager.                                                                                                             |
    | `recruiter_id`               | Integer  | User identifier of the recruiter in charge of the job.                                                                                           |
    | `recruiter_name`             | String   | Name of the recruiter in charge of the job.                                                                                                      |
    | `recruiter_email`            | String   | Email address of the recruiter in charge of the job.                                                                                             |
    | `hiring_deadline`            | Date     | Deadline for hiring a candidate for this job.                                                                                                    |
    | `salary_currency`            | String   | Currency of the salary range offered (e.g. R\$).                                                                                                 |
    | `salary_starts_at`           | Number   | Lower bound of the salary range offered.                                                                                                         |
    | `salary_ends_at`             | Number   | Upper bound of the salary range offered.                                                                                                         |
    | `custom_fields`              | String   | Values of the company's custom job fields (JSON array of objects with id, label, value, type, order, required and enum).                         |
    | `job_rating_criterias`       | String   | Rating criteria defined for the job (JSON array of objects with job\_id and name).                                                               |
    | `cancel_reason`              | String   | Reason the job was cancelled (e.g. budget\_review, organizational\_restructuring, other).                                                        |
    | `cancel_reason_notes`        | String   | Free-text note explaining the cancellation when cancel\_reason is 'other'.                                                                       |
    | `canceled_by_email`          | String   | Email address of the user who cancelled the job.                                                                                                 |
    | `cancel_at`                  | DateTime | Timestamp when the job was cancelled.                                                                                                            |
    | `created_at`                 | DateTime | Timestamp when the job was created.                                                                                                              |
    | `updated_at`                 | DateTime | Timestamp when the job was last updated.                                                                                                         |
    | `published_at`               | DateTime | Timestamp when the job was published.                                                                                                            |
    | `approved_at`                | DateTime | Timestamp when the job was approved.                                                                                                             |
    | `disapproved_at`             | DateTime | Timestamp when the job was disapproved.                                                                                                          |
    | `closed_at`                  | DateTime | Timestamp when the job was closed.                                                                                                               |
    | `last_freeze_date`           | DateTime | Timestamp when the job was last frozen.                                                                                                          |
    | `last_un_freeze_date`        | DateTime | Timestamp when the job was last unfrozen.                                                                                                        |
    | `creator_id`                 | Integer  | User identifier of whoever created the job.                                                                                                      |
    | `creator_name`               | String   | Name of whoever created the job.                                                                                                                 |
    | `creator_email`              | String   | Email address of whoever created the job.                                                                                                        |
    | `video_url`                  | String   | URL of a video presenting the job.                                                                                                               |
    | `approvers`                  | Array    | User identifiers that must approve the job before it can be published.                                                                           |
    | `workflow_request_method`    | String   | How approvals are requested: all\_at\_once or in\_order.                                                                                         |
  </Accordion>

  <Accordion title="Applications">
    Candidatures (candidaturas) of every job, with the candidate's profile unpacked into `candidate_` columns. Gupy has no candidate endpoint of its own, so this stream is where candidate data comes from.

    **Primary key:** `id` · **Sync type:** FULL\_TABLE

    | Field                                   | Type     | Description                                                                                                                                                                |
    | :-------------------------------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
    | `id`                                    | Integer  | Unique identifier of the application.                                                                                                                                      |
    | `job_id`                                | Integer  | Identifier of the job the candidate applied to.                                                                                                                            |
    | `job_name`                              | String   | Name of the job the candidate applied to.                                                                                                                                  |
    | `job_status`                            | String   | Status of the candidate's current step in the job.                                                                                                                         |
    | `score`                                 | Number   | Affinity score Gupy calculated between the candidate and the job.                                                                                                          |
    | `matching`                              | Number   | How well the candidate matches the company's culture, as calculated by Gupy.                                                                                               |
    | `source`                                | String   | Channel the candidate came from (e.g. google, linkedin, indeed, referral, company\_website, other).                                                                        |
    | `source_other`                          | String   | Free-text description of the source when it is 'other'.                                                                                                                    |
    | `status`                                | String   | Current status of the application: in\_process, give\_up, reproved or hired.                                                                                               |
    | `current_step_id`                       | Integer  | Identifier of the step the candidate is currently in.                                                                                                                      |
    | `current_step_name`                     | String   | Name of the step the candidate is currently in.                                                                                                                            |
    | `is_company_employee`                   | Boolean  | Whether the candidate is already an employee (internal recruitment).                                                                                                       |
    | `employee_email`                        | String   | Corporate email of the candidate when they are an employee.                                                                                                                |
    | `registration_complete`                 | Boolean  | Whether the candidate finished the registration step of the application.                                                                                                   |
    | `referred`                              | Boolean  | Whether the candidate was referred by someone.                                                                                                                             |
    | `referred_by`                           | String   | Name of the person who referred the candidate.                                                                                                                             |
    | `referral_status`                       | String   | Status of the referral: pending, confirmed, rejected or unknown.                                                                                                           |
    | `feedback_sent`                         | Boolean  | Whether a feedback message was sent to the candidate.                                                                                                                      |
    | `disapproval_reason`                    | String   | Coded reason the candidate was rejected (e.g. insufficient\_knowledge, fulfilled\_vacancy).                                                                                |
    | `disapproval_reason_notes`              | String   | Free-text note explaining the rejection when the reason is 'other\_reason'.                                                                                                |
    | `hiring_type`                           | String   | How the candidate was hired: employee\_admission, employee\_readmission, employee\_reintegration, unrelated\_worker\_hiring or internal\_transfer.                         |
    | `hiring_date`                           | DateTime | Date the candidate was hired.                                                                                                                                              |
    | `partner_name`                          | String   | Job board or partner that originated the application (e.g. linkedin, indeed, catho).                                                                                       |
    | `tags`                                  | Array    | Tags recruiters added to this application (e.g. Proativo, Comunicativo).                                                                                                   |
    | `additional_questions`                  | String   | Answers the candidate gave to the job's additional questions (JSON array of objects with question and answer).                                                             |
    | `created_at`                            | DateTime | Timestamp when the application was created.                                                                                                                                |
    | `updated_at`                            | DateTime | Timestamp when the application was last updated.                                                                                                                           |
    | `ended_at`                              | DateTime | Timestamp the application ended: rejection date when reproved, withdrawal date when give\_up, hiring date when hired.                                                      |
    | `candidate_id`                          | Integer  | Unique identifier of the candidate in Gupy.                                                                                                                                |
    | `candidate_name`                        | String   | First name of the candidate.                                                                                                                                               |
    | `candidate_last_name`                   | String   | Last name of the candidate.                                                                                                                                                |
    | `candidate_email`                       | String   | Email address of the candidate.                                                                                                                                            |
    | `candidate_identification_document`     | String   | Identification document of the candidate (CPF or equivalent).                                                                                                              |
    | `candidate_disabilities`                | Boolean  | Whether the candidate declared a disability.                                                                                                                               |
    | `candidate_disability_types`            | Array    | Types of disability declared by the candidate.                                                                                                                             |
    | `candidate_birthdate`                   | Date     | Date of birth of the candidate.                                                                                                                                            |
    | `candidate_gender`                      | String   | Gender declared by the candidate: male, female, other or notInformed.                                                                                                      |
    | `candidate_address_zip_code`            | String   | Postal code (CEP) of the candidate's address.                                                                                                                              |
    | `candidate_address_number`              | String   | Street number of the candidate's address.                                                                                                                                  |
    | `candidate_address_street`              | String   | Street of the candidate's address.                                                                                                                                         |
    | `candidate_address_city`                | String   | City the candidate lives in.                                                                                                                                               |
    | `candidate_address_state`               | String   | State the candidate lives in.                                                                                                                                              |
    | `candidate_address_state_short_name`    | String   | Abbreviation of the candidate's state.                                                                                                                                     |
    | `candidate_address_country`             | String   | Country the candidate lives in.                                                                                                                                            |
    | `candidate_address_country_short_name`  | String   | Abbreviation of the candidate's country.                                                                                                                                   |
    | `candidate_mobile_number`               | String   | Mobile phone number of the candidate.                                                                                                                                      |
    | `candidate_phone_number`                | String   | Landline phone number of the candidate.                                                                                                                                    |
    | `candidate_areas_of_interest`           | Array    | Professional areas the candidate declared interest in.                                                                                                                     |
    | `candidate_schooling`                   | String   | Highest education level of the candidate (e.g. elementary\_school, high\_school).                                                                                          |
    | `candidate_schooling_status`            | String   | Status of that education level: complete, in\_progress or incomplete.                                                                                                      |
    | `candidate_academic_qualification`      | String   | Academic background of the candidate (JSON array of objects with id, formation, institution, course, status, start\_month, start\_year, end\_month and end\_year).         |
    | `candidate_work_experience`             | String   | Professional experience of the candidate (JSON array of objects with id, role, company\_name, activities\_performed, start\_month, start\_year, end\_month and end\_year). |
    | `candidate_languages`                   | String   | Languages the candidate speaks (JSON array of objects with language and level).                                                                                            |
    | `manual_candidate_id`                   | Integer  | Identifier of the candidate when they were added manually by a recruiter.                                                                                                  |
    | `manual_candidate_name`                 | String   | First name of the manually added candidate.                                                                                                                                |
    | `manual_candidate_last_name`            | String   | Last name of the manually added candidate.                                                                                                                                 |
    | `manual_candidate_email`                | String   | Email of the manually added candidate.                                                                                                                                     |
    | `manual_candidate_mobile_number`        | String   | Mobile phone number of the manually added candidate.                                                                                                                       |
    | `manual_candidate_linkedin_profile_url` | String   | LinkedIn profile URL of the manually added candidate.                                                                                                                      |
    | `manual_candidate_insertion_source`     | String   | How the recruiter sourced the candidate: candidate\_active\_contact, events, hunting, market\_referral\_consulting or employee\_referral.                                  |
  </Accordion>

  <Accordion title="Job steps">
    Selection steps (etapas) configured for each job. Read one job per request.

    **Primary key:** `job_id` · `id` · **Sync type:** FULL\_TABLE

    | Field         | Type     | Description                                                                                                       |
    | :------------ | :------- | :---------------------------------------------------------------------------------------------------------------- |
    | `id`          | Integer  | Unique identifier of the step.                                                                                    |
    | `job_id`      | Integer  | Identifier of the job the step belongs to.                                                                        |
    | `name`        | String   | Name of the step as shown in the platform (e.g. Cadastro).                                                        |
    | `description` | String   | Description of what happens in this step.                                                                         |
    | `type`        | String   | Kind of step: registration, online, offline, pre\_hiring or hiring.                                               |
    | `category`    | String   | Category of the step: evaluation, hiring, interview, offer, pre-hiring, pre-interview, registration or screening. |
    | `order`       | Integer  | Position of the step in the selection flow.                                                                       |
    | `end_date`    | Date     | Last date on which applications are accepted in this step.                                                        |
    | `online_type` | String   | For online steps, what it consists of: customAssessment, providerAssessment or video.                             |
    | `created_at`  | DateTime | Timestamp when the step was created.                                                                              |
    | `updated_at`  | DateTime | Timestamp when the step was last updated.                                                                         |
  </Accordion>

  <Accordion title="Job vacancies">
    Position codes (códigos de vaga) attached to each job. Read one job per request. The same codes are also in the `vacancy_codes` column of Jobs.

    **Primary key:** `job_id` · `id` · **Sync type:** FULL\_TABLE

    | Field           | Type     | Description                                                      |
    | :-------------- | :------- | :--------------------------------------------------------------- |
    | `id`            | Integer  | Unique identifier of the position code.                          |
    | `job_id`        | Integer  | Identifier of the job the position code belongs to.              |
    | `code`          | String   | Position code as registered by the company (e.g. COD123).        |
    | `status`        | String   | Validation status of the code: valid, invalid, error or waiting. |
    | `error_message` | String   | Message explaining the problem when status is 'error'.           |
    | `created_at`    | DateTime | Timestamp when the position code was created.                    |
    | `updated_at`    | DateTime | Timestamp when the position code was last updated.               |
  </Accordion>

  <Accordion title="Job classifiers">
    Users that approve or qualify candidates in each job. Read one job per request.

    **Primary key:** `job_id` · `id` · **Sync type:** FULL\_TABLE

    | Field       | Type    | Description                                               |
    | :---------- | :------ | :-------------------------------------------------------- |
    | `id`        | Integer | Unique identifier of the classifier assignment.           |
    | `job_id`    | Integer | Identifier of the job the classifier belongs to.          |
    | `type`      | String  | Role of the classifier in the job: approver or qualifier. |
    | `user_id`   | Integer | Identifier of the company user acting as classifier.      |
    | `user_name` | String  | Name of the company user acting as classifier.            |
  </Accordion>

  <Accordion title="Job custom field values">
    Value each job filled in for the company's custom job fields, one row per field. Read one job per request. The same values are also in the `custom_fields` column of Jobs.

    **Primary key:** `job_id` · `id` · **Sync type:** FULL\_TABLE

    | Field      | Type    | Description                                                                        |
    | :--------- | :------ | :--------------------------------------------------------------------------------- |
    | `id`       | String  | Unique identifier of the custom field.                                             |
    | `job_id`   | Integer | Identifier of the job the value belongs to.                                        |
    | `label`    | String  | Label of the custom field as shown when editing the job.                           |
    | `value`    | String  | Value filled in for this job, serialized as JSON because its type varies by field. |
    | `type`     | String  | Data type of the field: select, multiSelect, text, boolean, number, date or time.  |
    | `order`    | Integer | Position of the field in the job edit form.                                        |
    | `required` | Boolean | Whether filling this field is mandatory.                                           |
    | `enum`     | Array   | Options available for select and multiSelect fields.                               |
  </Accordion>

  <Accordion title="Application comments">
    Comments recruiters left on a candidate's timeline. Read one candidature per request.

    **Primary key:** `application_id` · `id` · **Sync type:** FULL\_TABLE

    | Field            | Type     | Description                                               |
    | :--------------- | :------- | :-------------------------------------------------------- |
    | `id`             | Integer  | Unique identifier of the comment.                         |
    | `application_id` | Integer  | Identifier of the application the comment belongs to.     |
    | `job_id`         | Integer  | Identifier of the job the application belongs to.         |
    | `user_id`        | Integer  | Identifier of the company user who wrote the comment.     |
    | `text`           | String   | Text of the comment.                                      |
    | `hidden`         | Boolean  | Whether the comment is private to its author and the API. |
    | `created_at`     | DateTime | Timestamp when the comment was created.                   |
    | `updated_at`     | DateTime | Timestamp when the comment was last updated.              |
  </Accordion>

  <Accordion title="Application rating criteria">
    Ratings each recruiter gave a candidate on the job's evaluation criteria, one row per rating. Read one candidature per request.

    **Primary key:** `id` · **Sync type:** FULL\_TABLE

    | Field                  | Type     | Description                                         |
    | :--------------------- | :------- | :-------------------------------------------------- |
    | `id`                   | Integer  | Unique identifier of the rating given by a user.    |
    | `rating_criteria_id`   | Integer  | Identifier of the job criteria that was rated.      |
    | `rating_criteria_name` | String   | Name of the job criteria that was rated.            |
    | `application_id`       | Integer  | Identifier of the application that was rated.       |
    | `candidate_id`         | Integer  | Identifier of the candidate that was rated.         |
    | `job_id`               | Integer  | Identifier of the job the application belongs to.   |
    | `user_id`              | Integer  | Identifier of the company user who gave the rating. |
    | `rating`               | Integer  | Score the user gave the candidate on this criteria. |
    | `created_at`           | DateTime | Timestamp when the rating was given.                |
    | `updated_at`           | DateTime | Timestamp when the rating was last updated.         |
  </Accordion>

  <Accordion title="Application hiring information">
    Hiring details recorded when a candidate is hired: salary, admission type and the position code filled. Only requested for candidatures whose status is `hired`.

    **Primary key:** `application_id` · **Sync type:** FULL\_TABLE

    | Field                  | Type     | Description                                                                                                                                        |
    | :--------------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------- |
    | `application_id`       | Integer  | Identifier of the hired candidate's application.                                                                                                   |
    | `job_id`               | Integer  | Identifier of the job the candidate was hired for.                                                                                                 |
    | `hiring_type`          | String   | How the candidate was hired: employee\_admission, employee\_readmission, employee\_reintegration, unrelated\_worker\_hiring or internal\_transfer. |
    | `hiring_date`          | DateTime | Date the candidate was hired.                                                                                                                      |
    | `job_vacancy_code_id`  | Integer  | Identifier of the position code (código de vaga) filled by this hiring.                                                                            |
    | `salary`               | Number   | Salary agreed for the hiring.                                                                                                                      |
    | `salary_currency_type` | String   | Currency of the agreed salary (R$, $, € or £).                                                                                                     |
  </Accordion>

  <Accordion title="Job offers">
    Job offers (propostas) sent to a candidate, with their delivery history. Read one candidature per request.

    **Primary key:** `id` · **Sync type:** FULL\_TABLE

    | Field                  | Type     | Description                                                                                                             |
    | :--------------------- | :------- | :---------------------------------------------------------------------------------------------------------------------- |
    | `id`                   | Integer  | Unique identifier of the job offer.                                                                                     |
    | `job_id`               | Integer  | Identifier of the job the offer belongs to.                                                                             |
    | `application_id`       | Integer  | Identifier of the application the offer was sent to.                                                                    |
    | `status`               | String   | Status of the offer: NOT\_SENT, SENT, VIEWED, ACCEPTED, REJECTED or CANCELED.                                           |
    | `sent_at`              | DateTime | Timestamp when the offer was sent to the candidate.                                                                     |
    | `answered_at`          | DateTime | Timestamp when the candidate answered the offer.                                                                        |
    | `reject_reason`        | String   | Reason the candidate gave for rejecting the offer.                                                                      |
    | `salary_amount`        | Number   | Salary proposed in the offer.                                                                                           |
    | `salary_currency`      | String   | Currency symbol of the proposed salary.                                                                                 |
    | `admission_date`       | DateTime | Planned admission date stated in the offer.                                                                             |
    | `admission_type`       | String   | Hiring type stated in the offer (e.g. employee\_admission, internal\_transfer).                                         |
    | `template_id`          | Integer  | Identifier of the email template used to write the offer.                                                               |
    | `body`                 | String   | Body of the offer with its placeholders already resolved.                                                               |
    | `created_by`           | String   | Name of the company user who created the offer.                                                                         |
    | `candidate_portal_url` | String   | URL where the candidate reads the offer. Empty while the offer is NOT\_SENT or CANCELED.                                |
    | `deliveries`           | String   | Delivery history of the offer, oldest first (JSON array of objects with id, channel, status, sent\_at and created\_at). |
    | `created_at`           | DateTime | Timestamp when the offer was created.                                                                                   |
    | `updated_at`           | DateTime | Timestamp when the offer was last updated.                                                                              |
  </Accordion>

  <Accordion title="Departments">
    Departments (departamentos) registered by the company.

    **Primary key:** `id` · **Sync type:** FULL\_TABLE

    | Field        | Type     | Description                                                              |
    | :----------- | :------- | :----------------------------------------------------------------------- |
    | `id`         | Integer  | Unique identifier of the department.                                     |
    | `name`       | String   | Name of the department (e.g. Recursos Humanos, Logística).               |
    | `code`       | String   | Code of the department in the company's own systems.                     |
    | `similar_to` | String   | Standard department Gupy maps this one to, used for market benchmarking. |
    | `created_at` | DateTime | Timestamp when the department was created.                               |
    | `updated_at` | DateTime | Timestamp when the department was last updated.                          |
  </Accordion>

  <Accordion title="Roles">
    Roles (cargos) registered by the company.

    **Primary key:** `id` · **Sync type:** FULL\_TABLE

    | Field        | Type     | Description                                                               |
    | :----------- | :------- | :------------------------------------------------------------------------ |
    | `id`         | Integer  | Unique identifier of the role.                                            |
    | `name`       | String   | Name of the role (e.g. Desenvolvedor, Estagiário).                        |
    | `code`       | String   | Code of the role in the company's own systems.                            |
    | `similar_to` | String   | Standard role Gupy maps this one to (e.g. analyst, coordinator, manager). |
    | `created_at` | DateTime | Timestamp when the role was created.                                      |
    | `updated_at` | DateTime | Timestamp when the role was last updated.                                 |
  </Accordion>

  <Accordion title="Branches">
    Branches (filiais) of the company, with their position in the organizational structure.

    **Primary key:** `id` · **Sync type:** FULL\_TABLE

    | Field                        | Type     | Description                                                                 |
    | :--------------------------- | :------- | :-------------------------------------------------------------------------- |
    | `id`                         | Integer  | Unique identifier of the branch.                                            |
    | `code`                       | String   | Code of the branch in the company's own systems.                            |
    | `name`                       | String   | Name of the branch.                                                         |
    | `path`                       | Array    | Position of the branch in the organizational structure, from the root down. |
    | `address_country`            | String   | Country of the branch address.                                              |
    | `address_country_short_name` | String   | Country abbreviation of the branch address.                                 |
    | `address_state`              | String   | State of the branch address.                                                |
    | `address_state_short_name`   | String   | State abbreviation of the branch address.                                   |
    | `address_city`               | String   | City of the branch address.                                                 |
    | `address_street`             | String   | Street of the branch address.                                               |
    | `address_number`             | String   | Street number of the branch address.                                        |
    | `address_zip_code`           | String   | Postal code (CEP) of the branch address.                                    |
    | `address_latitude`           | Number   | Latitude of the branch address.                                             |
    | `address_longitude`          | Number   | Longitude of the branch address.                                            |
    | `created_at`                 | DateTime | Timestamp when the branch was created.                                      |
    | `updated_at`                 | DateTime | Timestamp when the branch was last updated.                                 |
  </Accordion>

  <Accordion title="Career pages">
    Career pages (páginas de carreira) where the company publishes its jobs.

    **Primary key:** `id` · **Sync type:** FULL\_TABLE

    | Field                                        | Type     | Description                                                                  |
    | :------------------------------------------- | :------- | :--------------------------------------------------------------------------- |
    | `id`                                         | Integer  | Unique identifier of the career page.                                        |
    | `name`                                       | String   | Name of the career page.                                                     |
    | `subdomain`                                  | String   | Subdomain the career page is served on.                                      |
    | `job_boards_name`                            | String   | Company name used when the page's jobs are published on external job boards. |
    | `company_section_title`                      | String   | Title of the 'about the company' section.                                    |
    | `company_section_description`                | String   | Text of the 'about the company' section.                                     |
    | `jobs_section_title`                         | String   | Title of the jobs section.                                                   |
    | `jobs_section_description`                   | String   | Text of the jobs section.                                                    |
    | `social_media_section_title`                 | String   | Title of the contacts section.                                               |
    | `social_media_section_website_url`           | String   | URL of the company's website.                                                |
    | `social_media_section_facebook_url`          | String   | URL of the company's Facebook page.                                          |
    | `social_media_section_instagram_url`         | String   | URL of the company's Instagram profile.                                      |
    | `social_media_section_linkedin_url`          | String   | URL of the company's LinkedIn page.                                          |
    | `social_media_section_lovemondays_url`       | String   | URL of the company's Love Mondays profile.                                   |
    | `videos_section_title`                       | String   | Title of the videos section.                                                 |
    | `videos_section_description`                 | String   | Text of the videos section.                                                  |
    | `videos_section_videos`                      | Array    | URLs of the videos shown in the videos section.                              |
    | `candidate_testimonials_section_title`       | String   | Title of the candidate testimonials section.                                 |
    | `candidate_testimonials_section_description` | String   | Text of the candidate testimonials section.                                  |
    | `employee_testimonials_section_title`        | String   | Title of the employee testimonials section.                                  |
    | `employee_testimonials_section_description`  | String   | Text of the employee testimonials section.                                   |
    | `created_at`                                 | DateTime | Timestamp when the career page was created.                                  |
    | `updated_at`                                 | DateTime | Timestamp when the career page was last updated.                             |
  </Accordion>

  <Accordion title="Users">
    Company users: recruiters, hiring managers and everyone else with access to the Gupy panel.

    **Primary key:** `id` · **Sync type:** FULL\_TABLE

    | Field                  | Type     | Description                                                        |
    | :--------------------- | :------- | :----------------------------------------------------------------- |
    | `id`                   | Integer  | Unique identifier of the user.                                     |
    | `name`                 | String   | Full name of the user.                                             |
    | `email`                | String   | Email address the user signs in with.                              |
    | `department_id`        | Integer  | Identifier of the department the user belongs to.                  |
    | `role_id`              | Integer  | Identifier of the role the user holds.                             |
    | `profile_test_enabled` | Boolean  | Whether the user is required to take the behavioural profile test. |
    | `type`                 | String   | Kind of user: root, owner or guest.                                |
    | `code`                 | String   | Identifier of the user in the company's own systems.               |
    | `taxpayer_registry`    | String   | Tax document of the user (CPF or equivalent).                      |
    | `country_of_origin`    | String   | Country abbreviation of the user (e.g. BR).                        |
    | `access_profile_id`    | Integer  | Identifier of the access profile assigned to the user.             |
    | `branch_ids`           | Array    | Identifiers of the company branches the user has access to.        |
    | `created_at`           | DateTime | Timestamp when the user was created.                               |
    | `updated_at`           | DateTime | Timestamp when the user was last updated.                          |
  </Accordion>

  <Accordion title="User access profiles">
    Access profiles that define what each company user is allowed to do.

    **Primary key:** `id` · **Sync type:** FULL\_TABLE

    | Field         | Type     | Description                                              |
    | :------------ | :------- | :------------------------------------------------------- |
    | `id`          | Integer  | Unique identifier of the access profile.                 |
    | `name`        | String   | Name of the access profile.                              |
    | `permissions` | Array    | Permissions granted to the users that hold this profile. |
    | `created_at`  | DateTime | Timestamp when the access profile was created.           |
    | `updated_at`  | DateTime | Timestamp when the access profile was last updated.      |
  </Accordion>

  <Accordion title="Company employees">
    Employees registered for internal recruitment.

    **Primary key:** `id` · **Sync type:** FULL\_TABLE

    | Field                     | Type    | Description                                                  |
    | :------------------------ | :------ | :----------------------------------------------------------- |
    | `id`                      | Integer | Unique identifier of the employee record.                    |
    | `name`                    | String  | Name of the employee.                                        |
    | `country_of_origin`       | String  | Country abbreviation of the employee (e.g. BR).              |
    | `identification_document` | String  | Identification document of the employee (CPF or equivalent). |
    | `company_id`              | Integer | Identifier of the company the employee belongs to.           |
  </Accordion>

  <Accordion title="Email templates">
    Email templates used to communicate with candidates.

    **Primary key:** `id` · **Sync type:** FULL\_TABLE

    | Field        | Type     | Description                                                                                                            |
    | :----------- | :------- | :--------------------------------------------------------------------------------------------------------------------- |
    | `id`         | String   | Unique identifier of the email template.                                                                               |
    | `name`       | String   | Name of the template.                                                                                                  |
    | `subject`    | String   | Subject line of the emails sent with this template.                                                                    |
    | `body`       | String   | Body of the template, with its placeholders unresolved.                                                                |
    | `type`       | String   | What the template is used for (e.g. interview\_scheduling, negative\_feedback, hiring\_feedback, test\_or\_challenge). |
    | `public`     | Boolean  | Whether the template is shared with the whole company or private to its owner.                                         |
    | `user_id`    | Integer  | Identifier of the company user who owns the template.                                                                  |
    | `created_at` | DateTime | Timestamp when the template was created.                                                                               |
    | `updated_at` | DateTime | Timestamp when the template was last updated.                                                                          |
  </Accordion>

  <Accordion title="Job templates">
    Job templates (modelos de vaga) used to create new openings.

    **Primary key:** `id` · **Sync type:** FULL\_TABLE

    | Field                        | Type    | Description                                                                                                            |
    | :--------------------------- | :------ | :--------------------------------------------------------------------------------------------------------------------- |
    | `id`                         | Integer | Unique identifier of the job template.                                                                                 |
    | `name`                       | String  | Name of the template (e.g. Programador Node.js).                                                                       |
    | `type`                       | String  | Contract type the template creates (e.g. vacancy\_type\_effective, vacancy\_type\_internship).                         |
    | `department_id`              | Integer | Identifier of the department of the template.                                                                          |
    | `department_name`            | String  | Name of the department of the template.                                                                                |
    | `role_id`                    | Integer | Identifier of the role of the template.                                                                                |
    | `role_name`                  | String  | Name of the role of the template.                                                                                      |
    | `branch_id`                  | Integer | Identifier of the branch of the template.                                                                              |
    | `branch_name`                | String  | Name of the branch of the template.                                                                                    |
    | `description`                | String  | Default job description filled in by the template.                                                                     |
    | `responsibilities`           | String  | Default responsibilities filled in by the template.                                                                    |
    | `prerequisites`              | String  | Default requirements filled in by the template.                                                                        |
    | `additional_information`     | String  | Default additional information of the template.                                                                        |
    | `notes`                      | String  | Default internal notes of the template.                                                                                |
    | `disabilities`               | Boolean | Whether jobs created from this template are open to people with disabilities (PcD).                                    |
    | `address_country`            | String  | Country of the default work location.                                                                                  |
    | `address_country_short_name` | String  | Country abbreviation of the default work location.                                                                     |
    | `address_state`              | String  | State of the default work location.                                                                                    |
    | `address_state_short_name`   | String  | State abbreviation of the default work location.                                                                       |
    | `address_city`               | String  | City of the default work location.                                                                                     |
    | `address_street`             | String  | Street of the default work location.                                                                                   |
    | `address_district`           | String  | District of the default work location.                                                                                 |
    | `address_complements`        | String  | Address complement of the default work location.                                                                       |
    | `address_number`             | String  | Street number of the default work location.                                                                            |
    | `address_zip_code`           | String  | Postal code (CEP) of the default work location.                                                                        |
    | `address_latitude`           | Number  | Latitude of the default work location.                                                                                 |
    | `address_longitude`          | Number  | Longitude of the default work location.                                                                                |
    | `remote_working`             | Boolean | Whether the template creates remote jobs. Being deprecated in favour of workplace\_type.                               |
    | `workplace_type`             | String  | Default workplace model: hybrid, on-site or remote.                                                                    |
    | `reason`                     | String  | Default opening reason: staff\_increase or staff\_replacement.                                                         |
    | `image`                      | String  | URL of the default image used on the job page.                                                                         |
    | `social_media_image`         | String  | URL of the default image used on social media.                                                                         |
    | `career_page_id`             | Integer | Identifier of the default career page of the template.                                                                 |
    | `career_page_name`           | String  | Name of the default career page of the template.                                                                       |
    | `custom_fields`              | String  | Custom fields defined for this template (JSON array of objects with id, label, value, type, order, required and enum). |
  </Accordion>

  <Accordion title="Job custom field definitions">
    Definitions of the company's custom job fields: label, data type and available options.

    **Primary key:** `id` · **Sync type:** FULL\_TABLE

    | Field      | Type    | Description                                                                       |
    | :--------- | :------ | :-------------------------------------------------------------------------------- |
    | `id`       | String  | Unique identifier of the custom field.                                            |
    | `label`    | String  | Label of the field as shown when editing a job.                                   |
    | `type`     | String  | Data type of the field: select, multiSelect, text, boolean, number, date or time. |
    | `order`    | Integer | Position of the field in the job edit form.                                       |
    | `required` | Boolean | Whether filling this field is mandatory.                                          |
    | `enum`     | Array   | Options available for select and multiSelect fields.                              |
  </Accordion>

  <Accordion title="Dismissals">
    Dismissals (desligamentos) reported back to Gupy for hired candidates.

    **Primary key:** `id` · **Sync type:** FULL\_TABLE

    | Field             | Type     | Description                                                                                                                                                                       |
    | :---------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
    | `id`              | Integer  | Unique identifier of the dismissal record.                                                                                                                                        |
    | `application_id`  | Integer  | Identifier of the application of the candidate who was dismissed.                                                                                                                 |
    | `date`            | Date     | Date the employee was dismissed.                                                                                                                                                  |
    | `reason`          | String   | Reason for the dismissal: no\_cause\_employer\_dismissal, contract\_termination\_dismissal, early\_contract\_termination\_by\_employer\_dismissal, voluntary\_dismissal or other. |
    | `is_rehired`      | Boolean  | Whether the person was rehired by the company.                                                                                                                                    |
    | `rehiring_reason` | String   | Reason for the rehiring: hired\_intern, partnership or other.                                                                                                                     |
    | `created_at`      | DateTime | Timestamp when the dismissal record was created.                                                                                                                                  |
    | `updated_at`      | DateTime | Timestamp when the dismissal record was last updated.                                                                                                                             |
  </Accordion>

  <Accordion title="Performance evaluations">
    Performance evaluations reported back to Gupy for hired candidates.

    **Primary key:** `id` · **Sync type:** FULL\_TABLE

    | Field            | Type     | Description                                                       |
    | :--------------- | :------- | :---------------------------------------------------------------- |
    | `id`             | Integer  | Unique identifier of the performance evaluation.                  |
    | `application_id` | Integer  | Identifier of the application of the candidate who was evaluated. |
    | `date`           | Date     | Date of the performance evaluation.                               |
    | `value`          | String   | Result of the evaluation: high, medium or low.                    |
    | `created_at`     | DateTime | Timestamp when the evaluation was created.                        |
    | `updated_at`     | DateTime | Timestamp when the evaluation was last updated.                   |
  </Accordion>
</AccordionGroup>
