Gupy Jobs Scraper / Vagas por Empresa e Termo
Pricing
from $1.70 / 1,000 job listing delivereds
Gupy Jobs Scraper / Vagas por Empresa e Termo
Get open jobs from Gupy careers pages in Brazil by company and search term: job title, city, work model (remote, hybrid, on-site), contract type, publication date and apply URL. Filter by term, city or remote only. Only-new-jobs mode for schedules. No login. Failed items are free.
Pricing
from $1.70 / 1,000 job listing delivereds
Rating
0.0
(0)
Developer
Scrapewise Data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 hours ago
Last modified
Categories
Share
Gupy Jobs Scraper: Open Jobs by Company, Term and City
Returns every open job on any company's Gupy careers page: the job title (vaga), the company subdomain (empresa), the city (cidade), the work model (modelo: on-site, hybrid or remote), the contract type (tipo), the job id and the direct job URL, filtered by search term, city and remote only.
Gupy is the applicant tracking system used by most large Brazilian companies. Each company has its own careers page at <company>.gupy.io (for example ambev.gupy.io), and this Actor turns that page's whole job list into a dataset.
For recruiters watching target companies, job boards and aggregators that need a feed per company, labor market researchers benchmarking hiring in Brazil, and anyone building a candidate alert. AI agents can call it through the Apify MCP server.
Gupy jobs scraper pricing at a glance
| Apify plan | Per 1,000 jobs |
|---|---|
| Free | US$ 2.00 |
| Bronze | US$ 1.90 |
| Silver | US$ 1.80 |
| Gold and above | US$ 1.70 |
One charge per job delivered, plus an Actor start charge of US$ 0.01 per run from October 29, 2026. No monthly fee, compute included. Not charged: jobs removed by termo, cidade or remoto, duplicate job ids, anything above maximo or maxItems, jobs skipped by onlyNewJobs, and a run that finds nothing. One company at the default caps costs US$ 0.06; ten companies with 100 jobs each, US$ 2.00.
What it fixes
- The documented Gupy jobs API is gone.
/api/v1/jobsanswers 404; the complete job list is embedded in each careers page. The Actor reads that list with one HTTP request per company, no browser, and applies your filters locally. - No silent empty runs. A subdomain that does not exist, a layout change or filters that remove everything make the run fail with a message saying what to fix, instead of finishing "successful" with an empty dataset that breaks a scheduled pipeline.
- Exact daily alerts.
onlyNewJobscompares by Gupy's own job id, which is stable, so a renamed job is not delivered twice.
Gupy jobs scraper input
The input form describes each field. Minimal input (also what an empty API call runs):
{ "empresas": ["ambev"] }
Several companies, only remote roles whose title contains a term, higher caps:
{"empresas": ["ambev", "localiza", "magazineluiza"],"termo": "desenvolvedor","remoto": true,"maximo": 200,"maxItems": 500}
A daily job alert: save this as a Task and attach a daily Schedule.
{"empresas": ["ambev", "localiza"],"termo": "dados","onlyNewJobs": true,"maximo": 200,"maxItems": 400}
The first run delivers the matching jobs up to the caps and marks the company's whole current list as seen, so older openings do not come in later as new. Later runs deliver, and charge, only jobs posted since. A day with nothing new ends with "No new job since the last run" and costs nothing. A new job cut by a cap is not marked as seen and comes in the next run. The memory is the Key-Value Store gupy-vagas-only-new-jobs in your account; delete it to start over.
Video guides from Apify: how to schedule an Actor and how to connect it to other apps.
To find a company's subdomain, open its careers page from its website: if it uses Gupy, the link goes to <something>.gupy.io, and <something> goes in empresas.
What data the Gupy jobs scraper returns
A real row from run 0V4ewPzQpq7gRlqtC (input {"empresas": ["ambev"], "maxItems": 50}, 2026-09-10, 50 jobs in 5.0 seconds):
{"id": 11851251,"vaga": "Ajudante de Armazém (Transportadora Piracicaba/SP) ","empresa": "ambev","cidade": "Piracicaba","modelo": "on-site","tipo": "vacancy_type_talent_pool","publicada_em": null,"url": "https://ambev.gupy.io/jobs/11851251","coletado_em": "2026-09-10T21:27:33.728876+00:00","url_origem": "https://ambev.gupy.io/jobs/11851251"}
Gupy job fields
Field names are in Portuguese because the source is Brazilian. Fill rates from the 50 rows of the run above.
| Field | What it holds | Filled |
|---|---|---|
id | Gupy's own job id, unique per job | 100% |
vaga | job title | 100% |
empresa | the Gupy subdomain you asked for | 100% |
cidade | city of the workplace | 100% |
modelo | remoto for remote jobs, otherwise Gupy's value, in practice on-site or hybrid | 100% |
tipo | contract type as Gupy codes it: vacancy_type_effective (permanent role) or vacancy_type_talent_pool (standing talent pool) | 100% |
publicada_em | publish date; the embedded job list does not carry it, so always null | 0% |
url, url_origem | the job's application page | 100% |
coletado_em | ISO 8601 UTC collection time | 100% |
Rows are deduplicated by id inside a run. To know when a job appeared, run on a schedule and record the first coletado_em of each id.
What you can do with Gupy job data
- Watch target companies. Put every employer you care about in
empresas, settermoto the role you hire for, turn ononlyNewJobsand schedule it daily. - Map who is hiring, and where. Run without
termofor a set of large employers and group byempresa,cidadeandmodelo: open roles per company and per city, and the share of remote, hybrid and on-site work. - Feed a job board or newsletter.
vaga,empresa,cidadeandurlare everything a listing needs, andurlsends the candidate straight to the application form.remoto: truebuilds a remote-only board. - Answer questions from an AI agent. "Which remote developer jobs are open at these three companies right now?" is one call with three fields.
Gupy scraper speed and reliability
Three measured runs of 50 jobs from ambev on Apify took 4.6 to 5.5 seconds, all succeeded, and every field except publicada_em was filled on every row. One request per company, so a company with hundreds of open jobs is still one page load. No proxy is needed: the careers page is public HTTPS.
Use it from code and AI agents
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("scrapewise/gupy-vagas").call(run_input={"empresas": ["ambev", "localiza"], "termo": "analista"})for job in client.dataset(run["defaultDatasetId"]).iterate_items():print(job["empresa"], job["vaga"], job["cidade"], job["url"])
The same works from Node.js, the HTTP API (run-sync-get-dataset-items, add &format=csv for a spreadsheet), n8n, Make and Zapier. For AI agents: https://mcp.apify.com/?tools=scrapewise/gupy-vagas; the agent sends empresas plus an optional termo, cidade or remoto and can cite each row's url.
Gupy jobs scraper FAQ
Can I search all companies on Gupy at once? No. It works per company subdomain, where the complete list lives. Pass as many subdomains as you want in one run.
Is there an official Gupy API?
Gupy's API is for client companies managing their own hiring, with a token from that company's account; it does not list other companies' openings, and the old public jobs endpoint /api/v1/jobs answers 404. This Actor reads each public careers page, needs no token and returns every open job of any company that uses Gupy.
Does it return salary, description or requirements? No. Those live on each job's own page, which this Actor does not open; use url to fetch it.
Does it collect personal data? No. Only job titles, cities, work models, company names and links from a public page. No candidate data.
I am not in Brazil. What is it good for? Benchmarking which functions large Brazilian employers hire for and in which cities, sizing talent competition before opening an office, and tracking a competitor's Brazilian expansion.
Gupy jobs scraper limitations
- One company subdomain at a time; you need the subdomain, not the legal name.
publicada_emis alwaysnull, and rows follow the careers page order, somaximogives the first N jobs in that order, not necessarily the newest.- No salary, description, requirements, department or seniority field.
termoandcidadeare literal, case insensitive substring matches on title and city: no synonyms, plurals or missing accents. A city name that exists in two states returns both.remoto: truekeeps remote only, not hybrid.
Gupy jobs scraper errors
- Subdomain does not exist: the run fails naming the company and the URL. Nothing is charged.
- Filters removed every job: the run fails and suggests loosening them.
- Careers page layout changed: the run fails with an explicit message until the Actor is updated.
- Something broke or a field is missing? Open an issue on the Issues tab.
Related scrapers
- Catho Jobs Scraper: Brazil job listings and salaries from Catho.
- Brazil Tech Jobs Scraper: Brazilian tech jobs with stack, seniority and salary.
- Indeed Jobs Scraper: Indeed jobs with salaries, ratings and apply links.
- Google Jobs Scraper: Google Jobs listings with salaries and apply links.
- Career Page Jobs Scraper: jobs from company career pages on Workday and 10 other ATS.
Changelog
- 2026-10-04:
onlyNewJobsfor scheduled job alerts. - 2026-09-14:
empresasgot a default, so an empty input from the API, a schedule or an MCP client runs instead of failing. - 2026-09-13: discounts by plan.