SuperJob: работа и вакансии icon

SuperJob: работа и вакансии Data API

SuperJob · Jobs & Careers

SuperJob: работа и вакансии is the official Android app of SuperJob, the Moscow-based recruitment company that has run one of Russia's major job boards since 2000. Job seekers search openings by keyword, city, salary, professional catalogue and remote-work flag, open a listing to read duties, conditions and whether a CV is required, and apply from a chosen resume with an optional cover letter. Signed-in users keep one or more CVs, see which companies opened them, favourite vacancies, subscribe to saved searches, rate employers on career, pay, stability, management and team, and chat with HR after applying. Sign-in is username plus password, with HeadHunter and Yandex as alternate login screens. The app serves the Russian job market, where SuperJob competes with hh.ru, Rabota.ru, Zarplata.ru, Avito's jobs section and the state-run Работа в России portal.

Profession titles and advertised pay bands sit on each listing: vacancyMainInfo carries profession, publishedAt and highlight, nested vacancySalary exposes minSalary, maxSalary and paymentAgreement, and vacancyDetailInfo adds duties, conditions, isRemoteWork and isResumeRequired. Search queries pass facet keys such as filters[keywords], filters[town], filters[payment], filters[remoteWorkBinary] and filters[catalogues].

Employer records publish title, vacanciesCount, logoUrl and website; companyReview rows score overallRating, career, salary, stability, management and team plus reviewText. Candidate CVs store position, datePublish, remoteWork and relocatePossibility. Resume-view stats report viewsCount; per-employer resumeCompanyView rows carry date and isCompanyPayResumeInDay, and each resumeView flags isApplicantViewed.

Applications wrap a vacancyResponse with createdAt, viewedAt and hasNewEvents, then open a chat with unreadMessageCounter and hrMembers. Labour-market dashboards, employer-reputation monitors, ATS connectors and resume-view alerts consume those records; openData Studio turns them into callable open data.

Auto-apply rules keep enabled, professionKeywords, minPayment and onlyRemote. Course cards publish name, price and startDate. Inbox rows carry notificationType, isNew and vacancyId.

Screenshots

  • SuperJob: работа и вакансии screenshot 1
  • SuperJob: работа и вакансии screenshot 2
  • SuperJob: работа и вакансии screenshot 3
  • SuperJob: работа и вакансии screenshot 4

API surface

