Vagas de emprego - Infojobs icon

Infojobs Brasil data API: vacancies, candidate CV and salary bands

Infojobs Brasil Ltda · Jobs & Careers

Vagas de emprego - Infojobs is the Android job-search app of Infojobs Brasil Ltda, the company behind the Infojobs job board in Brazil. Candidates type into a search box that suggests jobs, cities and companies as they go, then narrow results by city, job category, salary range and work method, including home-office openings. Each vacancy page shows the description, requirements, required skills, benefits, contract type, working hours, the employer's rating and, when the company discloses it, the salary band. Applying sends the CV the candidate keeps in Infojobs together with answers to any screening questions the employer attached, and a comparison view shows how well the candidate's skills fit the vacancy relative to the other applicants. Saved job alerts re-run a search by keywords, city, salary range and work method at a frequency the candidate picks, and can be paused or reactivated. A Companies hub lists employer brands by sector with review scores for benefits and work environment, reported salaries, open vacancies and follower counts, while a Salaries section ranks the most popular and best-paid jobs and companies. Candidates can also take personality, competence and values tests and read their results, and a premium candidate tier is offered. The app is built for Brazil alone, in Portuguese, with vacancies across São Paulo and the other Brazilian metros, where it competes with Catho, Vagas.com, Indeed and LinkedIn for job seekers' attention.

Vagas — the vacancy cards each search returns — carry idVacancy, title, company, salary, the location3 city, workMethod with a homeOffice flag, experienceRange, publishedDate, the employer's evaluationsAvg and a hasKillerQuestions marker; result sets are sliced by idLocation2List, idCategory1List, idSalaryRangeList and idWorkMethodList, with countHomeOffice tallying the remote share. Vacancy detail adds the posted salaryMin/salaryMax band or a hideSalary flag, contractWorkType, workingHours, category1, requirements, benefits, required skills and the screening killerQuestions an applicant must answer.

Employer records layer review averages — scoreAvg, recommendation, benefitsAvg, workEnvironmentAvg — and reported salary bands (average, min, max) onto sector and size; the company directory counts evaluationsCount, followersCount, salariesCount and vacanciesCount per brand, and the salaries hub ranks mostPopularJobs, maxSalaryJobs, mostPopularBrands and maxSalaryBrands by salariesAvg.

On the candidate side, the signed-in CV holds idCandidate, name, surname, email, age, a salaryMin/salaryMax expectation, skills, experiences, isPremium status and the idVacancyMatchesList of past applications. A vacancy comparison returns the candidate's affinity against the averageAffinity of totalCandidates applicants, a submitted application bundles the vacancy snapshot with idKillerAnswer choices, saved alerts store keywords, idLocation2, idSalaryRange, idFrequency and idStatus, and test results score personality, competences and values.

Market researchers use the vacancy stream for nightly censuses of Brazilian openings by city and category, tracking salary, work method and employer rating; recruiting CRMs enrich outreach with the CV a candidate already maintains, matching on skills and expected pay; compensation teams benchmark offered bands against reported salariesAvg for the same job title; and ATS bots reconcile submitted applications against affinity scores to flag dropped ones. openData Studio makes this Brazilian hiring record — vacancies, employer reviews, salary bands and candidate matches — callable open data.

Screenshots

  • Vagas de emprego - Infojobs screenshot 1
  • Vagas de emprego - Infojobs screenshot 2
  • Vagas de emprego - Infojobs screenshot 3
  • Vagas de emprego - Infojobs screenshot 4
  • Vagas de emprego - Infojobs screenshot 5
  • Vagas de emprego - Infojobs screenshot 6
  • Vagas de emprego - Infojobs screenshot 7
  • Vagas de emprego - Infojobs screenshot 8

