Gupy Jobs Scraper | Brazil Jobs and Employers avatar

Gupy Jobs Scraper | Brazil Jobs and Employers

Pricing

from $0.76 / 1,000 jobs

Go to Apify Store
Gupy Jobs Scraper | Brazil Jobs and Employers

Gupy Jobs Scraper | Brazil Jobs and Employers

Gupy scraper for Vagas Gupy across Brazil: 50 jobs in 14 seconds, 79 fields each. Search by keyword, state, city, company or Gupy link and get the full description, requirements, benefits, hiring steps, contract type, address, application deadline and the employer's website and LinkedIn page.

Pricing

from $0.76 / 1,000 jobs

Rating

0.0

(0)

Developer

SilentFlow

SilentFlow

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Gupy Jobs Scraper (Vagas Gupy) | Brazil Jobs, Hiring Steps and Employers (2026)

Gupy jobs, 79 fields each, from any search.

From SilentFlow. Creators of Facebook Search Scraper and JD Products Scraper (#1 for “jd scraper” in Apify Store search), with 800,000+ combined lifetime runs.

Every Gupy job (vaga) in Brazil as one clean row: the full description, the requirements, the benefits as a list, the contract and workplace type, every step of the hiring process, the address down to the district and CEP, and the employer behind it with its website, LinkedIn, Instagram and number of open jobs. Type a keyword, paste any Gupy link or name the companies you follow, and get a table you can filter, chart, load into a CRM or feed to a job board. The default input returned 50 analyst jobs from 35 employers in 14 seconds on 30 Oct 2026.

Why choose this actor?

Opening Gupy jobs one by one to read what they ask for and what they offer? Copying the company's name into a search engine to find its website and LinkedIn? Following ten employers' career pages by hand to see who is hiring this week?

  • 76 fields per job, each one filled on at least half of the rows. On the default run (keyword analista, 50 jobs, 30 Oct 2026), 76 data fields carried a value on at least half of the rows and 52 on every single row: the four text sections of the job in HTML and plain text, the benefits as a list (25 of 50 jobs), the contract type with its Portuguese label (Efetivo, Pessoa jurídica, Temporário), the workplace type, the department (50 of 50), the education level asked (45 of 50), the seniority, the hiring reason, every hiring step with the number of interviews, the street, district (40 of 50), CEP (49 of 50), city, state and region, and the publication date, deadline and days left to apply.
  • The employer on the same row, ready for outreach. 21 of those fields describe the company that posted the job: its name, Gupy id and career page, logo and banner, its own description, its website (35 of 50 jobs), LinkedIn page (37 of 50), Instagram (31 of 50), YouTube video, photos, brand color, timezone and the number of jobs it has open on Gupy (864 for Sicredi, 285 for Ambev on that run). No second tool, no extra step: the company comes with the job.
  • Three ways in: keywords, Gupy links and company names. Type roles or skills (analista, vendedor, desenvolvedor), paste any Gupy link (one job, a company's career page, or a portal search with its filters), or name the companies you track (ambev, renner, cogna) to get every job they have open. On 30 Oct 2026, one run mixing two companies, a job link and a remote portal search returned 60 jobs in 21 seconds, the job link first.

Try Gupy Jobs Scraper

Paste this input into the Input tab (JSON view) and press Start. It is the default input of the form: the newest analyst jobs (vagas de analista) on Gupy, up to 50.

{
"searchQueries": ["analista"],
"maxItems": 50
}

The Apify Free plan is enough to run it and to try the actor on your own keywords, states and companies: no credit card, no Gupy account, no setup. Each job becomes one row of the dataset, which you can export as JSON, CSV or Excel, open in Google Sheets, or read from the Apify API. On 30 Oct 2026 this input returned 50 jobs published in the previous eight hours, from 35 employers in 12 states (26 in São Paulo, 7 in Ceará), with an average of 6.1 hiring steps each.

How it works

Copy to your AI assistant

Paste this block into Claude, ChatGPT or Cursor to give it the full context of this actor:

You have access to the Gupy Jobs Scraper on Apify: silentflow/gupy-jobs-scraper
It reads public job postings (vagas) from Gupy (gupy.io), the recruiting platform thousands of Brazilian
employers use for their career pages, and its job portal portal.gupy.io. One dataset row per job.
Input (no field is required; with no input it reads the newest jobs on Gupy):
- searchQueries (array of strings): roles or skills as typed on the Gupy portal, e.g. ["analista",
"vendedor", "desenvolvedor", "estágio"]. Each one is searched on its own, newest jobs first.
- startUrls (array of URLs): Gupy links. A job (https://ambev.gupy.io/jobs/12745756, portal job links and
apply links work too), a career page (https://renner.gupy.io/) for every open job of that company, or a
portal search (https://portal.gupy.io/job-search/term=analista&state=Bahia&city[]=Salvador) with its filters.
- companyIds (array of strings): the name before .gupy.io in a career page address ("ambev", "renner",
"cogna"), or that address. Every open job of the company.
- state (string): a Brazilian state, as a code ("SP") or a name ("São Paulo", accents optional).
- city (string): a city as Gupy writes it ("Campinas", "Belo Horizonte").
- maxItems (integer, default 100): cap on rows across all inputs.
- workplaceType (string, default "any"): any, remote, hybrid or on-site.
- jobType (string, default "any"): any, vacancy_type_effective (CLT), vacancy_legal_entity (PJ),
vacancy_type_internship, vacancy_type_apprentice, vacancy_type_trainee, vacancy_type_temporary,
vacancy_type_freelancer, vacancy_type_autonomous, vacancy_type_outsource, vacancy_type_talent_pool,
vacancy_type_volunteer, vacancy_type_lecturer, vacancy_type_associate, vacancy_type_summer.
- postedWithinDays (integer): keep jobs published in the last N days.
Filters apply to keyword searches and company pages, not to single job links.
Output per job (81 data fields and 3 about the run):
- id (integer, stable), url, title, code (the employer's reference), jobUrl (portal link), applyUrl
- description, responsibilities, prerequisites, additionalInfo (HTML as published) and descriptionText,
responsibilitiesText, prerequisitesText, additionalInfoText (plain text); benefits (array); skills (array)
- jobType, jobTypeLabel (Portuguese), employmentType (FULL_TIME, CONTRACTOR, INTERN, TEMPORARY...),
workplaceType, workplaceTypeLabel, isRemote, seniority (Intern...Director, from the title),
educationLevel (lowest asked: elementary_school, high_school, technical, bachelor_in_progress,
bachelor, postgraduate), department, hiringReason, hiringReasonLabel, status, publicationType,
companyLanguage, isPwdFriendly, hasFriendlyBadge, quickApply, isJobPostedOnGoogle, isInternalMobility
- jobSteps (array of {name, type, category, order}), jobStepNames, jobStepsCount, interviewStepsCount,
hasAssessmentStep
- companyName, careerPageName, companyId, companySubdomain, careerPageId, careerPageUrl, companyLogo,
companyBanner, companyAboutTitle, companyAbout, companyAboutText, companyWebsite, companyLinkedin,
companyInstagram, companyFacebook, companyGlassdoor, companyVideoUrl, companyImages (array),
companyOpenJobs (integer), companyTimezone, companyBrandColor, careerPageVisibility
- location, address, streetAddress, district, zipCode (CEP), city, state, stateCode, region (IBGE),
country, countryCode
- publishedAt, expiresAt, applicationDeadline (RFC 3339 UTC), daysSincePosted, daysUntilDeadline,
isAcceptingApplications
- imageUrl, videoUrl; searchQuery, sourceUrl (what found the job), scrapedAt
Absent values are null.
Use apify-client for Python or JavaScript, or the Apify API.

How to scrape Gupy jobs

Get the newest developer jobs in Brazil

{
"searchQueries": ["desenvolvedor"],
"maxItems": 100
}

One keyword, newest jobs first, every state at once. Each row carries the full job text, the hiring steps and the employer's website and LinkedIn.

Pull remote data jobs published this week

{
"searchQueries": ["dados", "data engineer", "cientista de dados"],
"workplaceType": "remote",
"postedWithinDays": 7,
"maxItems": 300
}

Three keywords, remote work only, published in the last seven days. Remote jobs carry no city or state on Gupy, so leave the location empty for them.

Find on-site internships in one city

{
"searchQueries": ["estágio", "estagiário"],
"state": "SP",
"city": "Campinas",
"workplaceType": "on-site",
"jobType": "vacancy_type_internship",
"maxItems": 200
}

Keywords, state, city, workplace and contract type combine: this returns on-site internships in Campinas only, each with its education level, address and CEP.

Input parameters

ParameterTypeWhat it doesDefault
searchQueriesarray of stringsRoles or skills searched on the Gupy portal, each on its ownprefill ["analista"]
startUrlsarray of URLsGupy job links, career pages and portal search linksnone
companyIdsarray of stringsCompanies by their Gupy name (ambev) or career page addressnone
statestringA Brazilian state, code or nameall states
citystringA city as Gupy writes itall cities
maxItemsintegerCap on saved jobs across all inputs100
workplaceTypestringany, remote, hybrid or on-siteany
jobTypestringany or one Gupy contract typeany
postedWithinDaysintegerOnly jobs published in the last N daysevery open job
debugModebooleanDetailed logsfalse

Formats accepted:

  • Keywords: any text, as typed on portal.gupy.io (analista financeiro, vendedor, motorista). Accents matter to Gupy's search the way they do on the site.
  • Job links: https://ambev.gupy.io/jobs/12745756, the portal link https://ambev.gupy.io/job/eyJqb2JJZCI6...?jobBoardSource=gupy_portal, and the apply link https://ambev.gupy.io/candidates/jobs/12745756/apply.
  • Career pages: https://renner.gupy.io/, with or without a path or query.
  • Portal searches: https://portal.gupy.io/job-search/term=analista&state=Bahia&city[]=Salvador&workplaceTypes[]=hybrid&jobTypes[]=vacancy_type_internship. A link with several cities, workplace types or job types runs one search for each combination.
  • Companies: ambev, Ambev, ambev.gupy.io or https://ambev.gupy.io/.
  • States: SP, sp, São Paulo, sao paulo, Estado de São Paulo.
  • Job numbers alone (12745756) are not enough: Gupy needs the company too, so paste the job link instead.

What data can you extract from Gupy?

Each row has 84 keys: 81 data fields and 3 that say how the run found the job. On the default run, 76 data fields carried a value on at least half of the rows and 52 on every row.

GroupFieldsWhat you get
Identity6id, url, title, code (the employer's own reference), jobUrl, applyUrl
Content10The description, responsibilities, requirements and additional information, each in HTML and plain text; benefits as a list; skills when listed
Attributes19Contract type (code, Portuguese label and normalized English type), workplace type and label, isRemote, seniority, education level, department, hiring reason, status, publication type, language, accessibility and badge flags, quick apply, Google for Jobs flag, internal mobility
Hiring process5Every step with its name, type, category and order, the step names, the number of steps and of interviews, and whether there is a test
Company22Name, career page title, Gupy id and name, career page id and link, logo, banner, description title and text, website, LinkedIn, Instagram, Facebook, Glassdoor, video, photos, open jobs count, timezone, brand color, page visibility
Place11Location line, full address, street, district, CEP, city, state, state code, IBGE region, country, country code
Time6Publication date, expiry date, application deadline, days since posted, days until the deadline, still open for applications
Media2The job image and video when the employer adds them
Run3searchQuery, sourceUrl, scrapedAt

Good to know about the data:

  • id is Gupy's job number and never changes. url is the job's permanent page while the job is open; once the employer closes it, the page redirects to the candidate sign-in.
  • Dates are RFC 3339 in UTC. applicationDeadline and expiresAt are days, written at midnight UTC.
  • Remote jobs have no address on Gupy: their city, state, address, district, zipCode and region are null, and location reads Brasil.
  • benefits is the list under the job's "Benefícios" heading, whether written as bullets or emoji lines. Jobs that describe benefits only in prose have it null.
  • seniority is read from the title (Júnior, Pleno, Sênior, Estágio, Gerente...) and educationLevel from the text: the lowest level the job asks for, so "Ensino médio completo, superior desejável" reads high_school.
  • companyName is the name the career page is published under, unless that name is a recruiting slogan, in which case the page's own title is used. careerPageName always keeps the page's title as Gupy shows it.
  • Image and logo links point to Gupy's own file storage and stay valid as long as the employer keeps them.

Output example

One real row from the default run of 30 Oct 2026. Long texts are cut here for reading, and the lists show their first items; the dataset has them in full.

{
"id": 12745756,
"url": "https://ambev.gupy.io/jobs/12745756",
"title": "AMBEV I Analista de Segurança do Trabalho (João Pessoa)",
"code": "0119-12745756",
"jobUrl": "https://ambev.gupy.io/job/eyJqb2JJZCI6MTI3NDU3NTYsInNvdXJjZSI6Imd1cHlfcG9ydGFsIn0=?jobBoardSource=gupy_portal",
"applyUrl": "https://ambev.gupy.io/candidates/jobs/12745756/apply?jobBoardSource=gupy_public_page",
"description": "<p>Atualmente a nossa Cultura passa por um processo de transformação e evolução. A nossa história e o nosso jeito de ser são marcados por sonhos grandes que nos…",
"descriptionText": "Atualmente a nossa Cultura passa por um processo de transformação e evolução. A nossa história e o nosso jeito de ser são marcados por sonhos grandes que nos trouxeram até aqui e q…",
"responsibilities": "<p>Estamos em busca de um(a) Analista de Segurança do Trabalho comprometido(a) para se juntar à nossa equipe! Se você tem experiência em liderança, gestão de eq…",
"responsibilitiesText": "Estamos em busca de um(a) Analista de Segurança do Trabalho comprometido(a) para se juntar à nossa equipe! Se você tem experiência em liderança, gestão de equipes e deseja fazer a…",
"prerequisites": "<p>É desejável:</p><ul><li>Facilidade no relacionamento interpessoal para promover um ambiente colaborativo.</li><li>Disposição para realizar trabalhos externos…",
"prerequisitesText": "É desejável:\n- Facilidade no relacionamento interpessoal para promover um ambiente colaborativo.\n- Disposição para realizar trabalhos externos quando necessário.\n- Experiência na á…",
"additionalInfo": "<p><span style=\"color: black;\">Hoje na AMBEV nós trabalhamos com os melhores benefícios para você e também para os seus dependentes legais! Aqui na companhia nó…",
"additionalInfoText": "Hoje na AMBEV nós trabalhamos com os melhores benefícios para você e também para os seus dependentes legais! Aqui na companhia nós conseguimos te proporcionar:\n- Mais cuidado com a…",
"benefits": [
"Mais cuidado com a sua saúde através de Plano Médico, Odontológico, Telemedicina, Seguro de Vida e Gympass",
"Saúde mental com a Telemedicina Dasa e Gente 360",
"Consumir nossos produtos com um super desconto (é isso mesmo, nós temos venda de produtos para funcionários no precinho!)"
],
"skills": null,
"jobType": "vacancy_type_effective",
"jobTypeLabel": "Efetivo",
"employmentType": "FULL_TIME",
"workplaceType": "on-site",
"workplaceTypeLabel": "Presencial",
"isRemote": false,
"seniority": null,
"educationLevel": "bachelor",
"department": "SALES",
"hiringReason": "staff_replacement",
"hiringReasonLabel": "Substituição",
"status": "published",
"publicationType": "external",
"companyLanguage": "pt",
"isPwdFriendly": true,
"hasFriendlyBadge": false,
"quickApply": false,
"isJobPostedOnGoogle": true,
"isInternalMobility": false,
"jobSteps": [
{
"name": "Cadastro",
"type": "register",
"category": "registration",
"order": 0
},
{
"name": "Mapeamento Ambev - Auxiliar Administrativo",
"type": "online",
"category": "evaluation",
"order": 1
},
{
"name": "Entrevista - Recrutamento",
"type": "offline",
"category": "",
"order": 2
}
],
"jobStepNames": [
"Cadastro",
"Mapeamento Ambev - Auxiliar Administrativo",
"Entrevista - Recrutamento",
"Conflito de Interesse",
"Entrevista - Unidade",
"Oferta e ASO",
"Contratação"
],
"jobStepsCount": 7,
"interviewStepsCount": 2,
"hasAssessmentStep": true,
"companyName": "Ambev",
"careerPageName": "Ambev",
"companyId": 119,
"companySubdomain": "ambev",
"careerPageId": 20,
"careerPageUrl": "https://ambev.gupy.io",
"companyLogo": "https://attachments.gupy.io/production/companies/119/career/20/images/2020-05-05_14-17_logo.png",
"companyBanner": "https://attachments.gupy.io/production/companies/119/career/20/images/2023-11-13_18-50_bannerUrl.png",
"companyAboutTitle": "Seja bem-vindo à Ambev",
"companyAbout": "<p>ENTRE PARA UM TIME QUE SONHA TÃO GRANDE COMO VOCÊ!</p><p><br></p><p>Somos milhares de apaixonados e apaixonadas pelo que fazemos. Temos um orgulho imenso do…",
"companyAboutText": "ENTRE PARA UM TIME QUE SONHA TÃO GRANDE COMO VOCÊ!\nSomos milhares de apaixonados e apaixonadas pelo que fazemos. Temos um orgulho imenso do nosso poder de impacto positivo e reconh…",
"companyWebsite": "https://www.ambev.com.br/",
"companyLinkedin": "https://www.linkedin.com/company/162402/",
"companyInstagram": "https://www.instagram.com/ambev",
"companyFacebook": "https://www.facebook.com/cervejariaambev/",
"companyGlassdoor": "https://www.glassdoor.com.br/Vis%C3%A3o-geral/Trabalhar-na-Ambev-EI_IE5797.13,18.htm",
"companyVideoUrl": null,
"companyImages": null,
"companyOpenJobs": 285,
"companyTimezone": "America/Sao_Paulo",
"companyBrandColor": "#003d97",
"careerPageVisibility": "public",
"location": "João Pessoa, PB, Brasil",
"address": "RUA DOUTRO WALTER BELIAN, 2230, João Pessoa, Paraíba, Brasil, 58082005",
"streetAddress": "RUA DOUTRO WALTER BELIAN, 2230",
"district": "Distrito Industrial",
"zipCode": "58082-005",
"city": "João Pessoa",
"state": "Paraíba",
"stateCode": "PB",
"region": "Nordeste",
"country": "Brasil",
"countryCode": "BR",
"publishedAt": "2026-10-29T22:17:28Z",
"expiresAt": "2027-05-12T00:00:00Z",
"applicationDeadline": "2027-01-31T00:00:00Z",
"daysSincePosted": 0,
"daysUntilDeadline": 93,
"isAcceptingApplications": true,
"imageUrl": null,
"videoUrl": null,
"searchQuery": "analista",
"sourceUrl": "https://portal.gupy.io/job-search/term=analista",
"scrapedAt": "2026-10-30T04:06:23Z"
}

Advanced usage

Track every open job of the companies you follow

{
"companyIds": ["ambev", "renner", "cogna", "localiza"],
"maxItems": 2000
}

Every job each company has open on Gupy, with its department and district. Schedule it daily and compare runs on id to see which jobs opened and which closed.

Re-read a list of jobs you already track

{
"startUrls": [
{ "url": "https://ambev.gupy.io/jobs/12745756" },
{ "url": "https://renner.gupy.io/jobs/12720816" }
]
}

Job links are read first, before companies and keywords, so a tracked list always comes back whole. Closed jobs are skipped and counted in the log, with no empty row.

Build a list of employers hiring for a role

{
"searchQueries": ["analista de marketing", "coordenador de marketing"],
"postedWithinDays": 14,
"maxItems": 500
}

Open the Employers view of the dataset: one line per job with the company, its website, LinkedIn page, open jobs count and career page. Sales and recruiting teams use it as a list of companies hiring right now.

Run a portal search exactly as you built it on Gupy

{
"startUrls": [
{ "url": "https://portal.gupy.io/job-search/term=analista&state=Bahia&city%5B%5D=Salvador&city%5B%5D=Feira%20de%20Santana" }
],
"maxItems": 300
}

Build the search on portal.gupy.io, copy the address, paste it. A link with two cities runs one search per city and keeps each job once.

Feed a weekly report of the whole Brazilian job market

{
"state": "MG",
"postedWithinDays": 7,
"maxItems": 5000
}

No keyword reads every job, newest first: here, one week of Minas Gerais. Without a state, a search that matches more than Gupy shows in one go continues state by state, then with remote jobs, so a large maxItems is not cut short. Export to CSV and pivot on region, jobTypeLabel, workplaceType or department.

FAQ

What is Gupy? Gupy is the recruiting platform behind the career pages of thousands of Brazilian employers, from Ambev and Localiza to Lojas Renner and Cogna. Each company has its own site (ambev.gupy.io), and the portal portal.gupy.io lists all their open jobs in one search. It is one of the largest sources of job postings (vagas) in Brazil.

What does the scraper extract for each job? The four text sections of the job page, the benefits, the contract and workplace type, the hiring steps, the address, the dates, and the employer's profile: 81 data fields per row, null when the employer leaves one empty.

Do I need a Gupy account or an API key? No. The actor reads the public job pages anyone can open on Gupy. No login, no candidate profile, no key.

Can I search several keywords, states or companies at once? Yes. List several keywords or companies, and mix them with links: each is read on its own and a job found twice is saved once. maxItems caps the total for the run. For several states, run one task per state or paste a portal search link per state.

How do the filters combine? They all apply together. searchQueries: ["vendedor", "atendente"] with state: "MG", workplaceType: "on-site" and postedWithinDays: 7 returns on-site sales and service jobs in Minas Gerais published in the last seven days, and nothing else. On 30 Oct 2026 that input returned 50 jobs in 18 seconds, all in Minas Gerais, all on-site.

How fresh is the data? Every run reads Gupy live, at the moment it runs, newest jobs first. scrapedAt says when each row was read and daysSincePosted how old the job was at that time.

How many jobs can I get? As many as Gupy has for your input, up to your maxItems. A common keyword matches thousands of jobs; with no keyword the portal lists every open job in Brazil. Searches deeper than Gupy shows at once go on state by state.

Why are some fields empty? Employers fill in their pages differently. Remote jobs have no address. A job with no benefits heading has no benefits list. Some companies never set a website or LinkedIn on their career page. An empty field is null, never an invented value.

Why does a company name look like a slogan? Some employers title their career page with a recruiting line ("Vem Pra Vivo"). The actor uses the cleaner of the two names Gupy gives, in companyName, and keeps the page title in careerPageName.

Are the links permanent? url, jobUrl and applyUrl stay valid while the job is open. When the employer closes a job, its page redirects to the sign-in page, and a later run skips it. careerPageUrl stays valid as long as the company uses Gupy.

Can I use it from my code or an AI agent? Yes. Call silentflow/gupy-jobs-scraper with apify-client for Python or JavaScript, the Apify API, or any AI agent connected to the Apify MCP server, and read the dataset as JSON, CSV or Excel.

More SilentFlow scrapers

🛒 E-commerce

💼 Jobs

🏠 Real estate

📣 Social media

🏢 Business data

✈️ Travel

🎯 Lead generation

🔎 SEO

📈 Marketing

🎬 Video

📰 News

🧰 More tools

Support

Need something this scraper does not do yet? We ship features fast.

  • Feature requests go straight to our backlog
  • Enterprise needs? We do custom integrations and high-volume plans
  • Pricing questions? Check the Monetization tab on the actor page

Response time: usually under 24 hours.

This Actor extracts publicly available data from Gupy: job postings and company career pages that anyone can open without an account. It does not bypass any login, paywall, or CAPTCHA, and it reads no candidate profile or application. Users are responsible for complying with Gupy's terms of service and applicable data protection laws (GDPR, CCPA, PIPL, and Brazil's LGPD where relevant). Job rows describe positions and companies; when a text names a person (a recruiter in a description, for instance), handle it as personal data and only for a lawful purpose. The data returned is informational; verify it before any regulated use.

Built by SilentFlow for job boards, recruiters, sales teams and labor-market analysts who want Gupy's vagas as data, not browser tabs.