Vagas.com.br Scraper - Salary, Benefits, No Duplicates avatar

Vagas.com.br Scraper - Salary, Benefits, No Duplicates

Pricing

$5.00 / 1,000 job scrapeds

Go to Apify Store
Vagas.com.br Scraper - Salary, Benefits, No Duplicates

Vagas.com.br Scraper - Salary, Benefits, No Duplicates

Search Vagas.com.br by one or more Brazilian job keywords and get salary, benefits, contract type and full description per listing. $0.005 per job, no duplicate charges.

Pricing

$5.00 / 1,000 job scrapeds

Rating

0.0

(0)

Developer

Gio

Gio

Maintained by Community

Actor stats

0

Bookmarked

17

Total users

6

Monthly active users

18 days ago

Last modified

Categories

Share

Why use this scraper

Vagas.com.br is one of Brazil's oldest and largest job boards, and its listings carry details (disclosed salary ranges, full benefit lists, contract type) that recruiters, researchers and job aggregators need in bulk, not one tab at a time. Vagas.com.br has no public API, so pulling that data at scale means scraping the site and keeping the scraper working as its pages change. This actor does that for you: give it one or more Brazilian job-search keywords and get back every matching listing as clean JSON, with full detail pages included when you want them.

Overview

Input is a list of search keywords. Output is one JSON item per job listing found for each keyword, with duplicate job IDs across keywords or pages automatically detected and skipped so you are never billed twice for the same listing. With includeDetails on, the actor opens each job's own page to pull the full description, benefits and contract type; with it off, it reads only the search result cards, which is faster and cheaper when you just need titles, companies and locations.

Supported inputs

  • searchTerms (required array, e.g.
    ["desenvolvedor", "analista de dados", "marketing"]
    ) - each term runs its own search on Vagas.com.br; results from all terms land in the same dataset, tagged with the term that found them.
  • maxItems - caps how many listings come back in total (0 for no limit).
  • includeDetails - true visits each job's detail page for full description, benefits and contract type; false returns only what the search results list shows, for a faster and cheaper run.
  • proxy - optional; Vagas.com.br generally works without one, but residential proxy can be enabled for reliability.

Use cases

  • Job market research: track which roles, skills and seniority levels Brazilian employers are hiring for right now, by keyword.
  • Recruiting and sourcing: build a live feed of open positions for a role to map which companies are actively hiring.
  • Salary benchmarking: collect the salary ranges that employers choose to disclose, by role, region and contract type.
  • Lead generation: identify companies hiring for roles related to your product or service and reach out while the need is live.
  • Talent analytics dashboards: feed structured listings into a BI tool to track hiring demand and location trends over time.
  • Competitive hiring intelligence: watch a specific competitor's open roles by running their known hiring keywords on a schedule, to see where and how fast they are growing a team.

How it works

The actor searches Vagas.com.br for each keyword you provide and reads the result pages directly from the site's own listing data rather than scraping rendered text, which keeps fields consistent even when the page design changes. When includeDetails is on, it visits each individual job page in turn to pull the full description, the complete benefits list and contract type, then merges that into the same record as the search result fields. A job ID seen more than once, whether from pagination or from overlapping keywords, is recorded once and never billed twice.

Input configuration

Single keyword, full details:

{
"searchTerms": ["desenvolvedor"],
"maxItems": 50,
"includeDetails": true
}

Multiple keywords in one run:

{
"searchTerms": ["desenvolvedor", "analista de dados", "marketing"],
"maxItems": 100,
"includeDetails": true
}

Fast, lighter run without detail pages:

{
"searchTerms": ["recursos humanos"],
"maxItems": 30,
"includeDetails": false
}

Output sample

Real items from a production run (October 2026), keyword "desenvolvedor":

[
{
"id": "v2835043",
"url": "https://www.vagas.com.br/vagas/v2835043/desenvolvedor-java",
"title": "Desenvolvedor Java",
"company": "Synchro",
"seniorityLevel": "Pleno",
"location": "100% Home Office",
"salary": "a combinar",
"contractType": "Regime CLT",
"description": "Descricao: A Synchro Solucoes Fiscais esta em busca de um(a) Desenvolvedor(a) Java para fazer parte do nosso time de tecnologia...",
"requirements": null,
"benefits": [],
"publishedDate": "15/09/2026",
"searchTerm": "desenvolvedor",
"scrapedAt": "2026-10-03T09:31:32.408Z"
},
{
"id": "v2831921",
"url": "https://www.vagas.com.br/vagas/v2831921/desenvolvedor-a-backend-net-senior-c",
"title": "Desenvolvedor(a) Backend .net Senior | C#",
"company": "be3 health tech",
"seniorityLevel": "Senior",
"location": "Sao Paulo A empresa aceita apenas candidaturas de Sao Paulo",
"salary": "a combinar",
"contractType": "Pessoa Juridica",
"description": "Descricao: Atividades e Responsabilidades A Be3 Health Tech esta em busca de um(a) Desenvolvedor(a) Full Stack Senior, com forte atuacao em Backend...",
"requirements": null,
"benefits": [],
"publishedDate": "24/08/2026",
"searchTerm": "desenvolvedor",
"scrapedAt": "2026-10-03T09:31:35.105Z"
}
]

