Перейти к основному содержимому

Кандидаты на этапе вакансии

GraphQL запросы на примере работы со списком кандидатов на этапе вакансии.

Получение списка кандидатов на этапе вакансии

query VacancyWorkflowStatusResponses {
workflowStatus(id: 1) {
... on WorkflowStatusItem {
responses(filter: {}) {
items {
person {
id
firstName
lastName
}
}
pageInfo {
hasNextPage
endCursor
}
}
}
}
}

Посмотреть в playground

Результат запроса

{
"data": {
"workflowStatus": {
"responses": {
"items": [
{
"person": {
"id": 8057081,
"firstName": "Иван",
"lastName": "Иванов"
}
},
{
"person": {
"id": 7945761,
"firstName": "Петр",
"lastName": "Петров"
}
}
],
"pageInfo": {
"hasNextPage": true,
"endCursor": "7945761|1594997389175535000"
}
}
}
}
}
подсказка

id этапов вакансии, необходимые для выполнения запроса, можно получить следующим образом

query VacancyWorkflowStatusIds {
vacancy(id: 1) {
... on VacancyItem {
workflowStatuses {
items {
id
}
}
}
}
}

Посмотреть в playground

подсказка

В поле pageInfo возвращается информация, которую необходимо использовать для дальнейшего постраничного обхода списка (подробное описание пагинации приводится здесь). Таким образом, следующую страницу кандидатов можно получить, выполнив запрос

query VacancyWorkflowStatusResponsesNextPage {
workflowStatus(id: 1) {
... on WorkflowStatusItem {
responses(filter: {}, after: "7945761|1594997389175535000") {
items {
person {
id
firstName
lastName
}
}
pageInfo {
hasNextPage
endCursor
}
}
}
}
}

Посмотреть в playground

Фильтрация списка кандидатов на этапе вакансии

Для фильтрации кандидатов на этапе вакансии по различным полям используется аргумент filter в запросе responses. Для фильтрации кандидатов по гражданству и уровню образования необходимо выполнить запрос:

query VacancyWorkflowStatusResponseFilter {
workflowStatus(id: 1) {
... on WorkflowStatusItem {
responses(filter: {citizenshipId: "1", educationLevelId: higher}) {
items {
person {
id
firstName
lastName
citizenships {
items {
id
name
}
}
}
}
}
}
}
}

Посмотреть в playground

примечание

ResponseFilterInput - подробное описание аргумента filter

Результат запроса

{
"data": {
"workflowStatus": {
"responses": {
"items": [
{
"person": {
"id": 2938503,
"firstName": "Валентин",
"lastName": "Павлов",
"citizenships": {
"items": [
{
"id": "1",
"name": "Россия"
}
]
}
}
},
{
"person": {
"id": 2938488,
"firstName": "Роман",
"lastName": "Давыдов",
"citizenships": {
"items": [
{
"id": "1",
"name": "Россия"
}
]
}
}
}
]
}
}
}
}
подсказка

В примере запроса используются фильтры по гражданству и уровню образования.

Список доступных id регионов для фильтра по гражданству можно получить с помощью запроса areas. Обратите внимание, что для гражданства подходят только регионы с parentId: null.

Список доступных значений уровня образования - в разделе EducationLevelEnum.