Catho Jobs Scraper
Pricing
from $1.99 / 1,000 results
Catho Jobs Scraper
Collect current Catho Brazil jobs and full descriptions from the public detail API. Prefilled keyword/location searches, configurable listing proxy, bounded direct HTTP details and source-matched output. No paid vendor API key or synthetic jobs.
Pricing
from $1.99 / 1,000 results
Rating
0.0
(0)
Developer
Jobs Scraper
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
14 days ago
Last modified
Categories
Security
Limited permissionsShare
What does Catho Jobs Scraper do?
Collect real public jobs from Catho Brazil, including complete descriptions from the website's own read-only detail API. The default searches for desenvolvedor in São Paulo, requests up to ten jobs, and accepts full-detail records only when their native URL identity and title match the listing. It does not generate jobs, invent salaries, reveal source-hidden employers, solve CAPTCHAs, or access private application/account routes. No paid vendor API key is required.
Why use the public job data?
Analyze published vacancies, skills and advertised compensation with source-attributed records. A browser reads current search cards because direct HTTP access may be denied. Full descriptions are then fetched by direct server-side HTTP through the source's public JSON detail route, without browser cookies or proxy credentials, with bounded concurrency (three by default, maximum four). Search pagination remains sequential. Images, media and fonts are skipped to reduce unnecessary transfer. On Apify, use schedules, the API tab, integrations, run monitoring and exports. This is not a promise of unrestricted source access or availability.
What data can be extracted?
| Field | Type | Meaning |
|---|---|---|
| jobId, applyUrl | string | Matching native listing identity and public vacancy URL |
| jobTitle | string | Published vacancy title |
| companyName, companyUrl | string | Public employer labels/links when exposed |
| location | string | Actual source location, not the requested input copied as a result |
| description, descriptionHtml | string | Full description and original markup when supplied |
| salary, jobType, workSchedule | string | Published pay, contract and work-schedule labels |
| benefits, requirements | array | Explicit source values, when available |
| postedDate | string | Labelled listing date, when exposed |
| rawData | object | Original source offer and permitted company metadata |
| extractionStatus, dataMode | string | Detail completeness and public-source provenance |
| sourcePortal, country, scrapedAt | string | Catho/Brazil source context and retrieval time |
The dataset schema describes all 21 fields. Unavailable null, blank and empty optional values are omitted, while actual source zero and false values are retained. No currency or employer is guessed. Descriptions are untrusted markup: sanitize them before rendering downstream. A listing URL does not mean that an application was submitted.
How to scrape Catho
- Keep the prefilled keyword/location or supply an official Catho
/vagas/search URL. - Choose maxItems, normally ten, and keep includeDetails enabled for complete descriptions.
- Review proxyEnabled and proxyConfiguration before running; proxies can cost money.
- Run the Actor and inspect actual dataset rows and source diagnostics.
- Download the dataset in various formats such as JSON, HTML, CSV, or Excel.
See the input tab for full configuration options. An explicit startUrl preserves its native search path, query parameters and initial page; it takes precedence over generated keyword/location paths. searchQuery is an alias preferred over keyword when generating a URL. The source decides the native search semantics.
{"keyword": "desenvolvedor","location": "São Paulo","maxItems": 10,"includeDetails": true,"detailTransport": "direct_http","detailConcurrency": 3,"requestTimeoutSecs": 30,"proxyEnabled": true,"googleSearchFallbackEnabled": false}
Filters, proxy settings and limitations
Legacy sortBy, jobType, experienceLevel, datePosted and remoteOnly shortcuts were not implemented by the older code. Unsupported non-default shortcuts now fail explicitly instead of silently returning unfiltered data. Use an appropriate source-provided native URL for such searches; not every native filter combination has been verified. The Actor reads Catho Brazil only (country BR).
proxyEnabled=true honors exactly the supplied proxyConfiguration. The default requests Apify residential proxies without a fixed country; it may incur platform proxy charges. A Brazil-only proxy route failed to establish a tunnel in the production check, so the default does not force that restriction. This does not change the Brazil source search. Disable proxyEnabled explicitly for direct access, or configure another authorized available route. There is no hidden fallback to a different paid proxy tier. Captchas and denied requests are recorded, not solved. Automatic repeated blocked-session rotations and retries are disabled. Telemetry records requested proxy groups, source responses, detail HTTP status/timing and skipped resources without including proxy credentials.
detailTransport=direct_http is the default: the configured proxy applies to the listing browser only, while the public detail API is called directly from the Actor. Set detailTransport=browser explicitly to use the browser route for details too. There is no automatic switch between these modes after a denial. Direct detail requests stop scheduling remaining work after a 401, 403 or 429; already active bounded requests may finish. Diagnostics label the actual transport. Neither mode accesses private candidate or employer accounts.
includeDetails=false explicitly selects listing-only mode and does not demonstrate full-description recovery. includeSalary=false removes top-level salary; includeCompanyDetails=false removes extra company metadata. Source-hidden companies stay hidden. Original public offer fields can still remain in rawData. Small searches, removed jobs and failed details can yield fewer than maxItems. A zero-record run fails and never emits diagnostic rows as jobs.
An optional paid Google fallback remains off. It is accepted only with includeDetails=false because indexed snippets cannot prove full live job access. If enabled explicitly in a permitted cloud run, it calls another Apify Actor and adds charges; output is labelled as indexed, not full detail. It is not used as maintenance recovery evidence.
Observed output shape
These simplified records were observed in a real local run on October 23, 2026. They illustrate source identity only, are not a promise the vacancies remain open, and are never runtime fallback data.
[{"jobId": "38917184","jobTitle": "Desenvolvedor de Inteligência Artificial","companyName": "Devpartner","applyUrl": "https://www.catho.com.br/vagas/desenvolvedor-de-inteligencia-artificial/38917184","extractionStatus": "detail_api"},{"jobId": "38930008","jobTitle": "Desenvolvedor Full Stack","companyName": "UTC ENGENHARIA","applyUrl": "https://www.catho.com.br/vagas/desenvolvedor-full-stack/38930008","extractionStatus": "detail_api"}]
Testing, cost and support
Use apify run for local tests. Local storage is not uploaded to Apify Console. Production needs a separate saved source/build and real successful output test before maintenance may be removed. Dependency versions and the vendor Playwright browser image are locked together for reproducibility; a local Windows run is not itself a Docker build test.
RUN_SUMMARY reports actual result and complete-detail counts. SOURCE_METADATA contains public request evidence and proxy analytics. ERROR_DIAGNOSTIC holds failures; optional debug/blocked artifacts remain outside the dataset. Consult current Store and Apify platform pricing: runtime, storage, optional proxies and an opted-in child Actor can incur charges. No fixed per-run price is promised here.
This Actor is not affiliated with Catho. Respect source terms and applicable privacy law. Public job data may contain personal information; collect and process it only with a legitimate purpose. Do not use the Actor for private data or access-control bypasses. Report issues through the Issues tab with a source URL, sanitized input and run ID, never credentials.