Criando uma vaga padrão na Gupy

Essa vaga será criada na Gupy cumprindo os requisitos mínimos obrigatórios com filiais e campo code

Gerando o token

Para utilizar este fluxo, é necessário utilizar o Bearer Token gerado nas configurações avançadas da plataforma. Acesse nossa seção de autenticação para saber como gerar o o token de autenticação.

No momento de gerar o token habilite os seguintes endpoints da V1:

  • Company Branches
  • Company Departments
  • Jobs
  • Job Roles

📘

Atenção!

A criação de uma vaga através da API sempre irá criar com status "draft", se a sua necessidade é que a vaga entre na Gupy como aprovada ou publicada será necessário chamar outro endpoint para alterar o status após a criação. Consulte esse fluxo clicando aqui

Não há tratativas para caracteres especiais, a informação será cadastrada conforme foi enviada. Exemplo: se no nome da vaga houver a palavra "P&D" a mesma será cadastrada e exibida como "P&D"

Fluxo de integração:

Para realizar a criação da vaga alguns campos são obrigatórios, dentre eles o código gerado pela Gupy no momento em que um cargo é criado, para obter esse número identificador siga o processo abaixo:

1. Obtendo roleId

Com o seu código de cargo (id interno) utilize o GET Roles com o parâmetro code = código de cargo (id interno).

Caso o response retorne algum registro, armazenar results.id para utilizá-lo no POST Jobs com roleId.

Caso o response não retorne nenhum registro, utilizar o POST Roles com:
name = Nome do Cargo
code = seu código de cargo (id interno)
similiarTo = criar regra com o seu RH

Após sucesso, armazenar results.id para utilizá-lo no POST Jobs com roleId.

Exemplo de requisição

curl --request GET \ --url 'https://api.gupy.io/api/v1/roles?code=3912&perPage=10&page=1' \ --header 'accept: application/json' \ --header 'authorization: Bearer XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX'

Exemplo de resposta

{ "results": [ { "id": 7872, "name": "Analista de Integrações", "code": 3912, "similarTo": "analyst", "createdAt": "2018-07-17T17:58:12.965Z", "updatedAt": "2022-11-17T19:26:15.969Z" } ], "totalResults": 1, "page": 1, "totalPages": 1 }

Outro campo obrigatório é o código gerado pela Gupy no momento em que uma área é criada, para obter esse número identificador siga o processo abaixo:

2. Obtendo departmentId

Com o seu código de área (id interno) utilize o GET Departments com o parâmetro code = código de cargo (id interno).

Caso o response retorne algum registro, armazenar results.id para utilizá-lo no POST Jobs com roleId.

Caso o response não retorne nenhum registro, utilizar o POST Departments com
name = Nome da área
code = seu código de área (id interno)
similiarTo = criar regra com o seu RH

Após sucesso, armazenar results.id para utiliza-lo no POST Jobs com roleId.

Exemplo de requisição

curl --request GET \ --url 'https://api.gupy.io/api/v1/departments?perPage=10&page=1' \ --header 'accept: application/json' \ --header 'authorization: Bearer XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX'

Exemplo de resposta

{ "results": [ { "id": 5962, "name": "Administrativo (Adm.)", "code": 1439, "similarTo": "financial_management", "createdAt": "2018-07-17T16:49:14.159Z", "updatedAt": "2021-08-25T13:37:39.823Z" } ], "totalResults": 1, "page": 1, "totalPages": 1 }

Um campo opcional, porém frequentemente utilizado é o código gerado pela Gupy no momento em que uma filial ou estrutura organizacional é criada, para obter esse número identificador siga o processo abaixo:

3. Obtendo branchId

Com o seu código de filial (id interno) utilize o GET Branches com o parâmetro code = código de cargo (id interno).

Caso o response retorne algum registro, armazenar results.id para utilizá-lo no POST Jobs com branchId.

Caso o response não retorne nenhum registro, utilizar o POST Branches com
code = seu código de cargo (id interno)
name = nome da filial
path = o caminho na estrutura organizacional

Após sucesso, armazenar results.id para utiliza-lo no POST Jobs com branchId.

Exemplo de requisição

curl --request GET \ --url 'https://api.gupy.io/api/v1/branches?perPage=10&page=1' \ --header 'accept: application/json' \ --header 'authorization: Bearer XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX'

Exemplo de resposta

