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âmetro | Descrição |
---|---|
code | Refere-se ao código interno da vaga atribuído pelo sistema terceiro |
name | Título dado para a vaga |
type | Modo de contratação |
publicationType | Se a vaga será interna ou externa |
numVacancies | Número de pessoas que serão contratadas para uma mesma vaga. |
departmentId | Código da área gerado automaticamente pela Gupy (campo Id) que a vaga está atrelada. |
roleId | Código do cargo gerado automaticamente pela Gupy (campo Id) que a vaga está atrelada. |
branchId | Có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": "[email protected]",
"videoUrl": null,
"approvers": null,
"workflowRequestMethod": null,
"branchId": 2743,
"branchName": "DEMO > MATRIZ"
}
Erros possíveis
- Não passar campos obrigatórios. O retorno será o seguinte:
{
"title": "Validation Error",
"detail": "Invalid value undefined supplied to /numVacancies: Number",
"status": 400
}
- Passar valores incorretos para os campos
roleId
,departmentId
oubranchId
. O retorno será o seguinte:
{
"title": "Validation Error",
"detail": "Department not found.",
"code": "departmentId",
"status": 400
}
Updated 5 months ago