Brazil Jobs Scraper — InfoJobs, Vagas, Gupy, LinkedIn avatar

Brazil Jobs Scraper — InfoJobs, Vagas, Gupy, LinkedIn

Pricing

$5.00 / 1,000 job scrapeds

Go to Apify Store
Brazil Jobs Scraper — InfoJobs, Vagas, Gupy, LinkedIn

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

viralanalyzer

viralanalyzer

Maintained by Community

Actor stats

1

Bookmarked

73

Total users

17

Monthly active users

16 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 into salaryMin / 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 BasicCrawler requests, no browser overhead; pt-BR headers, Brazilian proxies recommended

📥 Input

ParameterTypeRequiredDefaultDescription
keywordstring"desenvolvedor"Job title or keyword to search (e.g., "marketing", "enfermeiro", "analista de dados")
statestringBrazilian state to filter by (e.g., "São Paulo", "Rio de Janeiro"). Empty = all states
citystringCity to filter by (e.g., "São Paulo", "Curitiba"). Empty = all cities
workModalitystring"all"Filter by modality: all, remote, hybrid, onsite
sourcesstring"all"Which boards to scrape: all, infojobs, vagascom, gupy, apinfo, linkedin
includeDescriptionbooleanfalseFetch each job's detail page for full description, benefits, and JSON-LD data (slower, richer)
maxListingsinteger100Maximum number of listings to scrape. Set 0 for unlimited
maxPagesinteger5Maximum search-result pages per source (1–50). Each page has ~20–34 listings
proxyConfigurationobjectApify 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 to min(maxPages, 4); Vagas.com fetches a single result page. The includeDescription enrichment 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:

FieldTypeDescription
idstringUnique ID prefixed by source (infojobs-…, gupy-…, linkedin-…)
titlestringJob title
companystringEmployer ("Confidencial" / "Nao informada" when undisclosed)
salaryMin / salaryMaxnumber|nullSalary range parsed from the listing
salaryFormattedstring|nullOriginal salary text; currency is "BRL" when present
location / city / statestring|nullLocation string and its split parts
workModalitystring|nullremote, hybrid, onsite, or raw modality text
experienceLevelstring|nullEstágio, Júnior, Pleno, Sênior, Liderança, Especialista (inferred when absent)
educationstring|nullEnsino Médio, Técnico, Superior, Pós-Graduação (inferred from text)
employmentTypestring|nullCLT, PJ, Estágio, Temporário, etc. (mapped from source codes / JSON-LD)
descriptionSnippet / descriptionstring|nullShort excerpt / full text (includeDescription=true or Gupy)
benefitsstring|nullComma-separated benefits (Vale Refeição, PLR, Plano de Saúde, …)
tagsstring[]Source tags (NOVA, URGENTE, REMOTO, PcD, TI, EASY APPLY, PROMOVIDA)
datePosted / validThroughstring|nullPublication date / application deadline (when available)
sourcestringInfoJobs, Vagas.com, Gupy, APInfo, or LinkedIn Jobs
urlstringDirect link to the job listing
applicationUrl / companyLogostring|nullApplication link / logo URL (Gupy only)
scrapedAtstringISO 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 applicationUrl and companyLogo.

📋 Use Cases

  • Talent sourcing — Aggregate openings across 5 boards into one feed for recruiters
  • Salary benchmarking — Collect salaryMin/salaryMax ranges per role and region
  • Job market research — Track hiring demand by keyword, modality, and Brazilian state
  • Remote-work tracking — Filter workModality=remote to monitor home-office openings
  • IT hiring intelligence — Use sources=apinfo to 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

📝 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$ para salaryMin / 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çalhos pt-BR, proxies brasileiros recomendados

📥 Entrada

ParâmetroTipoObrigatórioPadrãoDescrição
keywordstring"desenvolvedor"Cargo ou palavra-chave (ex: "marketing", "enfermeiro", "analista de dados")
statestringEstado para filtrar (ex: "São Paulo", "Rio de Janeiro"). Vazio = todos os estados
citystringCidade para filtrar (ex: "São Paulo", "Curitiba"). Vazio = todas as cidades
workModalitystring"all"Filtro de modalidade: all, remote, hybrid, onsite
sourcesstring"all"Portais a raspar: all, infojobs, vagascom, gupy, apinfo, linkedin
includeDescriptionbooleanfalseBusca a página de detalhe de cada vaga para descrição completa, benefícios e JSON-LD (mais lento, mais rico)
maxListingsinteger100Número máximo de vagas. Use 0 para ilimitado
maxPagesinteger5Máximo de páginas de resultado por fonte (1–50). Cada página tem ~20–34 vagas
proxyConfigurationobjetoConfiguraçã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 via includeDescription se 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:

CampoTipoDescrição
idstringID único prefixado pela fonte (infojobs-…, gupy-…, linkedin-…)
titlestringTítulo da vaga
companystringEmpregador ("Confidencial" / "Nao informada" quando não divulgado)
salaryMin / salaryMaxnúmero|nullFaixa salarial extraída da vaga
salaryFormattedstring|nullTexto original do salário; currency é "BRL" quando presente
location / city / statestring|nullLocalização e suas partes separadas
workModalitystring|nullremote, hybrid, onsite ou texto bruto da modalidade
experienceLevelstring|nullEstágio, Júnior, Pleno, Sênior, Liderança, Especialista (inferido quando ausente)
educationstring|nullEnsino Médio, Técnico, Superior, Pós-Graduação (inferido do texto)
employmentTypestring|nullCLT, PJ, Estágio, Temporário, etc. (mapeado de códigos da fonte / JSON-LD)
descriptionSnippet / descriptionstring|nullTrecho curto / texto completo (includeDescription=true ou Gupy)
benefitsstring|nullBenefícios separados por vírgula (Vale Refeição, PLR, Plano de Saúde, …)
tagsstring[]Tags da fonte (NOVA, URGENTE, REMOTO, PcD, TI, EASY APPLY, PROMOVIDA)
datePosted / validThroughstring|nullData de publicação / prazo de inscrição (quando disponível)
sourcestringInfoJobs, Vagas.com, Gupy, APInfo ou LinkedIn Jobs
urlstringLink direto para a vaga
applicationUrl / companyLogostring|nullLink de candidatura / URL do logo (somente Gupy)
scrapedAtstringTimestamp 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 applicationUrl e companyLogo.

📋 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/salaryMax por cargo e região
  • Pesquisa de mercado de trabalho — Acompanhe demanda por palavra-chave, modalidade e estado
  • Monitoramento de trabalho remoto — Filtre workModality=remote para acompanhar vagas home office
  • Inteligência de contratação em TI — Use sources=apinfo para 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

📝 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