The endpoints and request/response examples below are reconstructed from the app's interface — illustrative, not a live capture.

  • Search vacancies

    GET /v1/openings/search opendata

    Lists vacancies as JSON:API vacancy resources filtered by keywords, town, payment, remoteWorkBinary, catalogues, workType and related facet keys; each hit includes vacancyMainInfo (profession, publishedAt) and vacancySalary (minSalary, maxSalary, paymentAgreement).

    Auth: Optional. Public listings work without a session; signed-in calls send Authorization plus X-Api-App-Id, X-Device-Id and User-Agent. Accept: application/vnd.api+json.

    • filters[keywords]
    • filters[town]
    • filters[payment]
    • filters[remoteWorkBinary]
    • filters[catalogues]
    • filters[workType]
    • filters[withoutExperience]
    • filters[withoutAgencies]
    • filters[period]
    • profession
    • publishedAt
    • minSalary
    • maxSalary
    • paymentAgreement
    • highlight
    GET /v1/openings/search?filters[keywords]=python&filters[town]=4&filters[payment]=150000&filters[remoteWorkBinary]=1&filters[catalogues]=33&filters[withoutExperience]=0 HTTP/1.1
    Accept: application/vnd.api+json
    X-Api-App-Id: <app_id>
    X-Device-Id: <android_id>
    User-Agent: <app_user_agent>
    {
      "data": [
        {
          "type": "vacancy",
          "id": "41234567",
          "relationships": {
            "mainInfo": {"data": {"type": "vacancyMainInfo", "id": "mi-41234567"}},
            "company": {"data": {"type": "company", "id": "1080"}},
            "town": {"data": {"type": "town", "id": "4"}},
            "favoriteVacancy": {"data": null}
          }
        }
      ],
      "included": [
        {
          "type": "vacancyMainInfo",
          "id": "mi-41234567",
          "attributes": {
            "profession": "Python developer",
            "createdAt": "2026-09-18T09:00:00+03:00",
            "updatedAt": "2026-10-02T12:10:00+03:00",
            "publishedAt": "2026-09-20T10:15:00+03:00",
            "highlight": false
          },
          "relationships": {
            "salary": {"data": {"type": "vacancySalary", "id": "sal-41234567"}}
          }
        },
        {
          "type": "vacancySalary",
          "id": "sal-41234567",
          "attributes": {
            "minSalary": 150000,
            "maxSalary": 250000,
            "paymentAgreement": false
          }
        }
      ]
    }
  • Vacancy detail

    GET /v1/openings/{opening_id} opendata

    Loads one vacancy JSON:API document with vacancyDetailInfo (duties, conditions, isRemoteWork, isResumeRequired, archivedAt, fullTextPlain) and vacancyContactInfo flags for whether the contact person and phones are shown.

    Auth: Optional. Public vacancy pages work without a session; signed-in calls send Authorization plus X-Api-App-Id, X-Device-Id and User-Agent. Accept: application/vnd.api+json.

    • duties
    • conditions
    • isRemoteWork
    • isResumeRequired
    • isCommercial
    • archivedAt
    • fullText
    • fullTextPlain
    • isContactPersonHidden
    • isContactPersonHasPhones
    • isShowContactsAvailable
    • profession
    • minSalary
    • maxSalary
    GET /v1/openings/41234567 HTTP/1.1
    Accept: application/vnd.api+json
    X-Api-App-Id: <app_id>
    X-Device-Id: <android_id>
    User-Agent: <app_user_agent>
    {
      "data": {
        "type": "vacancy",
        "id": "41234567",
        "relationships": {
          "mainInfo": {"data": {"type": "vacancyMainInfo", "id": "mi-41234567"}},
          "detailInfo": {"data": {"type": "vacancyDetailInfo", "id": "di-41234567"}},
          "contactInfo": {"data": {"type": "vacancyContactInfo", "id": "ci-41234567"}},
          "company": {"data": {"type": "company", "id": "1080"}},
          "town": {"data": {"type": "town", "id": "4"}}
        }
      },
      "included": [
        {
          "type": "vacancyDetailInfo",
          "id": "di-41234567",
          "attributes": {
            "archivedAt": null,
            "conditions": "ДМС, гибрид",
            "duties": "Maintain backend services",
            "isCommercial": true,
            "isRemoteWork": true,
            "isResumeRequired": true,
            "fullTextPlain": "Python developer, remote"
          }
        },
        {
          "type": "vacancyContactInfo",
          "id": "ci-41234567",
          "attributes": {
            "isContactPersonHidden": false,
            "isContactPersonHasPhones": true,
            "isShowContactsAvailable": true
          }
        }
      ]
    }
  • Company profile

    GET /v1/employers/{employer_id} opendata

    Returns a company JSON:API resource with title, createdAt, vacanciesCount, description, logoUrl, website and flags directResponseEnabled and isEnabledInMyConnections.

    Auth: Optional. Public company pages work without a session; signed-in calls send Authorization plus X-Api-App-Id, X-Device-Id and User-Agent. Accept: application/vnd.api+json.

    • title
    • createdAt
    • vacanciesCount
    • description
    • logoUrl
    • website
    • directResponseEnabled
    • isEnabledInMyConnections
    GET /v1/employers/1080 HTTP/1.1
    Accept: application/vnd.api+json
    X-Api-App-Id: <app_id>
    X-Device-Id: <android_id>
    User-Agent: <app_user_agent>
    {
      "data": {
        "type": "company",
        "id": "1080",
        "attributes": {
          "title": "Example Corp",
          "createdAt": "2014-03-11T00:00:00+04:00",
          "vacanciesCount": 42,
          "description": "IT services",
          "logoUrl": "https://cdn.example.org/logo.png",
          "website": "https://example.com",
          "directResponseEnabled": true,
          "isEnabledInMyConnections": false
        }
      }
    }
  • Company review

    GET /v1/employers/{employer_id}/reviews/{review_id} opendata

    Reads one companyReview resource with overallRating plus dimension scores career, salary, stability, management and team, plus reviewText, advantages, disadvantages and willRecommend.

    Auth: Optional. Public reviews work without a session; signed-in calls send Authorization plus X-Api-App-Id, X-Device-Id and User-Agent. Accept: application/vnd.api+json.

    • overallRating
    • career
    • salary
    • stability
    • management
    • team
    • reviewText
    • advantages
    • disadvantages
    • createdAt
    • updatedAt
    • willRecommend
    GET /v1/employers/1080/reviews/88001 HTTP/1.1
    Accept: application/vnd.api+json
    X-Api-App-Id: <app_id>
    X-Device-Id: <android_id>
    User-Agent: <app_user_agent>
    {
      "data": {
        "type": "companyReview",
        "id": "88001",
        "attributes": {
          "overallRating": 4,
          "career": 4,
          "salary": 3,
          "stability": 5,
          "management": 4,
          "team": 5,
          "reviewText": "Stable team, average pay",
          "advantages": "DMS, hybrid",
          "disadvantages": "Slow promotion",
          "createdAt": "2026-04-12T18:00:00+03:00",
          "updatedAt": "2026-04-12T18:00:00+03:00"
        },
        "relationships": {
          "company": {"data": {"type": "company", "id": "1080"}},
          "willRecommend": {"data": {"type": "companyReviewWillRecommendDictionary", "id": "yes"}}
        }
      }
    }
  • Resume detail

    GET /v1/cvs/{cv_id} osint

    Loads one resume resource with position, dateCreate, dateUpdate, datePublish, remoteWork, relocatePossibility, additionalInformation and related catalogues, citizenship, contacts and children.

    Auth: Signed-in. Authorization carries the session token; also X-Api-App-Id, X-Device-Id and User-Agent. Accept: application/vnd.api+json.

    • position
    • dateCreate
    • dateUpdate
    • datePublish
    • remoteWork
    • relocatePossibility
    • additionalInformation
    • catalogues
    • citizenship
    • contacts
    • children
    GET /v1/cvs/900111 HTTP/1.1
    Accept: application/vnd.api+json
    Authorization: <token>
    X-Api-App-Id: <app_id>
    X-Device-Id: <android_id>
    User-Agent: <app_user_agent>
    {
      "data": {
        "type": "resume",
        "id": "900111",
        "attributes": {
          "position": "Python developer",
          "dateCreate": "2025-11-02T12:00:00+03:00",
          "dateUpdate": "2026-10-01T09:30:00+03:00",
          "datePublish": "2026-10-01T09:31:00+03:00",
          "remoteWork": true,
          "relocatePossibility": false,
          "additionalInformation": "Open to hybrid"
        },
        "relationships": {
          "catalogues": {"data": [{"type": "specialization", "id": "33"}]},
          "citizenship": {"data": {"type": "citizenshipDictionary", "id": "1"}},
          "contacts": {"data": [{"type": "contact", "id": "c-1"}]},
          "children": {"data": null}
        }
      }
    }
  • Submit CV application

    POST /v1/seeker/cv-send opendata

    Creates a cvApplication that wraps a vacancyResponse (createdAt, viewedAt, hasNewEvents, optional resumeLetter) when the candidate applies to a vacancy from a resume.

    Auth: Signed-in. Authorization carries the session token; also X-Api-App-Id, X-Device-Id and User-Agent. Content-Type: application/vnd.api+json.

    • vacancyResponse
    • companyResponse
    • createdAt
    • viewedAt
    • hasNewEvents
    • resumeLetter
    • cvApplicationType
    • responseSource
    POST /v1/seeker/cv-send HTTP/1.1
    Accept: application/vnd.api+json
    Content-Type: application/vnd.api+json
    Authorization: <token>
    X-Api-App-Id: <app_id>
    X-Device-Id: <android_id>
    User-Agent: <app_user_agent>
    
    {
      "data": {
        "type": "cvApplication",
        "relationships": {
          "vacancyResponse": {
            "data": {"type": "vacancyResponse", "id": "vr-new"}
          }
        }
      }
    }
    {
      "data": {
        "type": "cvApplication",
        "id": "ca-778899",
        "relationships": {
          "vacancyResponse": {"data": {"type": "vacancyResponse", "id": "vr-778899"}},
          "companyResponse": {"data": null}
        }
      },
      "included": [
        {
          "type": "vacancyResponse",
          "id": "vr-778899",
          "attributes": {
            "createdAt": "2026-10-11T11:04:00+03:00",
            "viewedAt": null,
            "hasNewEvents": false
          }
        }
      ]
    }
  • List CV applications

    GET /v1/seeker/cv-sends opendata

    Lists the signed-in applicant's cvApplication rows (applied-jobs tab), each linking a vacancyResponse with createdAt, viewedAt, hasNewEvents and related vacancy, resume and chat.

    Auth: Signed-in. Authorization carries the session token; also X-Api-App-Id, X-Device-Id and User-Agent. Accept: application/vnd.api+json.

    • vacancyResponse
    • createdAt
    • viewedAt
    • hasNewEvents
    • vacancy
    • resume
    • chat
    • status
    • cvApplicationType
    GET /v1/seeker/cv-sends HTTP/1.1
    Accept: application/vnd.api+json
    Authorization: <token>
    X-Api-App-Id: <app_id>
    X-Device-Id: <android_id>
    User-Agent: <app_user_agent>
    {
      "data": [
        {
          "type": "cvApplication",
          "id": "ca-778899",
          "relationships": {
            "vacancyResponse": {"data": {"type": "vacancyResponse", "id": "vr-778899"}}
          }
        }
      ],
      "included": [
        {
          "type": "vacancyResponse",
          "id": "vr-778899",
          "attributes": {
            "createdAt": "2026-10-11T11:04:00+03:00",
            "viewedAt": "2026-10-11T16:20:00+03:00",
            "hasNewEvents": true
          },
          "relationships": {
            "vacancy": {"data": {"type": "vacancy", "id": "41234567"}},
            "resume": {"data": {"type": "resume", "id": "900111"}},
            "chat": {"data": {"type": "chat", "id": "ch-12"}}
          }
        }
      ]
    }
  • Password grant sign-in

    POST /v1/session/password osint

    Exchanges username, password, grant_type and scope for an auth resource with token, refreshToken, expiresIn, status, isPhoneConfirmationRequired and a related applicant (name, hasLogin, hasPassword).

    Auth: Unauthenticated. Body is a JSON auth request (username, password, grant_type, scope). Later calls send the returned token on Authorization together with X-Api-App-Id, X-Device-Id and User-Agent.

    • username
    • password
    • grant_type
    • scope
    • token
    • status
    • refreshToken
    • expiresIn
    • isPhoneConfirmationRequired
    • applicant
    • name
    • hasLogin
    • hasPassword
    POST /v1/session/password HTTP/1.1
    Content-Type: application/json
    Accept: application/vnd.api+json
    X-Api-App-Id: <app_id>
    X-Device-Id: <android_id>
    User-Agent: <app_user_agent>
    
    {
      "username": "[email protected]",
      "password": "********",
      "grant_type": "password",
      "scope": ""
    }
    {
      "data": {
        "type": "auth",
        "id": "sess-1",
        "attributes": {
          "token": "<access_token>",
          "status": "ok",
          "refreshToken": "<refresh_token>",
          "expiresIn": 2592000,
          "isPhoneConfirmationRequired": false
        },
        "relationships": {
          "applicant": {"data": {"type": "applicant", "id": "ap-55"}}
        }
      },
      "included": [
        {
          "type": "applicant",
          "id": "ap-55",
          "attributes": {
            "name": "Ivan Petrov",
            "hasLogin": true,
            "hasPassword": true
          }
        }
      ]
    }
  • Favourite vacancies

    GET /v1/saved/openings opendata

    Lists favoriteVacancy resources for the signed-in applicant; each row points at a vacancy. Writes attach or detach the same relationship on the applicant profile.

    Auth: Signed-in. Authorization carries the session token; also X-Api-App-Id, X-Device-Id and User-Agent. Accept: application/vnd.api+json.

    • favoriteVacancy
    • vacancy
    GET /v1/saved/openings HTTP/1.1
    Accept: application/vnd.api+json
    Authorization: <token>
    X-Api-App-Id: <app_id>
    X-Device-Id: <android_id>
    User-Agent: <app_user_agent>
    {
      "data": [
        {
          "type": "favoriteVacancy",
          "id": "fv-41234567",
          "relationships": {
            "vacancy": {"data": {"type": "vacancy", "id": "41234567"}}
          }
        }
      ]
    }
  • Vacancy search subscriptions

    POST /v1/saved/searches opendata

    Creates a vacancySubscription for a saved search (keywords, town, payment and the same facet keys as vacancy search). List and detail variants reuse the saved-search collection.

    Auth: Signed-in. Authorization carries the session token; also X-Api-App-Id, X-Device-Id and User-Agent. Content-Type: application/vnd.api+json.

    • vacancySubscription
    • filters[keywords]
    • filters[town]
    • filters[payment]
    POST /v1/saved/searches HTTP/1.1
    Accept: application/vnd.api+json
    Content-Type: application/vnd.api+json
    Authorization: <token>
    X-Api-App-Id: <app_id>
    X-Device-Id: <android_id>
    User-Agent: <app_user_agent>
    
    {
      "data": {
        "type": "vacancySubscription",
        "attributes": {
          "filters": {
            "keywords": "python",
            "town": "4",
            "payment": "150000"
          }
        }
      }
    }
    {
      "data": {
        "type": "vacancySubscription",
        "id": "54536249"
      }
    }
  • Resume view statistics

    GET /v1/cvs/views/summary osint

    Returns a resumeStatistic resource with viewsCount plus statisticItems and statisticPeriod for the resume-views screen.

    Auth: Signed-in. Authorization carries the session token; also X-Api-App-Id, X-Device-Id and User-Agent. Accept: application/vnd.api+json.

    • viewsCount
    • statisticItems
    • statisticPeriod
    GET /v1/cvs/views/summary HTTP/1.1
    Accept: application/vnd.api+json
    Authorization: <token>
    X-Api-App-Id: <app_id>
    X-Device-Id: <android_id>
    User-Agent: <app_user_agent>
    {
      "data": {
        "type": "resumeStatistic",
        "id": "rs-900111",
        "attributes": {
          "viewsCount": 37
        },
        "relationships": {
          "statisticItems": {"data": [{"type": "resumeStatisticItem", "id": "i-1"}]},
          "statisticPeriod": {"data": {"type": "resumeStatisticPeriod", "id": "week"}}
        }
      }
    }
  • Mark resume views read

    POST /v1/cvs/views/mark-read osint

    Marks resume views as read. Related resumeCompanyView rows carry date, isCompanyPayResumeInDay, company and views; each resumeView has date, isApplicantViewed and isCollapsed. A sibling action marks a whole employer group as read.

    Auth: Signed-in. Authorization carries the session token; also X-Api-App-Id, X-Device-Id and User-Agent. Query include=params. Accept: application/vnd.api+json.

    • date
    • isCompanyPayResumeInDay
    • views
    • company
    • isApplicantViewed
    • isCollapsed
    POST /v1/cvs/views/mark-read?include=params HTTP/1.1
    Accept: application/vnd.api+json
    Authorization: <token>
    X-Api-App-Id: <app_id>
    X-Device-Id: <android_id>
    User-Agent: <app_user_agent>
    {
      "data": {
        "type": "resumeCompanyView",
        "id": "rcv-1",
        "attributes": {
          "date": "2026-10-10",
          "isCompanyPayResumeInDay": true
        },
        "relationships": {
          "company": {"data": {"type": "company", "id": "1080"}},
          "views": {"data": [{"type": "resumeView", "id": "rv-1"}]}
        }
      },
      "included": [
        {
          "type": "resumeView",
          "id": "rv-1",
          "attributes": {
            "date": "2026-10-10T09:12:00+03:00",
            "isApplicantViewed": true,
            "isCollapsed": false
          }
        }
      ]
    }
  • Employer chat thread

    GET /v1/inbox/threads/{thread_id} opendata

    Loads one chat thread between the applicant and employer HR: closed, createdAt, updatedAt, status, unreadMessageCounter, lastMessage, related resume, company, hrMembers and disableReason. Individual messages are nested under the same thread.

    Auth: Signed-in. Authorization carries the session token; also X-Api-App-Id, X-Device-Id and User-Agent. Accept: application/vnd.api+json.

    • closed
    • createdAt
    • updatedAt
    • status
    • unreadMessageCounter
    • lastMessage
    • resume
    • company
    • hrMembers
    • disableReason
    GET /v1/inbox/threads/12 HTTP/1.1
    Accept: application/vnd.api+json
    Authorization: <token>
    X-Api-App-Id: <app_id>
    X-Device-Id: <android_id>
    User-Agent: <app_user_agent>
    {
      "data": {
        "type": "chat",
        "id": "12",
        "attributes": {
          "closed": false,
          "createdAt": "2026-10-11T11:05:00+03:00",
          "updatedAt": "2026-10-11T16:22:00+03:00"
        },
        "relationships": {
          "status": {"data": {"type": "chatStatusTypeDictionary", "id": "open"}},
          "unreadMessageCounter": {"data": {"type": "chatCounter", "id": "cc-12"}},
          "lastMessage": {"data": {"type": "lastChatMessage", "id": "m-99"}},
          "resume": {"data": {"type": "resume", "id": "900111"}},
          "company": {"data": {"type": "company", "id": "1080"}},
          "hrMembers": {"data": [{"type": "chatHrMember", "id": "hr-1"}]},
          "disableReason": {"data": null}
        }
      }
    }
  • Resume auto-response

    POST /v1/cvs/auto-apply opendata

    Creates a resumeAutoResponse rule that auto-applies a resume when vacancies match professionKeywords, bodyKeywords, minPayment, paymentDefined and onlyRemote; related towns, companies and professionalSkills narrow the match. Detail and edit reuse the same rule resource.

    Auth: Signed-in. Authorization carries the session token; also X-Api-App-Id, X-Device-Id and User-Agent. Content-Type: application/vnd.api+json.

    • enabled
    • professionKeywords
    • bodyKeywords
    • minPayment
    • paymentDefined
    • onlyRemote
    • expiredAt
    • resume
    • towns
    • companies
    • professionalSkills
    POST /v1/cvs/auto-apply HTTP/1.1
    Accept: application/vnd.api+json
    Content-Type: application/vnd.api+json
    Authorization: <token>
    X-Api-App-Id: <app_id>
    X-Device-Id: <android_id>
    User-Agent: <app_user_agent>
    
    {
      "data": {
        "type": "resumeAutoResponse",
        "attributes": {
          "enabled": true,
          "professionKeywords": "python",
          "bodyKeywords": "backend",
          "minPayment": 150000,
          "paymentDefined": true,
          "onlyRemote": true
        },
        "relationships": {
          "resume": {"data": {"type": "resume", "id": "900111"}}
        }
      }
    }
    {
      "data": {
        "type": "resumeAutoResponse",
        "id": "ar-4412",
        "attributes": {
          "enabled": true,
          "professionKeywords": "python",
          "bodyKeywords": "backend",
          "minPayment": 150000,
          "paymentDefined": true,
          "onlyRemote": true,
          "expiredAt": "2026-11-11T00:00:00+03:00"
        },
        "relationships": {
          "resume": {"data": {"type": "resume", "id": "900111"}},
          "towns": {"data": [{"type": "town", "id": "4"}]},
          "companies": {"data": []},
          "professionalSkills": {"data": []}
        }
      }
    }
  • Course catalogue

    GET /v1/learning/catalog opendata

    Lists course JSON:API resources with courseMainInfo (name, annotation, externalUrl, profession, erid, publishedAt) and courseDetailInfo (description, price, startDate, anyTimeLearning, displayFrom, displayTo, address), plus related company and eduProviderProfile.

    Auth: Optional. Public course listings work without a session; signed-in calls send Authorization plus X-Api-App-Id, X-Device-Id and User-Agent. Accept: application/vnd.api+json.

    • name
    • annotation
    • externalUrl
    • profession
    • erid
    • publishedAt
    • description
    • price
    • startDate
    • anyTimeLearning
    • displayFrom
    • displayTo
    • address
    GET /v1/learning/catalog HTTP/1.1
    Accept: application/vnd.api+json
    X-Api-App-Id: <app_id>
    X-Device-Id: <android_id>
    User-Agent: <app_user_agent>
    {
      "data": [
        {
          "type": "course",
          "id": "c-8801",
          "relationships": {
            "mainInfo": {"data": {"type": "courseMainInfo", "id": "cmi-8801"}},
            "detailInfo": {"data": {"type": "courseDetailInfo", "id": "cdi-8801"}},
            "company": {"data": {"type": "company", "id": "1080"}},
            "provider": {"data": {"type": "eduProviderProfile", "id": "ep-12"}}
          }
        }
      ],
      "included": [
        {
          "type": "courseMainInfo",
          "id": "cmi-8801",
          "attributes": {
            "name": "Python backend",
            "annotation": "REST APIs",
            "externalUrl": "https://example.edu/python",
            "profession": "Python developer",
            "erid": "2Vtzqv",
            "publishedAt": "2026-09-01T10:00:00+03:00"
          }
        },
        {
          "type": "courseDetailInfo",
          "id": "cdi-8801",
          "attributes": {
            "description": "12-week backend track",
            "price": 49000,
            "startDate": "2026-11-01",
            "anyTimeLearning": false,
            "displayFrom": "2026-09-01",
            "displayTo": "2026-12-31",
            "address": "Moscow"
          }
        }
      ]
    }
  • User notifications

    GET /v1/inbox/alerts opendata

    Lists the signed-in applicant's notification inbox: notificationType, title, content, isNew, date plus vacancyId, resumeId, companyId and related deeplink, chat, actions and labels.

    Auth: Signed-in. Authorization carries the session token; also X-Api-App-Id, X-Device-Id and User-Agent. Accept: application/vnd.api+json.

    • notificationType
    • title
    • content
    • isNew
    • date
    • vacancyId
    • resumeId
    • companyId
    • deeplink
    • chat
    • actions
    • labels
    GET /v1/inbox/alerts HTTP/1.1
    Accept: application/vnd.api+json
    Authorization: <token>
    X-Api-App-Id: <app_id>
    X-Device-Id: <android_id>
    User-Agent: <app_user_agent>
    {
      "data": [
        {
          "type": "notification",
          "id": "n-9001",
          "attributes": {
            "notificationType": "resume_view",
            "title": "Employer opened your CV",
            "content": "Example Corp viewed resume 900111",
            "isNew": true,
            "date": "2026-10-11T09:12:00+03:00",
            "vacancyId": 41234567,
            "resumeId": 900111,
            "companyId": 1080
          },
          "relationships": {
            "deeplink": {"data": {"type": "notificationDeeplink", "id": "dl-1"}},
            "chat": {"data": null},
            "actions": {"data": []},
            "labels": {"data": []}
          }
        }
      ]
    }

