# Catho Brazil Jobs & Salary Listings Scraper (`scrapers_lat/catho-brasil-jobs-scraper`) Actor

Scrape Catho (catho.com.br) job listings across Brazil: job title, hiring company, salary, city and state, contract type, remote / home office flag, posted date and a description excerpt. Search many keywords or paste search URLs in one run. Export to JSON, CSV or Excel.

- **URL**: https://apify.com/scrapers\_lat/catho-brasil-jobs-scraper.md
- **Developed by:** [Scrapers Lat](https://apify.com/scrapers_lat) (community)
- **Categories:** Jobs, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $6.80 / 1,000 results

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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Catho Brazil Jobs & Salary Listings Scraper

> Collect job postings from Catho, one of Brazil's largest job boards, with salary, hiring company, location, contract type and remote flag — structured and ready to analyze.

**📥 [Input](https://apify.com/scrapers_lat/catho-brasil-jobs-scraper/input-schema) · 📤 [Output](https://apify.com/scrapers_lat/catho-brasil-jobs-scraper/output-schema) · 💰 [Pricing](https://apify.com/scrapers_lat/catho-brasil-jobs-scraper/pricing) · ▶️ [Examples](https://apify.com/scrapers_lat/catho-brasil-jobs-scraper/examples)**

### What you get

For every job posting, a clean flat record with:

- **jobTitle** — the position name (pt-BR)
- **company** — the hiring company (null when the listing is confidential)
- **salary** — the advertised pay or range as shown (for example "Até R$ 2.000,00", "A Combinar")
- **benefitsCount** — number of benefits offered
- **city** and **state** — where the job is located
- **employmentType** — contract type (CLT, PJ, estágio, etc.)
- **remote** — whether the role is home office / remote / hybrid
- **area** — the job's functional category when available
- **postedDate** and **datePosted** — when the vacancy was published
- **vacancies** — number of open positions
- **description** — an excerpt of the full job description
- **activeRecruiter** — whether a recruiter is actively reviewing candidates
- **jobUrl** — a direct link to the posting

You are only ever charged for real job records. Empty or blocked runs cost nothing.

### Who is it for

- Recruiters and staffing agencies mapping the Brazilian talent market
- HR and compensation teams benchmarking salaries by role and city
- Job-market researchers and data teams tracking hiring demand
- Aggregators and job boards enriching their own listings

### How to use it

1. Add one or more **keywords** (for example `desenvolvedor`, `analista financeiro`, `home office`) or paste full Catho search URLs. Each item runs as its own search.
2. Set **Max Jobs To Scrape**.
3. Leave **Fetch full job details** on to also capture contract type, state and a description excerpt.
4. Run it and export the results to JSON, CSV or Excel, or pull them through the API.

### FAQ

**Do I need a Catho account or login?** No. The actor only reads public job pages.

**Can I search several roles at once?** Yes. The keywords field is a list — every keyword is searched and paginated in the same run.

**How is salary returned?** Exactly as advertised on the listing, including "A Combinar" (negotiable) when no value is shown.

**Is remote / home office detected?** Yes, the `remote` flag is set from the role's location and title signals.

### Related actors

- InfoJobs Brazil Jobs & Salary Listings Scraper
- Computrabajo Job Listings & Salary Scraper (LATAM)
- GetOnBrd LATAM Tech Jobs & Salary Data Scraper
- LinkedIn Jobs, Company & Seniority Scraper

***

This actor is not affiliated with, endorsed by, or sponsored by Catho. All product and company names are trademarks of their respective owners. Use the data in compliance with applicable laws and the source's terms.

# Actor input Schema

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

One or more job keywords (for example 'desenvolvedor', 'analista financeiro', 'home office') or full Catho search URLs. Each item runs as a separate search and is paginated. A keyword like 'analista de rh' is turned into the matching Catho search automatically.

## `maxJobs` (type: `integer`):

Maximum number of jobs to collect across all searches in this run.

## `enrichDetails` (type: `boolean`):

When on (recommended), each job is enriched from its detail page with the contract type, state, posted date and a description excerpt. Turn off for a faster, lighter run that keeps only the listing fields.

## Actor input object example

```json
{
  "keywords": [
    "desenvolvedor"
  ],
  "maxJobs": 40,
  "enrichDetails": true
}
```

# Actor output Schema

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

No description

# 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": [
        "desenvolvedor"
    ],
    "maxJobs": 40
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapers_lat/catho-brasil-jobs-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": ["desenvolvedor"],
    "maxJobs": 40,
}

# Run the Actor and wait for it to finish
run = client.actor("scrapers_lat/catho-brasil-jobs-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).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": [
    "desenvolvedor"
  ],
  "maxJobs": 40
}' |
apify call scrapers_lat/catho-brasil-jobs-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=scrapers_lat/catho-brasil-jobs-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/i54e9d3XRL6hptrUQ/builds/R0bKdrechcUMNV5JW/openapi.json