API surface

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

  • Search vacancies

    POST /v1/jobs/search opendata

    Returns a paginated vacancy listing (title, company, salary, location3, workMethod, evaluationsAvg) used by the search-results screen.

    Auth: OAuth2 Bearer access token from the app's authorization-code sign-in. Signed-in calls also send Device, IdOriginVisit, Xtor and X-AB-Session-ID headers; premium sessions add IsPremium: true.

    • keywords
    • pageNumber
    • pageSize
    • order
    • idLocation2List
    • idCategory1List
    • idSalaryRangeList
    • idWorkMethodList
    • count
    • countList
    • countHomeOffice
    • data
    • idVacancy
    • title
    • company
    • idCompany
    • salary
    • location3
    • workMethod
    • homeOffice
    • experienceRange
    • evaluationsAvg
    • hasKillerQuestions
    • publishedDate
    • url
    POST /v1/jobs/search HTTP/1.1
    Authorization: Bearer <access-token>
    Content-Type: application/json
    Device: {"os":"Android","version":"3.19.1"}
    IdOriginVisit: 1432
    Xtor: android
    X-AB-Session-ID: <session-id>
    
    {
      "keywords": "analista de dados",
      "pageNumber": 1,
      "pageSize": 10,
      "order": 1,
      "includeEmpty": true,
      "idLocation2List": [347],
      "idCategory1List": [12],
      "idSalaryRangeList": [4],
      "idWorkMethodList": [2],
      "idContractWorkTypeList": [1],
      "idWorkingHourList": [1],
      "idManagerialLevelList": [2],
      "idJobList": []
    }
    {
      "pageNumber": 1,
      "pageSize": 10,
      "count": 1284,
      "position": 0,
      "countList": 1284,
      "countHomeOffice": 312,
      "title": "Vagas de Analista de dados",
      "subtitle": "em São Paulo",
      "search": "analista de dados",
      "filters": "São Paulo - Home office",
      "url": "https://example.com/vagas/analista-de-dados-sao-paulo",
      "gridEngineModel": 1,
      "gridTestBEnabled": false,
      "data": [{
        "idVacancy": "enc-vac-90011",
        "idVacancyList": "enc-list-12",
        "title": "Analista de Dados Pleno",
        "company": "Example Corp",
        "idCompany": "enc-co-441",
        "companyHidden": false,
        "salary": "R$ 7.000 a R$ 9.000",
        "location3": "São Paulo",
        "idLocation2": 347,
        "workMethod": "Híbrido",
        "idWorkMethod": 2,
        "homeOffice": true,
        "experienceRange": "3 a 5 anos",
        "study1Min": "Superior Completo",
        "publishedDate": "2026-09-24T12:00:00Z",
        "insertDate": "2026-09-20T08:15:00Z",
        "evaluationsAvg": 4.2,
        "hasKillerQuestions": true,
        "hasVideoInterview": false,
        "urgentHiring": 0,
        "deficiencyRequired": false,
        "latitude": -23.5505,
        "longitude": -46.6333,
        "url": "https://example.com/vaga/analista-de-dados-pleno-90011",
        "totalMatches": 86,
        "position": 0
      }]
    }
  • Fetch vacancy detail

    GET /v1/jobs/detail opendata

    Hydrates a single vacancy (description, salaryMin/salaryMax, benefits, killerQuestions, company sector/size) for the vacancy-detail screen.

    Auth: OAuth2 Bearer access token from the app's authorization-code sign-in. Signed-in calls also send Device, IdOriginVisit, Xtor and X-AB-Session-ID headers; premium sessions add IsPremium: true.

    • idVacancy
    • title
    • job
    • idJob
    • company
    • idCompany
    • companyDescription
    • brandLogo
    • description
    • salary
    • salaryMin
    • salaryMax
    • hideSalary
    • location3
    • workMethod
    • workingHours
    • contractWorkType
    • category1
    • experienceRange
    • benefits
    • requirements
    • skills
    • killerQuestions
    • idKillerQuestion
    • question
    • publishedDate
    • evaluationsAvg
    GET /v1/jobs/detail?IdVacancy=enc-vac-90011 HTTP/1.1
    Authorization: Bearer <access-token>
    Device: {"os":"Android","version":"3.19.1"}
    IdOriginVisit: 1432
    Xtor: android
    X-AB-Session-ID: <session-id>
    {
      "idVacancy": "enc-vac-90011",
      "title": "Analista de Dados Pleno",
      "job": "Analista de Dados",
      "idJob": 441890,
      "company": "Example Corp",
      "idCompany": "enc-co-441",
      "companyHidden": false,
      "companyDescription": "Marketplace de varejo.",
      "companySector": "Tecnologia",
      "companySize": "500 a 1.000 funcionários",
      "companyLocation2": "São Paulo",
      "brandLogo": "https://cdn.example.com/logos/example.png",
      "description": "Modelar dashboards e pipelines de dados.",
      "salary": "R$ 7.000 a R$ 9.000",
      "salaryMin": 7000.0,
      "salaryMax": 9000.0,
      "salaryType": "Mensal",
      "hideSalary": false,
      "location3": "São Paulo",
      "idLocation1": 1,
      "idLocation2": 347,
      "idLocation3": 9668,
      "workMethod": "Híbrido",
      "idWorkMethod": 2,
      "workingHours": "Integral",
      "contractWorkType": "CLT",
      "idContractWorkType": 1,
      "category1": "Informática / TI",
      "idCategory1": 12,
      "experienceRange": "3 a 5 anos",
      "experienceMin": 36,
      "experienceMax": 60,
      "study1Min": "Superior Completo",
      "numberVacancies": 2,
      "benefits": ["VR", "VT", "Plano de saúde"],
      "requirements": ["SQL", "Python"],
      "skills": ["SQL", "Python", "Power BI"],
      "killerQuestions": [{
        "idKillerQuestion": 801,
        "question": "Possui experiência com SQL?",
        "maxScore": 10,
        "idKillerQuestionType": 1,
        "killerAnswers": []
      }],
      "publishedDate": "2026-09-24T12:00:00Z",
      "url": "https://example.com/vaga/analista-de-dados-pleno-90011",
      "evaluationsAvg": 4.2,
      "latitude": -23.5505,
      "longitude": -46.6333
    }
  • Suggest vacancy search terms

    GET /v1/jobs/suggest opendata

    Returns typeahead suggestions (jobs, categories, cities, companies) for the vacancy-search box.

    Auth: OAuth2 Bearer access token from the app's authorization-code sign-in. Signed-in calls also send Device, IdOriginVisit, Xtor and X-AB-Session-ID headers; premium sessions add IsPremium: true.

    • Term
    • jobs
    • category1List
    • location2List
    • location3List
    • companies
    • id
    • text
    GET /v1/jobs/suggest?Term=analista HTTP/1.1
    Authorization: Bearer <access-token>
    X-AB-Session-ID: <session-id>
    {
      "jobs": [{"id": 441890, "text": "Analista de Dados"}, {"id": 441891, "text": "Analista de BI"}],
      "category1List": [{"id": 12, "text": "Informática / TI"}],
      "location2List": [{"id": 347, "text": "São Paulo"}],
      "location3List": [{"id": 9668, "text": "São Paulo - SP"}],
      "companies": [{"id": 441, "text": "Example Corp"}]
    }
  • Fetch vacancy company profile

    GET /v1/employers/profile opendata

    Returns the employer page attached to a vacancy: reviews (scoreAvg, recommendation) and reported salary bands (average, min, max).

    Auth: OAuth2 Bearer access token from the app's authorization-code sign-in. Signed-in calls also send Device, IdOriginVisit, Xtor and X-AB-Session-ID headers; premium sessions add IsPremium: true.

    • idCompany
    • company
    • description
    • location2
    • sector
    • size
    • urlInfoJobs
    • evaluations
    • scoreAvg
    • recommendation
    • benefitsAvg
    • workEnvironmentAvg
    • salaries
    • average
    • min
    • max
    • valueMin
    • valueMax
    GET /v1/employers/profile?IdVacancy=enc-vac-90011 HTTP/1.1
    Authorization: Bearer <access-token>
    X-AB-Session-ID: <session-id>
    {
      "idCompany": "enc-co-441",
      "idCompanyEvaluation": "enc-eval-441",
      "company": "Example Corp",
      "description": "Marketplace de varejo.",
      "location2": "São Paulo",
      "sector": "Tecnologia",
      "size": "500 a 1.000 funcionários",
      "urlInfoJobs": "https://example.com/empresa/example-corp",
      "urlSite": "https://example.com",
      "urlPandaPe": "",
      "evaluations": {
        "count": 214,
        "scoreAvg": 4.2,
        "recommendation": 82,
        "benefitsAvg": 4.0,
        "conciliationAvg": 3.8,
        "opportunityAvg": 4.1,
        "workEnvironmentAvg": 4.3,
        "score1": 12, "score2": 18, "score3": 40, "score4": 70, "score5": 74,
        "items": []
      },
      "salaries": {
        "job": "Analista de Dados",
        "average": 8200.0,
        "min": 7000,
        "max": 11000,
        "count": 48,
        "total": 48,
        "percentage": 62,
        "reportDate": "2026-09-01T00:00:00Z",
        "items": [{"valueMin": 7000, "valueMax": 9000, "count": 22, "percentage": 45.8, "volume": 22}]
      },
      "benefits": [],
      "interviews": {"items": []},
      "multimedias": []
    }
  • Compare candidate vs vacancy

    GET /v1/jobs/match-score opendata

    Scores how the signed-in candidate matches a vacancy (affinity vs averageAffinity) and which required skills they already have.

    Auth: OAuth2 Bearer access token from the app's authorization-code sign-in. Signed-in calls also send Device, IdOriginVisit, Xtor and X-AB-Session-ID headers; premium sessions add IsPremium: true.

    • idVacancy
    • affinity
    • averageAffinity
    • totalCandidates
    • skills
    • name
    • hasCandidate
    • hasMatches
    • statistics
    GET /v1/jobs/match-score?IdVacancy=enc-vac-90011 HTTP/1.1
    Authorization: Bearer <access-token>
    X-AB-Session-ID: <session-id>
    {
      "affinity": 78,
      "averageAffinity": 54,
      "totalCandidates": 86,
      "skills": [
        {"name": "SQL", "hasCandidate": true, "hasMatches": true},
        {"name": "Python", "hasCandidate": true, "hasMatches": true},
        {"name": "Power BI", "hasCandidate": false, "hasMatches": true}
      ],
      "statistics": []
    }
  • Fetch candidate CV

    GET /v1/candidates/cv osint

    Returns the signed-in candidate CV (email, name, salaryMin/salaryMax, experiences, skills, match list) used by the profile and apply screens.

    Auth: OAuth2 Bearer access token from the app's authorization-code sign-in. Signed-in calls also send Device, IdOriginVisit, Xtor and X-AB-Session-ID headers; premium sessions add IsPremium: true.

    • idCandidate
    • name
    • surname
    • email
    • photo
    • age
    • idSex
    • validated
    • isPremium
    • employed
    • job
    • idLocation2
    • latitude
    • longitude
    • salaryMin
    • salaryMax
    • skills
    • experiences
    • idJob
    • beginDate
    • idVacancyMatchesList
    GET /v1/candidates/cv HTTP/1.1
    Authorization: Bearer <access-token>
    Device: {"os":"Android","version":"3.19.1"}
    X-AB-Session-ID: <session-id>
    IsPremium: true
    {
      "idCandidate": "enc-cand-7781",
      "name": "Ana",
      "surname": "Souza",
      "email": "[email protected]",
      "photo": "https://cdn.example.com/photos/7781.jpg",
      "age": 29,
      "idAgeRange": 3,
      "idSex": 2,
      "idStatus": 1,
      "validated": true,
      "isPremium": true,
      "employed": true,
      "job": "Analista de Dados",
      "idLocation1": 1,
      "idLocation2": 347,
      "idLocation3": 9668,
      "latitude": -23.5505,
      "longitude": -46.6333,
      "salaryMin": 7000.0,
      "salaryMax": 10000.0,
      "idSalaryType": 1,
      "idContractWorkType": 1,
      "idWorkingHours": 1,
      "idExperienceRange": 4,
      "idExperienceTime": 48,
      "idStudy1Last": 5,
      "idStudy1Max": 5,
      "changeResidence": false,
      "travel": false,
      "sendNotifications": true,
      "skills": ["SQL", "Python"],
      "experiences": [{
        "idJob": 441890,
        "job": "Analista de Dados",
        "idCategory1": 12,
        "idCategory2": 44,
        "idManagerialLevel": 2,
        "beginDate": "2022-03-01T00:00:00Z",
        "endDate": null,
        "Finished": false
      }],
      "studies": [],
      "languages": [],
      "knowledges": [],
      "idVacancyMatchesList": [90011],
      "pageNumber": 1,
      "pageSize": 10
    }
  • Insert vacancy match (apply)

    POST /v1/applications/submit osint

    Posts an application (match) bundling the vacancy snapshot, candidate PII/skills and killer-question answers; returns a status integer.

    Auth: OAuth2 Bearer access token from the app's authorization-code sign-in. Signed-in calls also send Device, IdOriginVisit, Xtor and X-AB-Session-ID headers; premium sessions add IsPremium: true.

    • idOrigin
    • lastClick
    • vacancy
    • idVacancy
    • idCompany
    • title
    • candidate
    • email
    • name
    • age
    • salaryMin
    • salaryMax
    • isPremium
    • skills
    • killerQuestions
    • answers
    • idKillerQuestion
    • idKillerAnswer
    POST /v1/applications/submit HTTP/1.1
    Authorization: Bearer <access-token>
    Content-Type: application/json
    X-AB-Session-ID: <session-id>
    
    {
      "idOrigin": 1,
      "lastClick": "apply",
      "testOption": 0,
      "testButton": 0,
      "modelVersion": "v3",
      "gridEngineModel": 1,
      "vacancy": {
        "idVacancy": "enc-vac-90011",
        "idCompany": "enc-co-441",
        "title": "Analista de Dados Pleno",
        "idLocation2": 347,
        "idCategory2": 44,
        "salaryMax": 9000.0
      },
      "candidate": {
        "email": "[email protected]",
        "name": "Ana Souza",
        "age": 29,
        "idLocation2": 347,
        "salaryMin": 7000.0,
        "salaryMax": 10000.0,
        "isPremium": true,
        "validated": true,
        "skills": ["SQL", "Python"]
      },
      "killerQuestions": [{"idKillerQuestion": 801, "maxScore": 10}],
      "answers": [{"idKillerQuestion": 801, "idKillerAnswer": 1}]
    }
    1
  • List job alerts

    POST /v1/alerts/list opendata

    Lists the candidate's saved job alerts (keywords, location, salary range, frequency, active status) for the Alerts screen.

    Auth: OAuth2 Bearer access token from the app's authorization-code sign-in. Signed-in calls also send Device, IdOriginVisit, Xtor and X-AB-Session-ID headers; premium sessions add IsPremium: true.

    • pageNumber
    • pageSize
    • count
    • countActive
    • data
    • idAlert
    • name
    • job
    • keywords
    • location
    • idJob
    • idLocation2
    • idWorkMethod
    • idSalaryRange
    • idFrequency
    • idStatus
    POST /v1/alerts/list HTTP/1.1
    Authorization: Bearer <access-token>
    Content-Type: application/json
    X-AB-Session-ID: <session-id>
    
    {
      "pageNumber": 1,
      "pageSize": 10
    }
    {
      "pageNumber": 1,
      "pageSize": 10,
      "count": 3,
      "countActive": 2,
      "data": [{
        "idAlert": "enc-alert-21",
        "name": "Analista de dados em São Paulo",
        "job": "Analista de Dados",
        "keywords": "analista de dados",
        "location": "São Paulo",
        "idJob": 441890,
        "idLocation2": 347,
        "idLocation3": 9668,
        "idWorkMethod": 2,
        "idSalaryRange": 4,
        "idFrequency": 1,
        "idStatus": 2,
        "idCategory1List": [12],
        "idContractWorkTypeList": [1],
        "idWorkingHoursList": [1],
        "insertDate": "2026-08-01T10:00:00Z",
        "modifyDate": "2026-09-20T09:00:00Z"
      }]
    }
  • Create job alert

    POST /v1/alerts/create opendata

    Creates a saved search alert from the current vacancy filters (keywords, city, salary range, work method) and returns a status integer.

    Auth: OAuth2 Bearer access token from the app's authorization-code sign-in. Signed-in calls also send Device, IdOriginVisit, Xtor and X-AB-Session-ID headers; premium sessions add IsPremium: true.

    • keywords
    • idJob
    • idLocation2
    • idLocation3
    • idWorkMethod
    • idSalaryRange
    • idFrequency
    • idOrigin
    • idCategory1List
    • idContractWorkTypeList
    • idWorkingHoursList
    POST /v1/alerts/create HTTP/1.1
    Authorization: Bearer <access-token>
    Content-Type: application/json
    X-AB-Session-ID: <session-id>
    
    {
      "keywords": "analista de dados",
      "idJob": 441890,
      "idLocation2": 347,
      "idLocation3": 9668,
      "idWorkMethod": 2,
      "idSalaryRange": 4,
      "idFrequency": 1,
      "idOrigin": 12,
      "idCategory1List": [12],
      "idContractWorkTypeList": [1],
      "idWorkingHoursList": [1],
      "idManagerialLevelList": [2],
      "idDeficiency1List": []
    }
    1
  • Fetch salary market snapshot

    GET /v1/salaries/overview opendata

    Returns the salaries hub: most-popular and highest-paying jobs/brands with salariesAvg and evaluationsAvg.

    Auth: OAuth2 Bearer access token from the app's authorization-code sign-in. Signed-in calls also send Device, IdOriginVisit, Xtor and X-AB-Session-ID headers; premium sessions add IsPremium: true.

    • total
    • mostPopularJobs
    • maxSalaryJobs
    • mostPopularBrands
    • maxSalaryBrands
    • idJob
    • job
    • salariesAvg
    • idCompany
    • name
    • logo
    • evaluationsAvg
    GET /v1/salaries/overview HTTP/1.1
    Authorization: Bearer <access-token>
    X-AB-Session-ID: <session-id>
    {
      "total": 18420,
      "mostPopularJobs": [
        {"idJob": 441890, "job": "Analista de Dados", "salariesAvg": 8200}
      ],
      "maxSalaryJobs": [
        {"idJob": 552001, "job": "Engenheiro de Dados", "salariesAvg": 14500}
      ],
      "mostPopularBrands": [
        {"idCompany": 441, "idCompanyEvaluation": 441, "name": "Example Corp", "logo": "https://cdn.example.com/logos/example.png", "salariesAvg": 9800, "evaluationsAvg": 4.2}
      ],
      "maxSalaryBrands": [
        {"idCompany": 900, "idCompanyEvaluation": 900, "name": "Example Bank", "logo": "https://cdn.example.com/logos/bank.png", "salariesAvg": 16200, "evaluationsAvg": 4.0}
      ]
    }
  • Search company brands

    POST /v1/employers/search opendata

    Returns a paginated company-brand listing (name, sector, evaluationsAvg, vacanciesCount, followersCount) for the Companies screen.

    Auth: OAuth2 Bearer access token from the app's authorization-code sign-in. Signed-in calls also send Device, IdOriginVisit, Xtor and X-AB-Session-ID headers; premium sessions add IsPremium: true.

    • name
    • keywords
    • idCompanySector
    • idLocation2
    • hasActiveVacancies
    • pageNumber
    • count
    • data
    • idCompany
    • logo
    • sector
    • evaluationsAvg
    • evaluationsCount
    • followersCount
    • salariesCount
    • vacanciesCount
    POST /v1/employers/search HTTP/1.1
    Authorization: Bearer <access-token>
    Content-Type: application/json
    X-AB-Session-ID: <session-id>
    
    {
      "name": "Example",
      "keywords": "tecnologia",
      "idCompanySector": 8,
      "idLocation2": 347,
      "hasActiveVacancies": true,
      "idCompanyEvaluationList": [],
      "pageNumber": 1,
      "pageSize": 10
    }
    {
      "pageNumber": 1,
      "pageSize": 10,
      "count": 86,
      "title": "Empresas de tecnologia",
      "subtitle": "em São Paulo",
      "filters": "Com vagas ativas",
      "data": [{
        "idCompany": "enc-co-441",
        "idCompanyEvaluation": "enc-eval-441",
        "name": "Example Corp",
        "logo": "https://cdn.example.com/logos/example.png",
        "background": "https://cdn.example.com/covers/example.png",
        "sector": "Tecnologia",
        "evaluationsAvg": 4.2,
        "evaluationsCount": 214,
        "followersCount": 12840,
        "salariesCount": 48,
        "vacanciesCount": 12
      }]
    }
  • Fetch psychometric test result

    GET /v1/assessments/result osint

    Returns the candidate's psychometric/competence test scores (personality, competences, values) shown on the tests-result screen.

    Auth: OAuth2 Bearer access token from the app's authorization-code sign-in. Signed-in calls also send Device, IdOriginVisit, Xtor and X-AB-Session-ID headers; premium sessions add IsPremium: true.

    • personality
    • competences
    • values
    • key
    • name
    • description
    • score
    • order
    GET /v1/assessments/result HTTP/1.1
    Authorization: Bearer <access-token>
    X-AB-Session-ID: <session-id>
    {
      "personality": {
        "key": "executor",
        "name": "Executor",
        "description": "Orientado a entrega e prazos.",
        "score": 82,
        "order": 1
      },
      "competences": [
        {"key": "analitica", "name": "Pensamento analítico", "description": "",
         "score": 76, "order": 1}
      ],
      "values": [
        {"key": "colaboracao", "name": "Colaboração", "description": "", "score": 70, "order": 1}
      ]
    }
  • List most popular companies

    GET /v1/employers/featured opendata

    Returns the featured/most-popular employer brands shown on the Companies hub.

    Auth: OAuth2 Bearer access token from the app's authorization-code sign-in. Signed-in calls also send Device, IdOriginVisit, Xtor and X-AB-Session-ID headers; premium sessions add IsPremium: true.

    • total
    • brands
    • idCompany
    • name
    • logo
    • sector
    • evaluationsAvg
    • evaluationsCount
    • followersCount
    • vacanciesCount
    • salariesCount
    GET /v1/employers/featured HTTP/1.1
    Authorization: Bearer <access-token>
    X-AB-Session-ID: <session-id>
    {
      "total": 24,
      "brands": [{
        "idCompany": "enc-co-441",
        "idCompanyEvaluation": "enc-eval-441",
        "name": "Example Corp",
        "logo": "https://cdn.example.com/logos/example.png",
        "sector": "Tecnologia",
        "evaluationsAvg": 4.2,
        "evaluationsCount": 214,
        "followersCount": 12840,
        "vacanciesCount": 12,
        "salariesCount": 48
      }]
    }
  • Issue OAuth access token

    POST /v1/auth/candidate-token osint

    Exchanges an OpenID Connect authorization code for the Bearer access_token used on every subsequent data call.

    Auth: Unauthenticated OAuth2 token exchange: the app swaps an authorization code (PKCE) from its OpenID Connect sign-in for a Bearer access token, then sends it as Authorization: Bearer on every data call.

    • grant_type
    • client_id
    • code
    • redirect_uri
    • code_verifier
    • access_token
    • token_type
    • expires_in
    • refresh_token
    • id_token
    • scope
    POST /v1/auth/candidate-token HTTP/1.1
    Content-Type: application/x-www-form-urlencoded
    
    grant_type=authorization_code&client_id=<client-id>&code=<auth-code>&redirect_uri=<app-redirect>&code_verifier=<pkce>
    {
      "access_token": "<access-token>",
      "token_type": "Bearer",
      "expires_in": 3600,
      "refresh_token": "<refresh-token>",
      "id_token": "<id-token>",
      "scope": "openid profile offline_access email"
    }