Key output fields

FieldTypeDescription
idstringVagas.com.br's own job id (e.g. v2835043).
urlstringDirect link to the listing.
titlestringJob title as posted.
companystringEmployer name, or "Confidencial" when the employer withholds it.
seniorityLevelstringSeniority as classified by the listing (e.g. Pleno, Senior, Junior/Trainee).
locationstringWork location or remote-work note.
salarystringDisclosed salary range, or "a combinar" when the employer does not disclose it.
contractTypestringRegime CLT, Pessoa Juridica, or other contract type listed.
descriptionstringFull job description (requires includeDetails: true).
requirementsnullAlways null; Vagas.com.br folds requirements text into description rather than a separate field.
benefitsarrayList of disclosed benefits (requires includeDetails: true); empty otherwise.
publishedDatestringDate the listing was published, as shown on the site.
searchTermstringThe keyword that found this listing.
scrapedAtstringISO timestamp of when the item was scraped.

Pricing

EventPrice
Job scraped (each listing returned)$0.005

Pay per result only. Duplicate job IDs found again across pages or keywords are skipped and never billed twice.

What makes this richer than the competition

Two other scrapers on the Apify Store cover Vagas.com.br, by users in the last 30 days: viralanalyzer/brazil-jobs-scraper (34, which spans Vagas plus InfoJobs, Gupy, APInfo and LinkedIn Jobs at the same $0.005 per job) and latinamericadata/gupy-vagas-brasil (6, cheaper at $0.003 per result but focused primarily on Gupy). This actor is built specifically for Vagas.com.br with built-in duplicate protection across keywords and pages, so running several related search terms in one call never double-charges for the same listing, and the includeDetails toggle lets you choose between a fast, cheap listing-only pull or the full job page with benefits and contract type, in the same input.

Notes & limitations

  • requirements is always null; Vagas.com.br does not separate requirements from the job description, so that text lives inside description instead.
  • salary, contractType, full description and benefits are only populated when includeDetails is true. With it false, those fields come back null or empty and the run is faster and cheaper.
  • salary reflects only what the employer chose to disclose on the listing; most Brazilian job posts show "a combinar" (negotiable) instead of a number.
  • Results reflect Vagas.com.br's own search ranking and relevance for each keyword; the actor does not re-sort or filter results itself.
  • company returns "Confidencial" when the employer chose not to disclose its name on the listing, which is common for recruiting agencies posting on a client's behalf; this is the site's own label, not a scraping gap.

FAQ

Can I search for more than one role in a single run? Yes, searchTerms accepts a list; every result is tagged with the exact keyword that found it.

Why is salary often "a combinar"? Brazilian employers frequently choose not to publish a number. The field returns the site's own text, which is "a combinar" (negotiable) when no figure is given.

Does includeDetails: false still return the full job description? No, only the fields visible on the search result card (title, company, seniority, location, published date). Turn includeDetails on for the full description and benefits.

Will I be charged twice if two keywords return the same job? No, job IDs are deduplicated automatically across keywords and pages within a run.

Can I filter by city or remote work before scraping? Not as a separate input field; filter the location field in the output after the run, or use a more specific search keyword.

Does the actor stop at the first page of results? No, it paginates through Vagas.com.br's results automatically for each keyword until it reaches maxItems or runs out of listings.

For AI Agents & LLM Apps

This actor is callable directly from an MCP-compatible client at mcp.apify.com, or via the standard Apify API. Example with the run-sync-get-dataset-items endpoint, which runs the actor and returns the dataset items in one call:

curl "https://api.apify.com/v2/acts/gio21~vagas-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"searchTerms": ["desenvolvedor"], "maxItems": 50, "includeDetails": true}'

Disclaimer

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Vagas.com.br or any of its subsidiaries. All trademarks mentioned are the property of their respective owners.

SEO Keywords

vagas.com.br scraper, brazilian jobs scraper, vagas scraper api, brazil job listings api, vagas emprego scraper, brazilian job board data