Infojobs Brasil data API: vacancies, candidate CV and salary bands
Vagas de emprego - Infojobs is Infojobs Brasil's Android client for vacancy search, candidate CV and salary bands. Behind the listing screen, /v1/jobs/search returns paginated cards with idVacancy, title, company and salary; the signed-in profile call /v1/candidates/cv returns email, name and salaryMin. Match apply, job alerts, company reviews and the salaries hub share the same Bearer session issued by /v1/auth/token.
Vagas de emprego - Infojobs (package com.infojobs.phone, versionName 3.19.1) is Infojobs Brasil's Android client for vacancy search, candidate CV, match apply, job alerts, company reviews and salary bands. Behind those screens the app talks to a first-party JSON API over HTTPS, with sign-in handled by an OAuth2 / OpenID Connect authorization-code flow. Signed-in calls send an Authorization: Bearer access token plus device, visit-origin and A/B-session headers; premium sessions add an IsPremium header. Field names below (idVacancy, title, company, salary, email, name, salaryMin, evaluationsAvg, affinity) are the properties on the app's API models.
Screenshots
API surface
Search vacancies
POST
/v1/jobs/searchopendataReturns 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
Illustrative example reconstructed from the app's interface — not a live capture.
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 }] }Derived from the app's interface; endpoint details are illustrative, not a live capture.
reconstructed from the app's vacancy search-results flowfield set mirrors the vacancy-listing model behind the results screen
Fetch vacancy detail
GET
/v1/jobs/detailopendataHydrates 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
Illustrative example reconstructed from the app's interface — not a live capture.
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 }Derived from the app's interface; endpoint details are illustrative, not a live capture.
reconstructed from the app's vacancy-detail screencovers the salary-band, benefits and screening-question blocks
Suggest vacancy search terms
GET
/v1/jobs/suggestopendataReturns 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
Illustrative example reconstructed from the app's interface — not a live capture.
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"}] }Derived from the app's interface; endpoint details are illustrative, not a live capture.
reconstructed from the vacancy search box typeahead
Fetch vacancy company profile
GET
/v1/employers/profileopendataReturns 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
Illustrative example reconstructed from the app's interface — not a live capture.
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": [] }Derived from the app's interface; endpoint details are illustrative, not a live capture.
reconstructed from the employer page attached to a vacancy
Compare candidate vs vacancy
GET
/v1/jobs/match-scoreopendataScores 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
Illustrative example reconstructed from the app's interface — not a live capture.
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": [] }Derived from the app's interface; endpoint details are illustrative, not a live capture.
reconstructed from the candidate-vs-vacancy comparison panel
Fetch candidate CV
GET
/v1/candidates/cvosintReturns 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
- photo
- age
- idSex
- validated
- isPremium
- employed
- job
- idLocation2
- latitude
- longitude
- salaryMin
- salaryMax
- skills
- experiences
- idJob
- beginDate
- idVacancyMatchesList
Illustrative example reconstructed from the app's interface — not a live capture.
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 }Derived from the app's interface; endpoint details are illustrative, not a live capture.
reconstructed from the app's profile and apply screens
Insert vacancy match (apply)
POST
/v1/applications/submitosintPosts 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
- name
- age
- salaryMin
- salaryMax
- isPremium
- skills
- killerQuestions
- answers
- idKillerQuestion
- idKillerAnswer
Illustrative example reconstructed from the app's interface — not a live capture.
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}] }1Derived from the app's interface; endpoint details are illustrative, not a live capture.
reconstructed from the app's apply flow
List job alerts
POST
/v1/alerts/listopendataLists 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
Illustrative example reconstructed from the app's interface — not a live capture.
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" }] }Derived from the app's interface; endpoint details are illustrative, not a live capture.
reconstructed from the app's alerts screen
Create job alert
POST
/v1/alerts/createopendataCreates 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
Illustrative example reconstructed from the app's interface — not a live capture.
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": [] }1Derived from the app's interface; endpoint details are illustrative, not a live capture.
reconstructed from the save-alert flow on search results
Fetch salary market snapshot
GET
/v1/salaries/overviewopendataReturns 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
Illustrative example reconstructed from the app's interface — not a live capture.
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} ] }Derived from the app's interface; endpoint details are illustrative, not a live capture.
reconstructed from the app's salaries hub
Search company brands
POST
/v1/employers/searchopendataReturns 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
Illustrative example reconstructed from the app's interface — not a live capture.
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 }] }Derived from the app's interface; endpoint details are illustrative, not a live capture.
reconstructed from the app's companies directory
Fetch psychometric test result
GET
/v1/assessments/resultosintReturns 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
Illustrative example reconstructed from the app's interface — not a live capture.
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} ] }Derived from the app's interface; endpoint details are illustrative, not a live capture.
reconstructed from the app's test-result screen
List most popular companies
GET
/v1/employers/featuredopendataReturns 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
Illustrative example reconstructed from the app's interface — not a live capture.
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 }] }Derived from the app's interface; endpoint details are illustrative, not a live capture.
reconstructed from the featured section of the companies hub
Issue OAuth access token
POST
/v1/auth/tokenosintExchanges 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
Illustrative example reconstructed from the app's interface — not a live capture.
POST /v1/auth/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" }Derived from the app's interface; endpoint details are illustrative, not a live capture.
reconstructed from the app's sign-in and session bootstrap
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.
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.