Data categories

  • job listings
  • job details
  • candidate profiles
  • applications
  • job alerts
  • salaries
  • company reviews
  • psychometric tests
  • auth sessions

Where teams use this data

  • Brazil vacancy market census

    Nightly jobs pulls hit POST /v1/jobs/search filtered by idLocation2List and idCategory1List, then hydrate salary, workMethod and evaluationsAvg from each vacancy card to track openings in São Paulo and other metros.

  • Candidate CRM enrichment

    A recruiting CRM calls GET /v1/candidates/cv after OAuth sign-in and stores email, name, salaryMin/salaryMax, skills and experiences so outreach can match the CV the candidate already maintains in Infojobs.

  • Salary-band benchmarking

    Compensation teams read GET /v1/salaries/overview plus the employer-profile salaries block (average, min, max) to compare offered bands against reported salariesAvg for the same job title.

  • Apply-pipeline reconciliation

    ATS bots post POST /v1/applications/submit with vacancy.idVacancy and candidate.email, then cross-check GET /v1/jobs/match-score affinity against the in-house pipeline so dropped applications are flagged.

Frequently asked questions

What does the Infojobs Brasil data API expose?

A paginated vacancy search with filters, a vacancy detail view, an employer profile with reviews and salary bands, a candidate-vs-vacancy match score, the signed-in candidate CV, an apply call, saved job alerts, a salaries hub and a company-brand directory.

