Brazil Jobs Scraper — InfoJobs, Vagas, Gupy, LinkedIn
Pricing
$5.00 / 1,000 job scrapeds
Brazil Jobs Scraper — InfoJobs, Vagas, Gupy, LinkedIn
Scrape Brazilian job listings from 5 major boards: InfoJobs, Vagas.com, Gupy, APInfo (IT), and LinkedIn Jobs. Get title, company, salary, location, description, benefits, experience level, and work model. For recruiters, job aggregators, and labor-market research.
Pricing
$5.00 / 1,000 job scrapeds
Rating
5.0
(3)
Developer
Actor stats
1
Bookmarked
71
Total users
16
Monthly active users
13 days ago
Last modified
Categories
Share
💼 Brazil Jobs Scraper — InfoJobs, Vagas.com, Gupy, APInfo & LinkedIn Jobs
🔗 View on Apify Store | 🇺🇸 English | 🇧🇷 Português
Scrape Brazilian job listings from 5 major job boards in a single run — InfoJobs, Vagas.com, Gupy, APInfo (IT jobs), and LinkedIn Jobs. Search by keyword, filter by state, city, and work modality, then get clean, deduplicated results enriched with salary, experience level, education, benefits, and employment type. Pure HTTP — no headless browser required.
✨ Features
- 🌐 5 job boards at once — InfoJobs, Vagas.com, Gupy (JSON API), APInfo (IT), and LinkedIn Jobs, or pick a single source
- 🔎 Keyword + location search — Filter by Brazilian state (UF), city, and work modality (remote / hybrid / on-site)
- 💰 Salary parsing — Extracts
R$ranges intosalaryMin/salaryMax/salaryFormatted - 🧠 Smart enrichment — Infers experience level (Estágio → Liderança), education, and benefits from titles and descriptions
- 🏢 Clean company names — Resolves Gupy career-page slogans/emojis back to the real company name
- 📄 Optional full descriptions — Detail-page fetch adds full description, employment type, and JSON-LD data
- 🔁 Automatic deduplication — Per-source IDs prevent duplicate listings across pages and boards
- ⚡ Pure HTTP — Fast
BasicCrawlerrequests, no browser overhead;pt-BRheaders, Brazilian proxies recommended
📥 Input
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
keyword | string | ✅ | "desenvolvedor" | Job title or keyword to search (e.g., "marketing", "enfermeiro", "analista de dados") |
state | string | ❌ | — | Brazilian state to filter by (e.g., "São Paulo", "Rio de Janeiro"). Empty = all states |
city | string | ❌ | — | City to filter by (e.g., "São Paulo", "Curitiba"). Empty = all cities |
workModality | string | ❌ | "all" | Filter by modality: all, remote, hybrid, onsite |
sources | string | ❌ | "all" | Which boards to scrape: all, infojobs, vagascom, gupy, apinfo, linkedin |
includeDescription | boolean | ❌ | false | Fetch each job's detail page for full description, benefits, and JSON-LD data (slower, richer) |
maxListings | integer | ❌ | 100 | Maximum number of listings to scrape. Set 0 for unlimited |
maxPages | integer | ❌ | 5 | Maximum search-result pages per source (1–50). Each page has ~20–34 listings |
proxyConfiguration | object | ❌ | — | Apify proxy configuration. Brazilian proxies recommended |
ℹ️ Per-source page caps: Gupy and APInfo fetch up to
min(maxPages, 5)/min(maxPages, 3)pages respectively; LinkedIn up tomin(maxPages, 4); Vagas.com fetches a single result page. TheincludeDescriptionenrichment applies to InfoJobs and Vagas.com listings.
Input Example
{"keyword":"analista de dados","state":"São Paulo","city":"São Paulo","workModality":"remote","sources":"all","includeDescription":true,"maxListings":100,"maxPages":5}
📤 Output
Each job listing is a single dataset record. Fields:
| Field | Type | Description |
|---|---|---|
id | string | Unique ID prefixed by source (infojobs-…, gupy-…, linkedin-…) |
title | string | Job title |
company | string | Employer ("Confidencial" / "Nao informada" when undisclosed) |
salaryMin / salaryMax | number|null | Salary range parsed from the listing |
salaryFormatted | string|null | Original salary text; currency is "BRL" when present |
location / city / state | string|null | Location string and its split parts |
workModality | string|null | remote, hybrid, onsite, or raw modality text |
experienceLevel | string|null | Estágio, Júnior, Pleno, Sênior, Liderança, Especialista (inferred when absent) |
education | string|null | Ensino Médio, Técnico, Superior, Pós-Graduação (inferred from text) |
employmentType | string|null | CLT, PJ, Estágio, Temporário, etc. (mapped from source codes / JSON-LD) |
descriptionSnippet / description | string|null | Short excerpt / full text (includeDescription=true or Gupy) |
benefits | string|null | Comma-separated benefits (Vale Refeição, PLR, Plano de Saúde, …) |
tags | string[] | Source tags (NOVA, URGENTE, REMOTO, PcD, TI, EASY APPLY, PROMOVIDA) |
datePosted / validThrough | string|null | Publication date / application deadline (when available) |
source | string | InfoJobs, Vagas.com, Gupy, APInfo, or LinkedIn Jobs |
url | string | Direct link to the job listing |
applicationUrl / companyLogo | string|null | Application link / logo URL (Gupy only) |
scrapedAt | string | ISO 8601 timestamp of extraction |
Output Example
{"id":"infojobs-11359558","title":"Desenvolvedor Front-End Pleno","company":"Slash Performance","salaryMin":7150,"salaryMax":7150,"salaryFormatted":"R$ 7.150,00","currency":"BRL","location":"Jundiaí - SP","city":"Jundiaí","state":"SP","workModality":null,"experienceLevel":"Pleno","education":"Ensino Superior","employmentType":null,"descriptionSnippet":"Buscamos pessoa desenvolvedora front-end...","description":null,"benefits":"Vale Refeição, Vale Transporte, Plano de Saúde","tags":["NOVA"],"datePosted":"2026/02/19 03:00:00","validThrough":null,"source":"InfoJobs","url":"https://www.infojobs.com.br/vaga-de-...__11359558","scrapedAt":"2026-06-06T12:00:00.000Z"}
Gupy records additionally include
applicationUrlandcompanyLogo.
📋 Use Cases
- Talent sourcing — Aggregate openings across 5 boards into one feed for recruiters
- Salary benchmarking — Collect
salaryMin/salaryMaxranges per role and region - Job market research — Track hiring demand by keyword, modality, and Brazilian state
- Remote-work tracking — Filter
workModality=remoteto monitor home-office openings - IT hiring intelligence — Use
sources=apinfoto focus on Brazilian tech jobs - Lead generation — Identify companies actively hiring in a sector or city
- Job aggregators & boards — Power a niche Brazilian job board with fresh listings
- ATS / CRM enrichment — Feed normalized listings (experience level, benefits, education) into downstream systems
❓ FAQ
Q: Which job boards does this actor scrape?
A: Five — InfoJobs, Vagas.com, Gupy (via its public JSON API), APInfo (IT-focused), and LinkedIn Jobs. Use sources to scrape all of them or just one.
Q: Does it need any login or API key? A: No. All sources are scraped from public search endpoints; Gupy uses its public JSON API. No credentials required.
Q: Why are some fields null?
A: Not every board exposes every field. Salary, education, benefits, and experience level are inferred from the title/description when the source doesn't provide them, but may remain null if no signal is found. Detail-page fields (full description, employmentType, validThrough) are best populated with includeDescription=true.
Q: Do I need a proxy?
A: Recommended. Brazilian job boards (and LinkedIn) may block shared/datacenter IPs. Configure proxyConfiguration with Brazilian proxies for the most reliable results.
Q: How are maxListings and maxPages applied?
A: maxListings caps the total records across all sources (use 0 for unlimited). maxPages caps how many search pages are fetched per source (Gupy/APInfo/LinkedIn have lower internal caps).
Q: Are duplicates removed?
A: Yes. Each listing carries a source-prefixed id; the actor skips IDs it has already collected within a run.
Q: What happens if no jobs are found? A: Instead of failing silently, the actor writes a single diagnostic record (causes + remediation tips, in Portuguese) so you can quickly tell whether it's an IP block, a selector change, or a too-narrow keyword.
💰 Pricing
This actor uses Pay-Per-Event (PPE) pricing — you are charged per job listing scraped (job-scraped). Internal ViralAnalyzer runs are skipped (owner-skip), so you only pay for your own results.
👉 See current event rates on the actor page: https://apify.com/viralanalyzer/brazil-jobs-scraper
🔗 Related Actors
- Mercado Livre Scraper — Brazilian marketplace product data
- Amazon Brazil Intelligence — Product & price intelligence for Amazon BR
- Google Maps BR Scraper — Business & local data extraction
- CNPJ Enricher — Brazilian company data enrichment
- Reclame Aqui Scraper — Consumer complaints & company reputation
📝 Changelog
v2.0 (Current)
- ✅ 5 sources: InfoJobs, Vagas.com, Gupy (JSON API), APInfo (IT), LinkedIn Jobs
- ✅ Keyword + state + city + work-modality filtering
- ✅ Salary parsing (
R$ranges) into structured min/max fields - ✅ Inference of experience level, education, and benefits from text
- ✅ Smart Gupy company-name resolution (filters slogans/emojis)
- ✅ Optional detail-page enrichment with JSON-LD (
includeDescription) - ✅ Cross-page / cross-source deduplication
- ✅ Diagnostic record on zero results (no silent success)
- ✅ Pay-Per-Event billing with owner-skip
💼 Brazil Jobs Scraper — InfoJobs, Vagas.com, Gupy, APInfo & LinkedIn Jobs
🇺🇸 English | 🇧🇷 Português
Extraia vagas de emprego no Brasil de 5 grandes portais em uma única execução — InfoJobs, Vagas.com, Gupy, APInfo (vagas de TI) e LinkedIn Jobs. Busque por palavra-chave, filtre por estado, cidade e modalidade de trabalho, e obtenha resultados limpos e sem duplicatas, enriquecidos com salário, nível de experiência, escolaridade, benefícios e tipo de contratação. HTTP puro — sem navegador headless.
✨ Funcionalidades
- 🌐 5 portais de uma vez — InfoJobs, Vagas.com, Gupy (API JSON), APInfo (TI) e LinkedIn Jobs, ou escolha uma única fonte
- 🔎 Busca por palavra-chave + localização — Filtre por estado (UF), cidade e modalidade (remoto / híbrido / presencial)
- 💰 Parsing de salário — Extrai faixas em
R$parasalaryMin/salaryMax/salaryFormatted - 🧠 Enriquecimento inteligente — Infere nível de experiência (Estágio → Liderança), escolaridade e benefícios de títulos e descrições
- 🏢 Nomes de empresa limpos — Resolve slogans/emojis das páginas de carreira do Gupy para o nome real da empresa
- 📄 Descrições completas opcionais — A busca da página de detalhe adiciona descrição completa, tipo de contratação e JSON-LD
- 🔁 Deduplicação automática — IDs por fonte evitam vagas repetidas entre páginas e portais
- ⚡ HTTP puro — Requisições rápidas com
BasicCrawler, sem navegador; cabeçalhospt-BR, proxies brasileiros recomendados
📥 Entrada
| Parâmetro | Tipo | Obrigatório | Padrão | Descrição |
|---|---|---|---|---|
keyword | string | ✅ | "desenvolvedor" | Cargo ou palavra-chave (ex: "marketing", "enfermeiro", "analista de dados") |
state | string | ❌ | — | Estado para filtrar (ex: "São Paulo", "Rio de Janeiro"). Vazio = todos os estados |
city | string | ❌ | — | Cidade para filtrar (ex: "São Paulo", "Curitiba"). Vazio = todas as cidades |
workModality | string | ❌ | "all" | Filtro de modalidade: all, remote, hybrid, onsite |
sources | string | ❌ | "all" | Portais a raspar: all, infojobs, vagascom, gupy, apinfo, linkedin |
includeDescription | boolean | ❌ | false | Busca a página de detalhe de cada vaga para descrição completa, benefícios e JSON-LD (mais lento, mais rico) |
maxListings | integer | ❌ | 100 | Número máximo de vagas. Use 0 para ilimitado |
maxPages | integer | ❌ | 5 | Máximo de páginas de resultado por fonte (1–50). Cada página tem ~20–34 vagas |
proxyConfiguration | objeto | ❌ | — | Configuração de proxy Apify. Proxies brasileiros recomendados |
ℹ️ Limites de página por fonte: Gupy e APInfo buscam até
min(maxPages, 5)/min(maxPages, 3)páginas; LinkedIn atémin(maxPages, 4); Vagas.com busca uma única página de resultado. O enriquecimento viaincludeDescriptionse aplica às vagas de InfoJobs e Vagas.com.
Exemplo de Entrada
{"keyword":"analista de dados","state":"São Paulo","city":"São Paulo","workModality":"remote","sources":"all","includeDescription":true,"maxListings":100,"maxPages":5}
📤 Saída
Cada vaga é um registro do dataset. Campos:
| Campo | Tipo | Descrição |
|---|---|---|
id | string | ID único prefixado pela fonte (infojobs-…, gupy-…, linkedin-…) |
title | string | Título da vaga |
company | string | Empregador ("Confidencial" / "Nao informada" quando não divulgado) |
salaryMin / salaryMax | número|null | Faixa salarial extraída da vaga |
salaryFormatted | string|null | Texto original do salário; currency é "BRL" quando presente |
location / city / state | string|null | Localização e suas partes separadas |
workModality | string|null | remote, hybrid, onsite ou texto bruto da modalidade |
experienceLevel | string|null | Estágio, Júnior, Pleno, Sênior, Liderança, Especialista (inferido quando ausente) |
education | string|null | Ensino Médio, Técnico, Superior, Pós-Graduação (inferido do texto) |
employmentType | string|null | CLT, PJ, Estágio, Temporário, etc. (mapeado de códigos da fonte / JSON-LD) |
descriptionSnippet / description | string|null | Trecho curto / texto completo (includeDescription=true ou Gupy) |
benefits | string|null | Benefícios separados por vírgula (Vale Refeição, PLR, Plano de Saúde, …) |
tags | string[] | Tags da fonte (NOVA, URGENTE, REMOTO, PcD, TI, EASY APPLY, PROMOVIDA) |
datePosted / validThrough | string|null | Data de publicação / prazo de inscrição (quando disponível) |
source | string | InfoJobs, Vagas.com, Gupy, APInfo ou LinkedIn Jobs |
url | string | Link direto para a vaga |
applicationUrl / companyLogo | string|null | Link de candidatura / URL do logo (somente Gupy) |
scrapedAt | string | Timestamp ISO 8601 da extração |
Exemplo de Saída
{"id":"infojobs-11359558","title":"Desenvolvedor Front-End Pleno","company":"Slash Performance","salaryMin":7150,"salaryMax":7150,"salaryFormatted":"R$ 7.150,00","currency":"BRL","location":"Jundiaí - SP","city":"Jundiaí","state":"SP","workModality":null,"experienceLevel":"Pleno","education":"Ensino Superior","employmentType":null,"descriptionSnippet":"Buscamos pessoa desenvolvedora front-end...","description":null,"benefits":"Vale Refeição, Vale Transporte, Plano de Saúde","tags":["NOVA"],"datePosted":"2026/02/19 03:00:00","validThrough":null,"source":"InfoJobs","url":"https://www.infojobs.com.br/vaga-de-...__11359558","scrapedAt":"2026-06-06T12:00:00.000Z"}
Registros do Gupy incluem adicionalmente
applicationUrlecompanyLogo.
📋 Casos de Uso
- Recrutamento e seleção — Agregue vagas de 5 portais em um único feed para recrutadores
- Benchmark de salário — Colete faixas
salaryMin/salaryMaxpor cargo e região - Pesquisa de mercado de trabalho — Acompanhe demanda por palavra-chave, modalidade e estado
- Monitoramento de trabalho remoto — Filtre
workModality=remotepara acompanhar vagas home office - Inteligência de contratação em TI — Use
sources=apinfopara focar em vagas de tecnologia - Geração de leads — Identifique empresas contratando ativamente em um setor ou cidade
- Agregadores e job boards — Alimente um portal de vagas nicho com listagens atualizadas
- Enriquecimento de ATS / CRM — Envie vagas normalizadas (nível, benefícios, escolaridade) para sistemas downstream
❓ Perguntas Frequentes
P: Quais portais este actor raspa?
R: Cinco — InfoJobs, Vagas.com, Gupy (via API JSON pública), APInfo (focado em TI) e LinkedIn Jobs. Use sources para raspar todos ou apenas um.
P: Precisa de login ou chave de API? R: Não. Todas as fontes são raspadas de endpoints públicos de busca; o Gupy usa sua API JSON pública. Nenhuma credencial necessária.
P: Por que alguns campos vêm null?
R: Nem todo portal expõe todos os campos. Salário, escolaridade, benefícios e nível de experiência são inferidos do título/descrição quando a fonte não os fornece, mas podem permanecer null se não houver sinal. Campos da página de detalhe (description completa, employmentType, validThrough) ficam melhor preenchidos com includeDescription=true.
P: Preciso de proxy?
R: Recomendado. Portais brasileiros de vagas (e o LinkedIn) podem bloquear IPs compartilhados/datacenter. Configure proxyConfiguration com proxies brasileiros para resultados mais confiáveis.
P: Como maxListings e maxPages são aplicados?
R: maxListings limita o total de registros entre todas as fontes (use 0 para ilimitado). maxPages limita quantas páginas de busca são lidas por fonte (Gupy/APInfo/LinkedIn têm limites internos menores).
P: Duplicatas são removidas?
R: Sim. Cada vaga tem um id prefixado pela fonte; o actor ignora IDs já coletados na mesma execução.
P: O que acontece se nenhuma vaga for encontrada? R: Em vez de falhar silenciosamente, o actor grava um registro de diagnóstico (causas + dicas de correção, em português) para você identificar rapidamente se é bloqueio de IP, mudança de seletor ou palavra-chave muito restrita.
💰 Preços
Este actor usa precificação Pay-Per-Event (PPE) — você é cobrado por vaga extraída (job-scraped). Execuções internas da ViralAnalyzer são ignoradas (owner-skip), então você só paga pelos seus próprios resultados.
👉 Consulte as taxas atuais por evento na página do actor: https://apify.com/viralanalyzer/brazil-jobs-scraper
🔗 Actors Relacionados
- Mercado Livre Scraper — Dados de produtos do marketplace brasileiro
- Amazon Brazil Intelligence — Inteligência de produtos e preços da Amazon BR
- Google Maps BR Scraper — Extração de dados de empresas e locais
- CNPJ Enricher — Enriquecimento de dados empresariais brasileiros
- Reclame Aqui Scraper — Reclamações de consumidores e reputação de empresas
📝 Changelog
v2.0 (Atual)
- ✅ 5 fontes: InfoJobs, Vagas.com, Gupy (API JSON), APInfo (TI), LinkedIn Jobs
- ✅ Filtro por palavra-chave + estado + cidade + modalidade de trabalho
- ✅ Parsing de salário (faixas em
R$) em campos min/max estruturados - ✅ Inferência de nível de experiência, escolaridade e benefícios a partir do texto
- ✅ Resolução inteligente de nome de empresa do Gupy (filtra slogans/emojis)
- ✅ Enriquecimento opcional da página de detalhe com JSON-LD (
includeDescription) - ✅ Deduplicação entre páginas / entre fontes
- ✅ Registro de diagnóstico em caso de zero resultados (sem sucesso silencioso)
- ✅ Cobrança Pay-Per-Event com owner-skip