Data categories

  • vacancies
  • salaries
  • employers
  • company reviews
  • resumes
  • applications
  • resume views
  • chats
  • auto-responses
  • courses
  • notifications

Where teams use this data

  • Vacancy market analytics

    Labour-market dashboards ingest profession, minSalary, maxSalary, paymentAgreement, town and remoteWorkBinary from vacancy search and detail to chart advertised pay bands by city and catalogue.

  • Employer reputation monitor

    HR-brand tools pull company title, vacanciesCount and companyReview scores (overallRating, career, salary, stability, management, team) to track how a firm is rated next to its open roles.

  • Application pipeline sync

    ATS connectors copy cvApplication rows with vacancyResponse createdAt, viewedAt and hasNewEvents, follow chat unreadMessageCounter after a candidate applies, and sync resumeAutoResponse rules (enabled, professionKeywords, minPayment, onlyRemote).

  • Resume-view alerts

    Candidate-side bots watch resumeStatistic viewsCount and resumeCompanyView date / isCompanyPayResumeInDay so a job seeker knows which employers opened a CV.

Frequently asked questions

Which SuperJob calls power vacancy search and detail?

Search returns JSON:API vacancy documents filtered by keywords, town, payment, remoteWorkBinary and catalogues. Each hit includes vacancyMainInfo (profession, publishedAt) and vacancySalary (minSalary, maxSalary, paymentAgreement). Opening a card loads vacancyDetailInfo (duties, conditions, isRemoteWork, isResumeRequired) and vacancyContactInfo flags for whether phones are shown.

