Vagas Brasil: Brazil Jobs API, Remote & Local Jobs avatar

Vagas Brasil: Brazil Jobs API, Remote & Local Jobs

Pricing

from $2.00 / 1,000 job postings

Go to Apify Store
Vagas Brasil: Brazil Jobs API, Remote & Local Jobs

Vagas Brasil: Brazil Jobs API, Remote & Local Jobs

Monitor open jobs from 49 companies hiring in Brazil (Nubank, Stone, BTG, Inter, XP...) with BRL salary, state, seniority, remote or hybrid and affirmative-action audience. Jobs API on public Greenhouse, Lever, Ashby and InHire boards. Monitor mode charges only new jobs.

Pricing

from $2.00 / 1,000 job postings

Rating

0.0

(0)

Developer

Constancio Dev

Constancio Dev

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

3

Monthly active users

15 days ago

Last modified

Security

Limited permissions

Share

Vagas Brasil: Brazil jobs API from public ATS boards

Monitor open jobs from 49 companies hiring in Brazil (Nubank, Stone, BTG Pactual, Inter, XP, C6 Bank...) with BRL salary, state, seniority, remote or hybrid and affirmative-action audience. Each job comes back structured from the public Greenhouse, Lever, Ashby and InHire job boards, and monitor mode charges only the jobs that are new or changed since the last run. Paste the careers page of any other company on these platforms and it joins the run.

Built by Constancio Dev, a small engineering studio focused on data pipelines and B2B automation. constanciodev.com.br

What you get

  • 49 companies with open jobs in Brazil, ready to run. Checked on 14/10/2026: Brazilian ones (Nubank, Stone, XP, BTG, C6, Inter, QuintoAndar, VTEX, Cielo, Olist...) and global ones hiring here (Datadog, Databricks, MongoDB, GitLab, Coinbase, Figma...). The input uses all 49 by default.
  • Brazil-aware fields. Salary written as "R$ 5.000 a R$ 7.000" becomes salario_min_brl and salario_max_brl; Brazilian city and state names become uf; postings restricted to an audience ("vaga exclusiva para pessoas negras", "PcD") are listed in publico_exclusivo.
  • Brazil filter for global companies. With so_brasil on (default), a global company keeps only jobs located in Brazil or Latin America; Brazilian companies pass whole.
  • Monitor mode. Run it daily and pay only for jobs that are new or changed.
  • Company hiring signal. With saida: "empresas" you get one row per company: open jobs by department, seniority, work model and state, plus sample titles.
  • Official public APIs only. No login, no proxy, no headless browser.

Example output

One dataset item per job. Real item from a test run (13/10/2026):

{
"id": "ashby:nubank:6eb06a07-0f7a-4656-9864-e459efa6e41e",
"fonte": "ashby:nubank",
"titulo": "Staff Software Engineer - Lending Foundations (Policy & Data Platform)",
"empresa": "nubank",
"url": "https://jobs.ashbyhq.com/nubank/6eb06a07-0f7a-4656-9864-e459efa6e41e/application",
"publicada_em": "2026-08-27T17:34:36.363000+00:00",
"modelo": "remoto",
"local": "São Paulo",
"uf": "SP",
"salario_min_brl": null,
"salario_max_brl": null,
"horas_semana": null,
"anos_exigidos": null,
"senioridade": "staff",
"mercado": "brasil",
"publico_exclusivo": [],
"coletado_em": "2026-10-13T15:57:32.279253+00:00"
}

A job also has descricao (the full text) unless you turn it off. Fields never get guessed: when the posting does not say it, the value is null.

FieldMeaning
modeloremoto, hibrido or presencial, as declared by the posting
ufBrazilian state code, when the location allows it
salario_min_brl, salario_max_brlMonthly salary range in BRL, only when the posting states it
horas_semana, anos_exigidosWeekly hours and years of experience required, when stated
senioridadeLevel from the title, in Portuguese or English: estagio, trainee, junior, pleno, senior, especialista (staff, principal) or lideranca (manager, lead, head); null otherwise
mercadobrasil when the posting targets Brazil, internacional otherwise
publico_exclusivoAffirmative-action audience the job is restricted to (mulheres, negros, pcd...), read in Portuguese and English; empty when open to everyone

Input examples

1. Tech jobs at Brazilian fintechs

{
"fontes": ["ashby:nubank", "greenhouse:stone", "greenhouse:inter", "greenhouse:btgpactual"],
"termos": ["engenheiro", "engineer", "dados", "data"],
"incluir_descricao": false
}

2. Daily feed of new jobs from all 49 companies (schedule it once a day)

{
"modo_monitor": true,
"dias_memoria": 90,
"incluir_descricao": false
}

3. Which companies are hiring right now (for SDRs and recruiters)

{
"saida": "empresas",
"fontes": ["ashby:nubank", "greenhouse:stone", "lever:ciandt"],
"urls_ats": ["https://boards.greenhouse.io/suaempresa"]
}

Input reference

