Gupy Jobs Scraper: Brazil Job Ads from portal.gupy.io avatar

Gupy Jobs Scraper: Brazil Job Ads from portal.gupy.io

Pricing

from $0.90 / 1,000 jobs

Go to Apify Store
Gupy Jobs Scraper: Brazil Job Ads from portal.gupy.io

Gupy Jobs Scraper: Brazil Job Ads from portal.gupy.io

Gupy scraper and MCP tool for Brazil jobs: paste portal.gupy.io search URLs or keywords + state, get each job: title, company, city, state, remote/hybrid, contract type, dates, description, link. No login. Pay per job ($0.0012 or less) + $0.001 start fee.

Pricing

from $0.90 / 1,000 jobs

Rating

0.0

(0)

Developer

PlainRows

PlainRows

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

A Gupy scraper for Brazil jobs: get the job ads of the Gupy portal (thousands of Brazilian employers recruit through Gupy) for any keyword, state or filter: job title, company, city, state, work model (on-site, hybrid, remote), contract type (CLT, internship, apprentice, PJ…), publication date, application deadline, full description and link. Paste search URLs from portal.gupy.io, or type keywords + Brazilian states.

Plain HTTP requests, no browser: no login, no account, no cookies. The Actor reads only the public search pages, one page at a time per search with a pause between pages, and respects the robots.txt of the site.

Typical uses

  • Brazilian job market research: how many sales, data or nursing jobs are open in São Paulo, Paraná or remote, and under which contract (CLT or PJ).
  • Recruitment agencies and sales teams: which Brazilian companies are hiring, for what, where.
  • Job boards and alerts: feed new Gupy jobs into your own site, Slack, Google Sheets or an AI agent every day.
  • Remote work analysis: share of remote and hybrid jobs in your field.
  • Spreadsheets, BI and AI agents: clean rows for Google Sheets, n8n, Make, Zapier or an MCP client.

What you get

One row per job:

FieldDescription
search, searchUrlYour search and the page read
jobId, urlGupy job ID and job link (apply there)
titleJob title
employer, employerLogo, employerCareerPageCompany of the career page (never a recruiter's name), its logo and career site on Gupy
place, city, stateCity and state of the job (empty for remote jobs)
workModelon-site, hybrid or remote
contractType, contractTypeCodePermanent (CLT), Internship, Apprentice, Trainee, Temporary, Talent pool, Contractor (PJ)… and Gupy's own code
publishedAt, applicationDeadlinePublication date and last day to apply (UTC)
openToPeopleWithDisabilitiestrue when the job is also open to people with disabilities (PcD)
descriptionJob description as published (plain text, Portuguese)
page, position, totalResultsWhere the job was, and the total Gupy shows (see Limits)
observedAtWhen the page was read (UTC)

Missing values are always null, never guessed. No recruiter name is collected. A search without jobs (or blocked, or unreadable) gets one free row with found: false, a status and a message.

Example row

{
"search": "https://portal.gupy.io/job-search/term=vendas",
"found": true,
"jobId": "12741906",
"title": "Líder de Vendas - Shopping Iguatemi Campinas/SP",
"employer": "Lojas ACE",
"place": "Campinas, São Paulo",
"city": "Campinas",
"state": "São Paulo",
"workModel": "on-site",
"contractType": "Permanent (CLT)",
"publishedAt": "2026-10-16T23:25:14.363Z",
"applicationDeadline": "2026-12-15T00:00:00.000Z",
"openToPeopleWithDisabilities": true,
"url": "https://trabalhenaace.gupy.io/job/eyJqb2JJZCI6MTI3NDE5MDYsInNvdXJjZSI6Imd1cHlfcG9ydGFsIn0=?jobBoardSource=gupy_portal",
"status": "FOUND"
}

Input

{
"searchUrls": ["https://portal.gupy.io/job-search/term=analista&state=Paran%C3%A1&city=Curitiba"],
"keywords": ["vendas", "analista de dados"],
"states": ["SP", "Rio de Janeiro"],
"workModel": "any",
"maxResultsPerSearch": 48
}
  • searchUrls: search pages copied from portal.gupy.io (/job-search/term=…), with any filter (state, city, work model, contract type). The page number is ignored.
  • keywords and states: each keyword is searched in each state (code SP or name, accents optional); with no state, across Brazil.
  • workModel: any (default), remote, hybrid or on-site, for keywords only.
  • maxResultsPerSearch: 1 to 1,000 (default 48). Gupy shows 12 jobs per page; the Actor reads up to 84 pages per search.

Up to 100 searches per run. Jobs found by two of your searches are returned and billed once.

Pricing

Pay per event: one event per job returned, plus a small start fee per run ($0.001).

PlanPer jobPer 1,000 jobs
Free$0.0012$1.20
Bronze$0.0011$1.10
Silver$0.0010$1.00
Gold$0.0009$0.90

Free: searches without jobs, pages that are blocked or cannot be read, jobs without title, company, link or place (remote jobs need no place), duplicates and input mistakes. On the free Apify plan, a run reads up to 3 searches and 24 jobs per search.

Limits

  • The "100" total is not a cap. For any large search the portal shows a total of 100, but its pages go on: on 2026-10-18 the "vendas" search still returned 12 new jobs on pages 9, 10, 30 and 200 (none repeated from pages 1-2). The Actor therefore ignores this total for large searches and reads until an empty page, your limit, or 1,000 jobs. totalResults = 100 means "100 or more"; below 100 it is the exact count.
  • Up to 1,000 jobs per search (84 pages). For more, split by state, city or keyword.
  • Only what the search pages show: no salary field (when the employer gives one it is usually in description), no recruiter names.
  • Jobs listed only on an employer's own career site and not on the Gupy portal are not returned.

FAQ

Is it legal? The Actor reads only pages anyone can see without an account, at a slow pace, and respects robots.txt. It returns the job as the site publishes it, and no recruiter name. You are responsible for how you use the data.

How do I search one city? Open portal.gupy.io, search and pick the city filter, then paste the URL into searchUrls.

Why are some searches empty or BLOCKED? If the site refuses a request (rate limit or bot check), the Actor stops that search and charges nothing beyond the results already delivered. If this happens after the first page, the run summary warns that the search stopped early and its results are partial. It never solves or bypasses a check. Try again later.

Which language? Field names and labels (contract type, work model) are in English; titles and descriptions stay in Portuguese as published.

More PlainRows tools

Same pay-per-result pricing, same clean JSON, built to chain together in n8n, Make, Zapier or AI agents.

Support

Open an issue on the Actor's page: issues are read and answered. Need another field, a higher limit or a custom version for your workflow? Ask in an issue.