How is the vacancy and CV API authenticated?

The app signs in with an OAuth2 / OpenID Connect authorization-code flow and then sends Authorization: Bearer on every call, together with device, visit-origin, referrer and A/B-session headers; premium sessions add an IsPremium header.

What fields identify a vacancy and a candidate?

Vacancies use idVacancy, title, company, salary, location3 and workMethod. The candidate CV uses idCandidate, email, name, surname, salaryMin, salaryMax, skills and experiences.

Does the app expose salary-band data?

Yes. GET /v1/salaries/overview returns mostPopularJobs and maxSalaryBrands with salariesAvg, and GET /v1/employers/profile adds a per-employer salary average/min/max plus review scoreAvg.

Apps similar to Vagas de emprego - Infojobs

  • Catho — Catho is a long-running Brazilian job platform for administrative, technical and corporate openings, often compared with InfoJobs as a complementary board.
  • Indeed — Indeed is a large job-search engine in Brazil that aggregates listings from many sites and is used for keyword alerts across internships through management roles.
  • LinkedIn — LinkedIn Brasil is used for professional networking and mid-to-senior roles in IT, marketing, finance and management, where recruiters also source candidates.
  • Vagas.com — Vagas.com is a Brazilian board used in hiring at large companies, with a strong presence in trainee programmes and formal CLT processes.
  • Gupy — Gupy is recruitment software used by major Brazilian companies, so many corporate applications go through its multi-stage hiring flows.
  • Glassdoor — Glassdoor is used to research employers, salaries and interview reports before applying, alongside Brazilian job boards.

Topics

  • infojobs brasil api
  • com.infojobs.phone endpoints
  • infojobs vacancy search api
  • candidate CV email
  • salariesAvg
  • idVacancy
  • infojobs job alerts api
  • infojobs apply api

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