FieldWhat it does
termosOptional. Keep only jobs whose title contains at least one of these terms. Empty returns every open job.
fontesPreset companies to collect (all 49 by default).
so_brasilGlobal companies list jobs worldwide; on (default) keeps only jobs located in Brazil or Latin America.
urls_atsCareers page URLs of other companies on Greenhouse, Lever, Ashby or InHire (https://<company>.inhire.app/vagas).
incluir_descricaoInclude the full job description text (default: true).
saidavagas (default): one item per job. empresas: one row per company with its hiring summary.
modo_monitorFor scheduled runs: deliver and charge only jobs that are new or changed since the last run.
dias_memoriaMonitor mode: forget a job after it has not been listed for this many days (default 90).

termos, fontes and urls_ats accept up to 100 entries each.

Company hiring signal (saida: "empresas")

One row per company instead of one item per job. Sources and filters work exactly as in job mode. Real row from a test run (14/10/2026), with the sample trimmed to two titles:

{
"id": "ashby:nubank",
"empresa": "nubank",
"ats": "ashby",
"url_board": "https://jobs.ashbyhq.com/nubank",
"total": 99,
"vagas_novas": null,
"por_area": {"Engineer": 44, "Enterprise Functions": 28, "Design": 9, "Executive": 6,
"Operations": 5, "Machine Learning": 4, "Business Analyst": 1, "People": 1,
"Product": 1},
"por_senioridade": {"senior": 34, "especialista": 25, "lideranca": 24, "nao_informado": 16},
"por_modelo": {"remoto": 84, "nao_informado": 15},
"por_uf": {"SP": 30, "MG": 4, "PE": 2, "nao_informado": 63},
"mais_antiga_em": "2026-07-17T22:01:31.374000+00:00",
"mais_nova_em": "2026-10-14T21:33:17.254000+00:00",
"amostra": [
{"titulo": "Procurement Sr Expert",
"url": "https://jobs.ashbyhq.com/nubank/e7759322-8697-4b3d-9f2e-42da54f925f2/application"},
{"titulo": "Tech Lead - Global Offices Network",
"url": "https://jobs.ashbyhq.com/nubank/985ee82a-c092-42e5-b17d-89fb5a7f5946/application"}
],
"coletado_em": "2026-10-15T01:43:44.419155+00:00"
}
FieldMeaning
totalOpen jobs at the company that passed your filters
vagas_novasWith modo_monitor: jobs that appeared since the last company-mode run; null otherwise
por_areaJobs per department as the ATS lists it, top 10
por_senioridade, por_modelo, por_ufJobs per level, work model and state, with the same values as job mode
mais_antiga_em, mais_nova_emPublication date of the oldest and the newest open job
amostraUp to 5 of the newest jobs, with title and link

Jobs whose posting does not state a value are counted under nao_informado, so each breakdown adds up to total (departments show the top 10 only). With modo_monitor, every company still comes back; vagas_novas tells you which ones just opened jobs.

Pricing

Pay per event, as set in the Actor on 23/10/2026:

EventPrice
Job posting delivered to the dataset$0.002 ($2 per 1,000 jobs)
Company summary (only with saida: "empresas")$0.01 per company, on top of the $0.002 for the row
Actor start$0.00005 per GB of memory

Jobs removed by your filters cost nothing, and in monitor mode neither do jobs you already received. Set a maximum cost per run in the run options and the Actor stops when it reaches it.

FAQ

Which sites does it read? The public job boards of Greenhouse, Lever, Ashby and InHire, the platforms many Brazilian tech companies use. It does not read Gupy, LinkedIn, Indeed or Vagas.com.

How does monitor mode work? The Actor keeps the jobs it delivered in a Key-Value Store of your account, with the date each one was last seen. A job that is still listed and has not changed is not delivered or charged again. A job that changed comes back. A job not listed for dias_memoria days (default 90) is forgotten, so the list does not grow forever.

Can I add a company that is not in the 49? Yes: paste its careers page URL in urls_ats. It must be on Greenhouse, Lever, Ashby or InHire.

Is it allowed to collect these jobs? The Actor only reads postings that companies publish openly through the public APIs of their ATS, without login, and respects robots.txt. Check the terms that apply to your own use of the data.

Something is wrong or missing? Open an issue on this Actor's page, or write to suporte@constanciodev.com.br.

Limits

  • Only companies on these four ATS. The 49 presets are a snapshot of 14/10/2026; a company that changed platform shows up as a failure line in the log.
  • Salary only when it is written. Many postings state no salary, and salario_min_brl stays null; the Actor never estimates one.
  • uf needs a location. A job located only as "Remote" or "Brazil" has uf: null.
  • Audience and seniority come from rules. publico_exclusivo and senioridade are read from the title and text with fixed rules, not AI, and senioridade is null when the title has no level.
  • InHire is slower. It lists jobs without their text, so each InHire job takes one more request: with the four InHire companies (about 100 jobs), a run with every preset took about 3 minutes instead of 1.5 (14/10/2026). Leave them out of fontes when speed matters.
  • Monitor memory is shared. All monitor runs in your account use one list per mode. Two schedules with different filters share it, so a job delivered by one is not delivered by the other.
  • Polite crawler. It identifies itself, respects robots.txt and waits between requests to the same host.

Em português

Coleta as vagas abertas de empresas que contratam no Brasil pelo Greenhouse, Lever, Ashby e InHire, só por APIs públicas, e entrega cada vaga com modelo de trabalho, UF, faixa salarial em reais (quando o anúncio informa), senioridade e público de ação afirmativa. Com saida: "empresas", entrega uma linha por empresa com o resumo de quem está contratando. No modo_monitor, só as vagas novas ou alteradas são entregues e cobradas. Desenvolvido por Constancio Dev.