Catho Job Scraper: Brazilian Job Listings with Salary avatar

Catho Job Scraper: Brazilian Job Listings with Salary

Pricing

from $1.75 / 1,000 results

Go to Apify Store
Catho Job Scraper: Brazilian Job Listings with Salary

Catho Job Scraper: Brazilian Job Listings with Salary

Extracts Brazilian job listings from catho.com.br by keyword: title, company, salary in reais, city, positions, posting date and sponsored flag. Public data only.

Pricing

from $1.75 / 1,000 results

Rating

0.0

(0)

Developer

Demetrius Greses Jr

Demetrius Greses Jr

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Categories

Share

Extracts Brazilian job listings from catho.com.br by keyword, with title, company, salary in reais, city, open positions, posting date and sponsored flag, for recruiters, job aggregators and labor-market analysts in Brazil.

Use cases

  • Recruiters and staffing agencies track the open roles for a keyword across Brazil and see which listings are sponsored or have an active recruiter.
  • Job aggregators and HR-tech teams load listings with company, city and salary into their own search or job alerts.
  • Labor-market analysts count open positions per keyword and measure how salaries are offered, as a number or as "A Combinar" (to be agreed), week to week.
  • Career researchers compare posting dates, city spread and the share of confidential postings across job families.

Sample output

Three rows from a real run (keyword desenvolvedor, default settings):

idtitlecompanycitysalaryTextpostedAt
38717766DesenvolvedorTecla TFortalezaR$ 10.0002026-10-06T03:00:00.000Z
38604820Desenvolvedor(a)QUALY RHLimeiraR$ 8.0002026-10-01T03:00:00.000Z
38566483DesenvolvedorHIGHENGRio de JaneiroA partir de R$ 4.000,002026-09-25T03:00:00.000Z

One item as JSON from a run with fetchDetails on (the description is shortened with "…"):

{
"id": "38717766",
"title": "Desenvolvedor",
"company": "Tecla T",
"confidentialCompany": false,
"city": "Fortaleza",
"state": "CE",
"postalCode": "60160-196",
"positions": 1,
"extraCities": 0,
"salary": 10000,
"salaryText": "R$ 10.000",
"salaryMin": 9001,
"salaryMax": 10000,
"benefitsCount": null,
"employmentType": "Prestador de serviços (PJ)",
"postedAt": "2026-10-06T03:00:00.000Z",
"postedText": "Publicada em 06/10",
"updated": false,
"sponsored": false,
"activeRecruiter": false,
"description": "Uma empresa especializada em joias em ouro 18k, reconhecida pela qualidade, sofisticação e excelência no atendimento. Atuando no mercado de Fortaleza, a marca s …",
"jobUrl": "https://www.catho.com.br/vagas/desenvolvedor/38717766",
"sourceUrl": "https://www.catho.com.br/vagas/desenvolvedor/38717766",
"scrapedAt": "2026-10-13T00:05:41.795Z"
}

With the default settings (fetchDetails off), description, employmentType, state, postalCode, salaryMin and salaryMax are null. Salary is in Brazilian reais (BRL).

Pricing

$2.50 per 1,000 results. A 500-result run costs about $1.25. You pay only for results saved to your dataset, plus Apify's standard start fee of $0.00005 per run. Apify Silver and Gold plan users get lower per-result prices automatically.

Set Max results to cap what a run can cost. The Actor stops cleanly when it reaches your spending limit.

Input

See the input tab for full configuration options.

FieldTypeDescription
queriesarrayJob keywords, one per entry, for example desenvolvedor or analista de dados. Each keyword is read as a catho.com.br keyword listing page: accents are removed and spaces become hyphens.
startUrlsarrayKeyword listing pages on catho.com.br, for example https://www.catho.com.br/vagas/desenvolvedor/. Search pages (/buscar/vagas/ or any q= query), job pages and other sites are ignored.
maxPagesPerQueryintegerResult pages to read for each keyword, 20 jobs per page. From 1 to 42, default 5. The Actor also stops early when the site has no new jobs for a keyword.
fetchDetailsbooleanAlso open each job page to add the description, employment type, posting day, salary range, state and postal code. Off by default; one extra request per job. If a job page still refuses the request after several tries, the job is returned with its listing fields only, so no job is lost.
maxItemsintegerMaximum number of results to return. Default 100, maximum 50,000. You are charged per result.
proxyConfigurationobjectApify datacenter proxy by default.

Example input, two keywords:

{
"queries": ["desenvolvedor", "python"],
"maxPagesPerQuery": 42,
"maxItems": 1000
}

Example input, with job pages:

{
"queries": ["analista de dados"],
"fetchDetails": true,
"maxItems": 100
}

Integrations

  • API: run the Actor and fetch results with the Apify API or the JavaScript and Python clients.
  • AI agents: call it as a tool through the Apify MCP server.
  • No-code: connect it to Make, Zapier or n8n, or export results straight to Google Sheets.
  • Scheduling: run it daily or hourly with Apify Schedules and get fresh listings on each run.

FAQ

What are the limits? The site lists a limited number of jobs per keyword, and the Actor reads until the listing runs out. The results counter can show more than the listing reaches: desenvolvedor runs to page 42 with one job on it, about 820 job cards in all, and python ended on page 31 with about 570 distinct jobs. For more coverage, add more specific keywords. There is no location filter in this version: the site's city URL form returned no job cards in testing, so the Actor reads keyword searches only. Sponsored jobs repeat on several pages and are returned once. Listings show the day without a year or a time: the year is the most recent past one and postedAt is midnight in America/Sao_Paulo. About 60% of listings show "A Combinar" (salary to be agreed), so salary is null for them; read salaryText for the wording. Requests run two at a time, at most 40 a minute.

Is this legal? The Actor collects public listing data only, with no login. It does not request the search pages that robots.txt disallows (/buscar/vagas/ and any URL with a q= or utm_source= query). It crawls at a polite rate and retires its session and backs off on 401, 403 and 429 responses. It is not affiliated with, endorsed by or connected to Catho. You are responsible for how you use the data.

What is never collected? Recruiter names: the listing shows only a badge for an active recruiter. The company of a confidential posting: the card shows "Empresa Confidencial", the field stays null, and the job page's company name is not read. Street addresses from job pages are not output. E-mail addresses, phone numbers, web links and social handles in job descriptions are replaced by [email], [phone], [link] and [handle]. Company names are kept as published on the listing. Descriptions are company text and can mention people by name, so review them before you reuse them.

Something broke or a field is missing? Open an issue on the Actor's Issues tab. We answer within one business day and usually ship a fix within 48 hours.

Changelog

  • 0.1 (2026-10-12) — First release: keyword listing pages, salary and positions parsing, sponsored and recruiter flags, optional job-page enrichment.