{ "results": [ { "id": 2743, "code": 3, "name": " MATRIZ", "path": [ "matriz" ], "addressCountry": "Brasil", "addressCountryShortName": "BRA", "addressState": "São Paulo", "addressStateShortName": "SP", "addressCity": "São Paulo", "addressStreet": "Rua Haddock Lobo", "addressNumber": null, "addressZipCode": "1414000", "addressLatitude": -23.5599941, "addressLongitude": -46.66387049999999, "createdAt": "2019-06-20T13:44:09.932Z", "updatedAt": "2020-06-25T13:27:20.227Z" } ], "totalResults": 1, "page": 1, "totalPages": 1 }

4. Utilizando o campo code

Ao abrir uma requisição de vaga/posição no seu sistema interno um número identificador é atribuído à ela, esse número pode ser enviado para a Gupy através do campo code e assim o vínculo entre a vaga criada na Gupy e o número da RP é mantido.

5. Fazendo a requisição e criando a vaga

Faça a requisição para o endpoint POST Jobs, passando os campos obtidos anteriormente, conforme detalhamento abaixo:

ParâmetroDescrição
codeRefere-se ao código interno da vaga atribuído pelo sistema terceiro
nameTítulo dado para a vaga
typeModo de contratação
publicationTypeSe a vaga será interna ou externa
numVacanciesNúmero de pessoas que serão contratadas para uma mesma vaga.
departmentIdCódigo da área gerado automaticamente pela Gupy (campo Id) que a vaga está atrelada.
roleIdCódigo do cargo gerado automaticamente pela Gupy (campo Id) que a vaga está atrelada.
branchIdCódigo da filial gerado automaticamente pela Gupy (campo Id)

Exemplo de requisição:

curl --request POST \ --url https://api.gupy.io/api/v1/jobs \ --header 'accept: application/json' \ --header 'authorization: Bearer xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx' \ --header 'content-type: application/json' \ --data ' { "type": "vacancy_type_effective", "publicationType": "external", "name": "Desenvolvedor Backend", "numVacancies": 2, "departmentId": 5962, "roleId": 7872, "branchId": 2743, "code": "1974" } '

Exemplo de resposta:

```Text JSON { "id": 7168372, "code": "1974", "name": "Desenvolvedor Backend", "status": "draft", "type": "vacancy_type_effective", "publicationType": "external", "numVacancies": 2, "departmentId": 5962, "departmentName": "Administrativo (ML)", "roleId": 7872, "roleName": "Analista Teste Z", "subsidiaryId": 2743, "subsidiaryName": "DEMO > MATRIZ", "createdAt": "2024-05-15T01:55:29.088Z", "updatedAt": "2024-05-15T01:55:29.211Z", "hiringDeadline": null, "description": null, "responsibilities": null, "prerequisites": null, "additionalInformation": null, "notes": null, "disabilities": false, "addressStreet": null, "addressNumber": null, "addressCity": null, "addressState": null, "addressStateShortName": null, "addressCountry": null, "addressCountryShortName": null, "addressComplements": null, "addressDistrict": null, "addressZipCode": null, "addressLatitude": null, "addressLongitude": null, "remoteWorking": false, "workplaceType": "on-site", "reason": null, "image": null, "socialMediaImage": null, "applicationDeadline": null, "careerPageId": null, "careerPageName": null, "vacancyCodes": [], "managerId": null, "managerName": null, "managerEmail": null, "recruiterId": null, "recruiterName": null, "recruiterEmail": null, "salary": { "currency": null, "startsAt": null, "endsAt": null }, "jobRatingCriterias": [], "cancelReason": null, "cancelReasonNotes": null, "canceledByEmail": null, "cancelAt": null, "publishedAt": null, "closedAt": null, "approvedAt": null, "disapprovedAt": null, "lastFreezeDate": null, "lastUnfreezeDate": null, "creatorId": 22011, "creatorName": "Public API", "creatorEmail": "developers+dev@gupy.com.br", "videoUrl": null, "approvers": null, "workflowRequestMethod": null, "branchId": 2743, "branchName": "DEMO > MATRIZ" }


Erros possíveis

  1. Não passar campos obrigatórios. O retorno será o seguinte:
{ "title": "Validation Error", "detail": "Invalid value undefined supplied to /numVacancies: Number", "status": 400 }
  1. Passar valores incorretos para os campos roleId ,departmentId ou branchId. O retorno será o seguinte:
{ "title": "Validation Error", "detail": "Department not found.", "code": "departmentId", "status": 400 }

Did this page help you?