Sólides Vagas Brazil Jobs Scraper
Pricing
from $2.00 / 1,000 per results
Sólides Vagas Brazil Jobs Scraper
Brazil job postings from Sólides Vagas (vagas.solides.com.br): title, employer, city/state, salary in BRL when shown, CLT/PJ/internship, on-site/remote/hybrid, seniority, area, posted date. Keyword and location filters. No personal data. Unofficial; not affiliated with Sólides.
Pricing
from $2.00 / 1,000 per results
Rating
0.0
(0)
Developer
JP Open Data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Job postings from Sólides Vagas (vagas.solides.com.br), one of Brazil's large job boards with about 70,000 open positions: title, employer, city and state, salary in BRL when the company shows it, contract type (CLT, PJ, estágio...), on-site/remote/hybrid, seniority, area and posted date, in a clean English schema.
Search by job title in Portuguese, optionally narrowed by state or city, workplace type, contract type, seniority and occupation area. Every filter is the site's own search filter, so you get exactly what a visitor sees on vagas.solides.com.br.
Unofficial tool. Not affiliated with or endorsed by Sólides. It reads public list pages only (no login), politely (strictly serial requests at least 1.5 s apart, a hard per-run request budget, no block evasion), requests only URLs the site's robots.txt allows, and extracts job facts only — no personal data (see "Privacy" below). You are responsible for making sure your use of the data complies with the site's terms and applicable law (including the LGPD).
Quick start — verified input
This input was run successfully on 2026-10-04 (14 jobs per keyword, 2 requests, about 5 seconds, no proxy). Running with an empty input {} uses exactly these values.
{"keywords": ["vendedor", "auxiliar administrativo"],"maxItemsPerKeyword": 14}
More examples:
{"keywords": ["analista de dados", "desenvolvedor", "enfermeiro"],"locations": ["SP", "Belo Horizonte - MG"],"workplaceType": "hibrido","contractTypes": ["clt"],"maxItemsPerKeyword": 50,"maxApiRequests": 20}
Typical Portuguese search terms: vendedor, auxiliar administrativo, assistente financeiro, analista de RH, técnico de enfermagem, motorista, estágio, jovem aprendiz, operador de caixa, recepcionista. Use "*" to list all jobs.
Common input mistakes
| Wrong | Right | Why |
|---|---|---|
"keywords": ["sales person"] | "keywords": ["vendedor"] | Postings are in Portuguese; English titles match only a few. |
"locations": ["Rio Claro"] | "locations": ["Rio Claro - SP"] | Some city names exist in several states; add the UF. |
"locations": ["São Paulo"] meaning the city | "locations": ["São Paulo - SP"] | A bare name that is also a state is read as the state (a warning says so). |
"contractTypes": ["full-time"] | "contractTypes": ["clt"] | Valid: clt, pj, estagio, aprendiz, temporario, autonomo, freelancer, cooperado. |
"maxItemsPerKeyword": 500 with the default budget | also raise "maxApiRequests" | One request returns one page of 14 jobs; the budget is shared by all keywords. |
An invalid value stops the run immediately, before any request to the site, with a message that names the field and lists the valid values (for unknown cities it suggests the closest names). Numbers outside their range are clamped with a warning.
Empty results?
A search with no matching jobs finishes with 0 items and complete: true — not an error. Typical causes: an English or very specific title, a small city combined with several filters, or a contract type the companies there do not use. Try a shorter Portuguese title, a state instead of a city, or fewer filters.
Output
One dataset item per job posting:
{"keyword": "vendedor","jobId": "932332","title": "ASSISTENTE DE F&I | RP. 271.26","companyName": "MARHGUS MOTOS LTDA","companyNameWithheld": false,"companyConfidential": false,"city": "São Luís","state": "MA","stateName": "Maranhão","country": "BR","workplaceType": "onsite","contractTypes": ["CLT"],"seniorities": ["Junior", "Pleno"],"occupationAreas": ["Administrativo"],"shifts": ["Integral"],"salaryMinBrl": null,"salaryMaxBrl": null,"salaryDisclosed": false,"benefits": ["Vale refeição", "Vale transporte"],"educationLevels": ["Ensino Médio"],"languages": [],"skills": [],"affirmativeGroups": [],"pcdOnly": false,"openPositions": 1,"postedDate": "2026-10-03","applicationDeadline": null,"postedVia": "solides","jobUrl": "https://vagas.solides.com.br/vaga/932332","source": "Sólides Vagas (vagas.solides.com.br public job list)","sourceUrl": "https://vagas.solides.com.br/vagas/todas","license": "Publicly available data — unofficial tool; users are responsible for compliance with the source site's terms","retrievedAt": "2026-10-04T09:31:12.420Z"}
salaryMinBrl/salaryMaxBrlfollow the site's own display rule: filled only when the company chose to show the salary to applicants (a single value appears as min = max). The amounts are as entered by the company, normally monthly gross BRL.applicationDeadlineis filled only when the company shows it.postedVia: "rhgestor"marks postings syndicated from Sólides' RH Gestor product; for those,jobUrlis the employer's careers page on rhgestor.com.br (the same link the site uses), and city/state are often empty.- A run summary (
RUN_SUMMARYin the key-value store) lists per keyword the upstream total, pages read, items stored,completeand astopReason.
Privacy (GDPR / LGPD)
Only company facts about the job are returned. The Actor never outputs street addresses, neighbourhoods, ZIP codes or coordinates (only city and state), recruiter or contact names, e-mail addresses, phone or WhatsApp numbers, screening questions or the long description text. E-mail addresses and phone numbers inside titles are replaced with [contact removed]. When the employer is a sole trader whose legal name is a person's name (Brazilian MEI names are "CNPJ root + owner's name"), companyName is null and companyNameWithheld is true.
Honest limits
- List-page facts only. No full job description, no application. Fields the company left empty are
nullor[]. - 14 jobs per request, site order. Results come in the site's relevance order; deep pulls need many requests (1.5 s apart).
- Snapshot. Postings close and change;
retrievedAttells you when the data was read. - Filters are the site's. If the site ever stops applying a filter, the Actor notices (the page echoes the applied filters) and stores nothing for that keyword rather than unfiltered jobs.
- No proxy by default. vagas.solides.com.br answered Apify datacenter IPs directly when this Actor was built (2026-10-04). If that changes, set
proxyConfiguration(e.g. RESIDENTIAL, country BR); one sticky IP is used per run. - The site can refuse requests. If it blocks mid-run, the run keeps what it has and ends successfully with
complete: false. If the very first request is blocked, the run fails visibly instead of retrying aggressively.
Pricing
Pay per result: you are charged for each job stored in the dataset. A run stops by itself when it reaches the maximum charge you set for the run.