# Vagas.com.br Scraper — Brazil Job Listings (`hipersoft/vagas-scraper`) Actor

Scrape job listings from Vagas.com.br, one of Brazil's largest job boards: title, company, level, city, state, salary range, contract type (CLT, PJ, temporary), benefits, posting and expiry dates and full description. Keyword and location filters. Export CSV/JSON.

- **URL**: https://apify.com/hipersoft/vagas-scraper.md
- **Developed by:** [hiper soft](https://apify.com/hipersoft) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.0015 / job

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Vagas.com.br Scraper: Brazil Job Listings (Vagas de Emprego)

**Vagas.com.br Scraper** extracts job listings from **Vagas.com**, one of **Brazil's largest job boards**, with thousands of **vagas de emprego** in **São Paulo, Rio de Janeiro, Belo Horizonte, Curitiba, Porto Alegre, Brasília** and every state. For every job you get the **title, company, level (júnior, pleno, sênior), location, city, state, salary range (faixa salarial), contract type (CLT, PJ, temporário, estágio), benefits (vale-refeição, plano de saúde, vale-transporte…), posting date, expiry date, summary and full job description**. Search with **Portuguese keywords**, filter by **location**, and export to **CSV, Excel or JSON**. Ideal for **recruiters and HR teams in Brazil, job aggregators, salary and benefits benchmarking, and labour-market research**.

### What does Vagas.com.br Scraper do?

- 🇧🇷 **Brazilian jobs** from Vagas.com.br.
- 🔎 **Keyword search** (analista, vendedor, motorista, desenvolvedor…).
- 📍 **Location filter** by city or state.
- 💰 **Salary range** when published.
- 📄 **Contract type**: CLT, PJ, temporary, internship.
- 🎁 **Benefits** list for benchmarking.
- 📝 **Full description** and dates.

### What data can you scrape?

| Field | Description |
|---|---|
| Job | ID, link, title, level, summary |
| Company | Company name (or "Confidencial"), logo |
| Location | Location, city, state |
| Pay | Salary range |
| Contract | Contract type |
| Benefits | Benefits list |
| Dates | Posted, valid through |
| Content | Full description |

### Use cases for Brazilian job data

- **Recruiters and HR**: monitor hiring demand and competitor offers by role and city.
- **Benefits and salary benchmarking**: compare salary bands and benefits packages.
- **Job aggregators**: syndicate Brazilian job listings.
- **Labour-market research**: analyse demand by level, contract type and region.

### How to scrape Vagas.com.br

1. Click **Try for free** to open Vagas.com.br Scraper in Apify Console.
2. Enter **keywords** and optional **locations**.
3. Keep **Full job details** on.
4. Click **Start** and download the jobs as **CSV, Excel or JSON**.

### Input

#### Example input

```json
{
  "keywords": ["analista", "desenvolvedor"],
  "locations": ["São Paulo", "SP"],
  "includeDetails": true,
  "maxItems": 200
}
```

| Field | Description |
|---|---|
| **Keywords** | Portuguese job keywords. |
| **Locations** | City or state filter. |
| **Full job details** | Salary, contract, benefits, description. |
| **Max jobs** | 0 = no limit. |

### Output

#### Job example

```json
{
  "jobId": "2822634",
  "url": "https://www.vagas.com.br/vagas/v2822634/analista-contabil-pleno",
  "title": "Analista Contábil Pleno",
  "company": "Confidencial",
  "level": "Pleno",
  "location": "Guarulhos / SP",
  "city": "Guarulhos",
  "state": "SP",
  "salary": "a combinar",
  "contractType": "Temporário",
  "benefits": ["Restaurante interno", "Seguro de vida", "Vale-transporte", "Auxílio estacionamento"],
  "datePosted": "2026-09-18",
  "validThrough": "2026-10-10",
  "description": "Obs: vaga temporária de 6 meses. Principais Responsabilidades: …"
}
```

#### Output schema

| Field | Type | Description |
|---|---|---|
| `jobId`, `url`, `title`, `level`, `summary` | string | Job. |
| `company`, `logo` | string | Company. |
| `location`, `city`, `state` | string | Location. |
| `salary`, `contractType`, `benefits` | mixed | Terms. |
| `postedAt`, `datePosted`, `validThrough` | string | Dates. |
| `description`, `search`, `scrapedAt` | string | Content and source. |

### How much does it cost?

Vagas.com.br Scraper uses **pay-per-job** pricing: a small fixed price per job, with automatic discounts on higher Apify plans. See the **Pricing** tab for the exact price.

### More Brazilian data

- [Catho Scraper](https://apify.com/hipersoft/catho-scraper): Brazilian jobs from Catho.
- [Gupy Jobs Scraper](https://apify.com/hipersoft/gupy-jobs-scraper): jobs from companies using Gupy.
- [Brazil CNPJ Scraper](https://apify.com/hipersoft/brazil-cnpj-scraper): Brazilian company data.

### FAQ

**Why do some jobs show "Confidencial"?**
Some employers hide their name on Vagas.com.br; the scraper returns what is published.

**Why is salary "a combinar"?**
Many employers don't publish a salary band ("to be agreed").

**What formats can I export?**
CSV, Excel, JSON, XML, HTML and RSS, or read the results through the Apify API.

**Can I integrate Vagas.com.br Scraper with other apps?**
Vagas.com.br Scraper can be connected with almost any cloud service or web app thanks to [integrations on the Apify platform](https://apify.com/integrations). It works with [Make](https://apify.com/integrations/make), [Zapier](https://apify.com/integrations/zapier), [Slack](https://docs.apify.com/platform/integrations/slack), [Airbyte](https://docs.apify.com/platform/integrations/airbyte), [GitHub](https://docs.apify.com/platform/integrations/github), [Google Drive](https://docs.apify.com/platform/integrations/drive) and [many more](https://apify.com/integrations), plus the [Apify API](https://docs.apify.com/api/v2), JS/Python clients and MCP. Or use [webhooks](https://docs.apify.com/platform/integrations/webhooks) to trigger an action whenever a run finishes.

**Is it legal to scrape Vagas.com.br?**
The scraper only collects publicly posted job listings and no candidate data. You are responsible for using the data in line with the site's terms and LGPD.

### Related Actors

- [Catho Scraper](https://apify.com/hipersoft/catho-scraper)
- [Gupy Jobs Scraper](https://apify.com/hipersoft/gupy-jobs-scraper)

### Notes

Original clean-room implementation. Returns only public data. Not affiliated with Vagas.com.

# Actor input Schema

## `keywords` (type: `array`):

Job keywords in Portuguese, e.g. analista, vendedor, motorista, enfermeiro, desenvolvedor, auxiliar administrativo.

## `locations` (type: `array`):

Optional: keep jobs in these cities or states, e.g. São Paulo, Rio de Janeiro, Belo Horizonte, SP, RJ.

## `includeDetails` (type: `boolean`):

Adds salary range, contract type, benefits, dates and full description.

## `maxItems` (type: `integer`):

Stop after this many jobs (0 = no limit).

## `proxyConfiguration` (type: `object`):

Not needed in most cases.

## Actor input object example

```json
{
  "keywords": [
    "analista"
  ],
  "includeDetails": true,
  "maxItems": 200,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `results` (type: `string`):

The results as dataset items.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "keywords": [
        "analista"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("hipersoft/vagas-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "keywords": ["analista"] }

# Run the Actor and wait for it to finish
run = client.actor("hipersoft/vagas-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "keywords": [
    "analista"
  ]
}' |
apify call hipersoft/vagas-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,hipersoft/vagas-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/Ihj9mHDcSfHeU1OXi/builds/waeRo4ak6vcLi6B1x/openapi.json