What company and review fields are on the employer page?

A company resource carries title, createdAt, vacanciesCount, description, logoUrl, website and directResponseEnabled. Reviews are companyReview rows with overallRating plus career, salary, stability, management and team scores, reviewText, advantages, disadvantages and willRecommend.

How do resumes, applications and resume views look?

A resume stores position, dateCreate, dateUpdate, datePublish, remoteWork and relocatePossibility. Applying creates a cvApplication wrapping a vacancyResponse (createdAt, viewedAt, hasNewEvents) and may open a chat. Resume-view stats expose viewsCount; marking views read returns resumeCompanyView date / isCompanyPayResumeInDay and resumeView isApplicantViewed.

How is SuperJob authenticated on Android?

Sign-in posts username, password, grant_type and scope and returns an auth resource with token, refreshToken, expiresIn and isPhoneConfirmationRequired, plus an applicant (name, hasLogin, hasPassword). Later signed-in calls send that token on Authorization together with X-Api-App-Id, X-Device-Id and User-Agent. Vacancy and company reads can run without a session; resume, applications, favourites, chats and resume views require the token.

Apps similar to SuperJob: работа и вакансии

  • hh: поиск работы — HeadHunter (hh.ru) is Russia's largest job board, with vacancy search, resumes, applications and employer contacts on Android.
  • Rabota.ru — Rabota.ru is a Russian recruitment site acquired by Sberbank in 2019, listing vacancies with an emphasis on mid-level staff, students and internships.
  • Zarplata.ru — Zarplata.ru is a Russian job board focused on local and regional listings, particularly in Siberia, the Far East and the Urals.
  • Avito — Avito is a Russian classifieds platform whose jobs section is widely used for blue-collar, retail, construction and seasonal hiring.
  • Trudvsem — Trudvsem (Работа в России) is Russia's official government employment platform run by the Federal Labor Service, listing state-verified vacancies.
  • Habr Career — Habr Career, formerly Мой круг, is a Russian job platform specializing in IT and tech vacancies.
  • Indeed Job Search — Indeed is a global job-search engine; its presence in Russia has been limited since 2022, but it remains a common alternative for international hunts.

Topics

  • superjob api
  • superjob vacancies
  • profession minSalary maxSalary
  • companyReview overallRating
  • resume datePublish
  • cvApplication vacancyResponse
  • resumeStatistic viewsCount
  • X-Api-App-Id

Need this app's data API integrated?

We deliver scoped integrations for any named app — from USD 500 with source-code handoff, or hosted access billed per call. Tell us the data you need.

  • NDA + SOW on every engagement
  • Delivery in 3–7 days
  • Payment only after acceptance
  • Work scoped to authorized use

Get a quote