# Gupy Vagas Scraper: Brazil Jobs, Companies & Hiring Stages (`themineworks/gupy-vagas-scraper`) Actor

Scrape Gupy job ads (vagas) across Brazil: title, company, city, state, remote, hybrid or on-site, job type, publish date, deadline, full description, requirements, hiring stages and company website and LinkedIn. Filter by keyword, state, city, company and PcD. No login. Pay per job.

- **URL**: https://apify.com/themineworks/gupy-vagas-scraper.md
- **Developed by:** [The Mine Works](https://apify.com/themineworks) (community)
- **Categories:** Jobs, Lead generation, MCP servers
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.25 / 1,000 jobs

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Gupy Vagas Scraper: Brazil Jobs, Companies & Hiring Stages

[![20 Gupy jobs with full details in 13 seconds](https://api.apify.com/v2/key-value-stores/cUXz95yxflDho41nn/records/gupy-vagas-scraper-hero.png)](https://console.apify.com/actors/Jq0YwQNRr5rmJlfwy/input?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

From **The Mine Works**, makers of [Threads Scraper](https://apify.com/themineworks/threads-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral) and [B2B Leads Finder](https://apify.com/themineworks/b2b-leads-finder?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), with more than 140,000 runs across our actors.

Gupy is the recruiting platform behind the career sites of Brazilian employers such as Grupo Boticário, WEG, Localiza, Sicredi and Porto, and portal.gupy.io is its public search across all of them. This actor searches it the way a job seeker does and returns one row per vaga: title, company, city, state, work model (remote, hybrid or on-site), contract type, publish date, application deadline and the full description. With job pages on (the default) each row also carries the separate sections (responsibilities, requirements, additional information), the hiring stages in order, the address and the company's about text, website and LinkedIn.

### Why choose this actor?

- **Full job details in one pass.** A test run on 1 October 2026 returned 20 remote developer jobs with their job pages read in 13 seconds: responsibilities and requirements on all 20, hiring stages on all 20, company website and LinkedIn on 18. No login, no cookies, no Gupy account.
- **The same filters as Gupy's own search.** State, cities, remote, hybrid or on-site, 16 contract types (Efetivo, Estágio, PJ, Trainee and more), company, Gupy's PcD filter and newest first. In a test, 10 internships in São Paulo state came back in 3.5 seconds with job pages off.
- **Pay per job, never twice.** One charge per job delivered. A job found by two of your searches is delivered and charged once, monitor mode skips jobs you already have, and a row whose job page could not be read is delivered free and marked `details_fetched: false`.

[![Run it on Apify](https://api.apify.com/v2/key-value-stores/cUXz95yxflDho41nn/records/button-run.png)](https://console.apify.com/actors/Jq0YwQNRr5rmJlfwy/input?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Part of The Mine Works Jobs and hiring family:** [Foundit Monster India Jobs](https://apify.com/themineworks/foundit-jobs-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [Hirist Jobs Scraper](https://apify.com/themineworks/hirist-jobs-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [India Jobs MCP](https://apify.com/themineworks/india-jobs-mcp?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [Naukri Jobs Scraper](https://apify.com/themineworks/naukri-jobs?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [Shine.com Jobs Scraper](https://apify.com/themineworks/shine-jobs-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [Internshala Scraper](https://apify.com/themineworks/internshala-jobs-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral).

### Try it in one minute

Paste this into the JSON tab of the input form and press Start:

```json
{
  "searchTerms": ["analista de dados"],
  "maxJobsPerSearch": 10
}
```

That returns 10 of the newest data analyst jobs on Gupy with their full job pages. Give search terms as a list, one per line in the form, in Portuguese or English, exactly as you would type them on portal.gupy.io. Leave the list empty to get every open job that matches your filters. To narrow the search, add a `state` (name or code: `São Paulo` or `SP`), `cities`, `workplaceTypes`, `jobTypes` or `companies` (the name on the company's Gupy career page).

Apify's free plan includes $5 of credit every month, which covers about 1,800 jobs at this actor's Free plan price.

#### Copy to your AI assistant

Paste this block into ChatGPT, Claude, Cursor or any assistant that can write code, and it can run the actor for you.

```
themineworks/gupy-vagas-scraper on Apify. Searches Gupy's public job portal (portal.gupy.io, Brazilian job ads from every company's Gupy career site) and returns one row per job: job_id, title, company, city, state, workplace_type, job_type, job_type_label, published_at, application_deadline, description, job_url, apply_url, and with job pages on: responsibilities, requirements, additional_info, hiring_steps, address, company_about, company_website, company_linkedin. Call ApifyClient("TOKEN").actor("themineworks/gupy-vagas-scraper").call(run_input={...}), then client.dataset(run["defaultDatasetId"]).list_items().items. Required: nothing (empty input lists the newest jobs). Optional: searchTerms (array of strings), maxJobsPerSearch (integer 1 to 5000, default 100), state (Brazilian state name, default all), cities (array), workplaceTypes (remote, hybrid, on-site), jobTypes (Gupy codes such as vacancy_type_effective or vacancy_type_internship), companies (career page names), pcdOnly (boolean, default false), sortBy (newest, oldest or relevance, default newest), includeDetails (boolean, default true), onlyNewJobs (boolean, default false). Rows with _type "info" are run notes, not jobs. Full spec: GET https://api.apify.com/v2/acts/themineworks~gupy-vagas-scraper/builds/default (Bearer TOKEN), which returns inputSchema and readme. Token: https://console.apify.com/account/integrations?fpr=ymnoit&utm_source=apify-readme&utm_medium=referral
```

### Key features

- **Up to 38 fields per job.** 21 from the search (title, company, logo, links, city, state, work model, contract type with Gupy's Portuguese label, dates, PcD flags, full description) and up to 17 more from the job page (sections, hiring stages, skills, address, quick apply, company about text and four company links).
- **Up to 50 searches and 5,000 jobs per search in one run.** Search terms and companies combine: 3 terms and 2 companies make 6 searches. Jobs are read 50 at a time, newest first by default.
- **Hiring stages, in order.** Each stage's name and Gupy's category for it (registration, screening, interview, evaluation, offer, hiring), for example 10 stages for a Grupo Boticário developer job in the test, including Triagem, Pair Programming, Entrevista com Liderança, Carta Oferta and Contratação.
- **Readable text.** Job sections come as plain text with paragraphs and bullet points kept, not as HTML.
- **Monitor mode for job alerts.** With `onlyNewJobs` on, a scheduled run returns only jobs it has not delivered before for the same searches and filters.
- **Plain HTTP, 256 MB.** No browser. Six job pages are read at a time.

### How to use it

#### Basic: the newest jobs for one search

```json
{
  "searchTerms": ["desenvolvedor"]
}
```

#### Several searches with filters

```json
{
  "searchTerms": ["analista de dados", "engenheiro de dados", "cientista de dados"],
  "state": "SP",
  "workplaceTypes": ["hybrid", "remote"],
  "maxJobsPerSearch": 200
}
```

A job that two searches find is returned once, under the first search that found it (`search_term`).

#### Daily alerts for new vagas

```json
{
  "searchTerms": ["product manager", "gerente de produto"],
  "workplaceTypes": ["remote"],
  "onlyNewJobs": true,
  "maxJobsPerSearch": 100
}
```

Save it as a task and schedule it daily (Console, this actor, Schedules). Each run returns and charges only jobs that were not delivered before, so you can send the dataset straight to email, Slack or a sheet.

#### Track who is hiring: competitors or prospects

```json
{
  "companies": ["Grupo Boticário", "Localiza&Co", "Sicredi"],
  "maxJobsPerSearch": 500
}
```

With no search term, each company search lists all of that company's open jobs on Gupy. Count jobs by `city`, `job_type_label` or `workplace_type` to see where and how a company is hiring, and read `hiring_steps` to see its process. Recruiting and HR tech teams use the same run to find employers that are hiring for a role right now.

#### Internships and trainee programs

```json
{
  "jobTypes": ["vacancy_type_internship", "vacancy_type_trainee"],
  "state": "Minas Gerais",
  "includeDetails": false,
  "maxJobsPerSearch": 300
}
```

With `includeDetails` off a run reads only the search pages, which is much faster (10 jobs in 3.5 seconds in the test). Turn it on when you need the separate sections, the hiring stages or the company links.

### Input parameters

| Parameter | Type | Default | What it does |
|---|---|---|---|
| `searchTerms` | array of strings | none | Job titles or words to search, one per line. Empty lists every open job that matches the filters. |
| `maxJobsPerSearch` | integer | `100` | Most jobs per search (each term, and each company when you name companies), 1 to 5,000. |
| `state` | string | all of Brazil | One Brazilian state, by name (`São Paulo`) or code (`SP`). |
| `cities` | array of strings | none | Cities as Gupy writes them, for example `Campinas`. Pick the state too. |
| `workplaceTypes` | array | all | `remote`, `hybrid`, `on-site` (Portuguese `remoto`, `híbrido`, `presencial` also work). |
| `jobTypes` | array | all | Gupy contract types: `vacancy_type_effective` (Efetivo), `vacancy_type_internship` (Estágio), `vacancy_legal_entity` (Pessoa Jurídica), `vacancy_type_trainee`, `vacancy_type_apprentice` (Aprendiz), `vacancy_type_temporary`, `vacancy_type_freelancer`, `vacancy_type_autonomous`, `vacancy_type_associate`, `vacancy_type_outsource`, `vacancy_type_talent_pool`, `vacancy_type_volunteer`, `vacancy_type_parter` (Sócio), `vacancy_type_lecturer`, `vacancy_type_summer`, `vacancy_type_intermittent`. |
| `companies` | array of strings | none | Company names as on their Gupy career page. Each company runs as its own search with each term. |
| `pcdOnly` | boolean | `false` | Gupy's own PcD filter, the "Afirmativas para PCD" toggle on portal.gupy.io. |
| `sortBy` | string | `newest` | `newest`, `oldest` or `relevance`. |
| `includeDetails` | boolean | `true` | Read each job's page for the sections, hiring stages, address and company links. Same price per job. |
| `onlyNewJobs` | boolean | `false` | Monitor mode: skip jobs delivered in an earlier run with the same searches and filters. Skipped jobs are not charged. |

There is no proxy setting to choose. The actor always uses Apify's datacenter proxy, which is included in your Apify plan.

### What data do you get?

One row per job.

**The job**: `job_id`, `title`, `job_url` (the job's page on the company site, `https://<company>.gupy.io/jobs/<id>`), `apply_url` (the link Gupy's portal gives), `city`, `state`, `workplace_type` (`remote`, `hybrid` or `on-site`), `job_type` (Gupy's code) and `job_type_label` (Gupy's Portuguese label, such as Efetivo, Estágio or Pessoa Jurídica), `published_at`, `application_deadline`, `open_to_pcd` (Gupy's flag that the job is open to people with disabilities), `pcd_badge` (whether the card shows Gupy's PcD badge), `description` (the full job text, every section run together).

**The company**: `company` (the name on its Gupy career page), `company_logo`, `career_page_url`, and with job pages on `company_about`, `company_website`, `company_linkedin`, `company_instagram`, `company_facebook`.

**From the job page** (with `includeDetails` on): `about_the_job`, `responsibilities` (Responsabilidades e atribuições), `requirements` (Requisitos e qualificações), `additional_info` (Informações adicionais, often the benefits), `hiring_steps` (each stage's `order`, `name` and `category`), `skills`, `address`, `state_code`, `country`, `quick_apply`, `details_fetched`, and `details_error` when a page could not be read.

**The run**: `search_term` and `company_filter` (the search that found the job), `confidential`, `scraped_at`.

Employers can hide their name on a job. Gupy's own portal then shows no company and no description, and this actor does the same: such rows have `confidential: true`, no `company` and no `description`, and their job page is not opened. Fields an employer leaves empty are left out of the row rather than filled with a guess. In the final test (20 remote jobs with job pages), `city`, `state` and `state_code` were empty because the jobs are remote, `additional_info` was on 15 rows, `company_instagram` on 17, `company_facebook` on 13 and `skills` on none; `company_website` and `company_linkedin` were on 18 and every other field on all 20.

#### Stable fields for automations

These fields were present in every job row of the test runs, and their names will not change:

| Field | What it holds |
|---|---|
| `job_id` | Gupy's job id, the key to de-duplicate on |
| `title` | Job title |
| `job_url` | The job page on the company's Gupy site |
| `apply_url` | The link Gupy's portal gives for the job |
| `workplace_type` | `remote`, `hybrid` or `on-site` |
| `job_type` | Gupy's contract type code |
| `job_type_label` | The contract type in Portuguese |
| `published_at` | When the job was published (UTC) |
| `application_deadline` | Last day to apply, YYYY-MM-DD |
| `open_to_pcd` | Gupy's flag for jobs open to people with disabilities |
| `confidential` | True when the employer hid its name |
| `scraped_at` | When the row was collected |

#### Output examples

Real rows from the test runs on 1 October 2026, with long texts trimmed (marked `...`).

A remote developer job with its job page read:

```json
{
  "job_id": 12649638,
  "title": "Desenvolvedor Frontend React Pleno",
  "company": "Deliver IT",
  "job_url": "https://deliverit.gupy.io/jobs/12649638",
  "apply_url": "https://deliverit.gupy.io/job/eyJqb2JJZCI6MTI2NDk2MzgsInNvdXJjZSI6Imd1cHlfcG9ydGFsIn0=?jobBoardSource=gupy_portal",
  "workplace_type": "remote",
  "job_type": "vacancy_type_effective",
  "job_type_label": "Efetivo",
  "published_at": "2026-09-30T18:56:41.786Z",
  "application_deadline": "2026-11-29",
  "open_to_pcd": true,
  "pcd_badge": true,
  "description": "Você se considera uma pessoa que tem sede por aprendizado, gosta de trabalhar em equipe e curte compartilhar conhecimento? Então essa oportunidade é para você!...",
  "confidential": false,
  "career_page_url": "https://deliverit.gupy.io/",
  "search_term": "desenvolvedor",
  "responsibilities": "Na sua rotina de trabalho, você vai se deparar com as seguintes atividades:\n\n• Desenvolver e manter interfaces web responsivas, escaláveis e com foco na experiência do usuário;\n• Atuar no desenvolvimento de aplicações utilizando R...",
  "requirements": "Confere abaixo o que você vai precisar saber pra se dar bem nessa oportunidade!\n\nCONHECIMENTOS EXIGIDOS\n\n• Domínio de HTML5, CSS3, JavaScript e React...",
  "hiring_steps": [
    { "order": 0, "name": "Cadastro", "category": "registration" },
    { "order": 2, "name": "Screening/Conversa com RH", "category": "screening" },
    { "order": 3, "name": "Entrevista Técnica", "category": "evaluation" },
    { "order": 4, "name": "Entrevista com o Cliente", "category": "interview" },
    { "order": 5, "name": "Carta Oferta", "category": "interview" },
    { "order": 100, "name": "Contratação", "category": "hiring" }
  ],
  "address": "Brasil",
  "country": "Brasil",
  "quick_apply": false,
  "company_website": "http://www.deliverit.com.br",
  "company_linkedin": "https://www.linkedin.com/company/deliver-it-servi%C3%A7os-de-tecnologia/about/",
  "company_instagram": "https://www.instagram.com/deliverit.brasil/",
  "details_fetched": true,
  "scraped_at": "2026-10-01T08:24:53.114Z"
}
```

An internship in São Paulo, with job pages off (the fast mode):

```json
{
  "job_id": 12650756,
  "title": "Estágio em Produção no Jornal da Gazeta",
  "company": "Fundação Cásper Líbero",
  "job_url": "https://fcl.gupy.io/jobs/12650756",
  "city": "São Paulo",
  "state": "São Paulo",
  "workplace_type": "on-site",
  "job_type": "vacancy_type_internship",
  "job_type_label": "Estágio",
  "published_at": "2026-09-30T20:13:59.980Z",
  "application_deadline": "2026-10-31",
  "open_to_pcd": true,
  "description": "Venha para o coração da comunicação na cidade de São Paulo.A Fundação Cásper Líbero, em seus 80 anos, moldou o cenário brasileiro e faz a história acontecer todos os dias...",
  "confidential": false,
  "search_term": "estágio",
  "scraped_at": "2026-10-01T08:24:15.184Z"
}
```

A company search (`companies: ["Sicredi"]`, no search term) returns that company's open jobs, each with `company_filter: "Sicredi"`.

### Pricing

You pay per job delivered to your dataset, plus a flat $0.005 per run whatever memory you choose. Reading the job pages costs nothing extra.

| Apify plan | Per 1,000 jobs |
|---|---|
| Free | $2.75 |
| Starter (Bronze) | $2.25 |
| Scale (Silver) | $1.75 |
| Business (Gold) and above | $1.25 |

Never charged: a job already delivered in the same run (found by a second search), jobs skipped in monitor mode, rows whose job page was asked for but could not be read (delivered free with `details_fetched: false`), searches with no jobs, and the info row a run writes when it delivers nothing. The run's summary record (`OUTPUT` in the key-value store) shows how many jobs were charged and how many were delivered free.

### FAQ

#### What is Gupy?

Gupy is a Brazilian recruiting platform. Companies post their vagas on a career site at `<company>.gupy.io`, and portal.gupy.io lets job seekers search the open jobs of all those companies at once. This actor reads that public search and, if you want, each job's page on the company site.

#### How many jobs can I get?

Up to 5,000 per search and up to 50 searches per run. Search terms and companies combine, so 5 terms and 10 companies make 50 searches. A search stops at your number or when Gupy has no more jobs for it.

#### How fresh is the data?

Every run reads Gupy live. `published_at` is the date the employer published the job and `application_deadline` the last day to apply. Sorted newest first (the default), the first rows are the jobs published most recently.

#### Do I need a Gupy account or a candidate login?

No. The actor reads the same public pages any job seeker sees without logging in. It never applies to jobs and never opens candidate or company account pages.

#### Does it include salary?

Only when the employer writes it in the job text. Gupy has no separate salary field on its public job pages, so look in `description`, `requirements` or `additional_info`.

#### What does "open to PcD" mean?

PcD (pessoa com deficiência) is the Brazilian term for people with disabilities. `open_to_pcd` is Gupy's flag that a job accepts candidates with disabilities. `pcdOnly` sends Gupy's own PcD filter, the "Afirmativas para PCD" toggle on portal.gupy.io; in a test every job it returned had `open_to_pcd: true`.

#### What about jobs where the company is hidden?

Employers can post a job without their name. Gupy's own portal then shows no company and no description, and so does this actor: the row has `confidential: true`, no `company` and no `description`, and its job page is not opened.

#### Do I need my own proxy?

No. The actor always uses Apify's datacenter proxy, which is part of every Apify plan, and there is no proxy setting to change.

#### What export formats are there?

JSON, CSV, Excel, XML, RSS and HTML from the dataset's Export button or the API. Use JSON or Excel if you want `hiring_steps` kept as a list.

#### Can I run it on a schedule and get only new jobs?

Yes. Save your input as a task, add a daily schedule, and turn on `onlyNewJobs`. Each run then returns and charges only jobs not delivered before for those searches and filters.

#### Can I use it from Claude, ChatGPT or another AI assistant?

Yes. Through Apify's MCP server your assistant can call `themineworks/gupy-vagas-scraper` as a tool, or it can write the short API call shown in "Copy to your AI assistant" above.

#### Is it legal to scrape Gupy?

The actor reads public job ads that Gupy shows to anyone without logging in, only on paths Gupy's robots.txt allows, and returns job and company information, not candidate data. How you may use the data depends on your purpose, Gupy's terms and the law that applies to you, including Brazil's LGPD and other data protection law such as GDPR and CCPA. You are responsible for your use of the results.

### Integrations

- **Google Sheets**: send each run's jobs to a sheet with Apify's Google Sheets integration.
- **Make, Zapier and n8n**: start a run and post new jobs to Slack, email or your ATS.
- **Webhooks**: get a call when a run finishes and fetch the dataset from the API.
- **API and clients**: run it from Python, JavaScript or plain HTTP with the Apify API.
- **MCP clients**: Claude Desktop, Cursor and other MCP clients can call it through Apify's MCP server.

### More from The Mine Works

**Jobs and hiring**

- [Foundit Monster India Jobs](https://apify.com/themineworks/foundit-jobs-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Hirist Jobs Scraper](https://apify.com/themineworks/hirist-jobs-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [India Jobs MCP](https://apify.com/themineworks/india-jobs-mcp?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Naukri Jobs Scraper](https://apify.com/themineworks/naukri-jobs?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Shine.com Jobs Scraper](https://apify.com/themineworks/shine-jobs-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Internshala Scraper](https://apify.com/themineworks/internshala-jobs-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Instahyre Jobs Scraper](https://apify.com/themineworks/instahyre-jobs-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Indeed Jobs Scraper](https://apify.com/themineworks/indeed-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [CutShort Jobs Scraper](https://apify.com/themineworks/cutshort-jobs-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Apna Jobs Scraper](https://apify.com/themineworks/apna-jobs-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [LinkedIn Jobs Scraper](https://apify.com/themineworks/linkedin-jobs-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Recruiting & Jobs MCP](https://apify.com/themineworks/recruiting-jobs-mcp?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Social media and video**

- [Threads Scraper](https://apify.com/themineworks/threads-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Reddit Scraper](https://apify.com/themineworks/reddit-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Threads Search Scraper](https://apify.com/themineworks/threads-search-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Instagram Profile Scraper](https://apify.com/themineworks/instagram-profile-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Leads and business directories**

- [B2B Leads Finder](https://apify.com/themineworks/b2b-leads-finder?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Skip Trace Lookup](https://apify.com/themineworks/skip-trace-lookup?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Google Maps Email Scraper](https://apify.com/themineworks/maps-leads?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [JustDial Scraper](https://apify.com/themineworks/justdial-business?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Marketing, SEO and reviews**

- [Facebook Ad Library Scraper](https://apify.com/themineworks/meta-ad-library-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Similarweb Scraper](https://apify.com/themineworks/similarweb-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Google Ads Transparency Scraper](https://apify.com/themineworks/google-ads-transparency?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Google News Scraper](https://apify.com/themineworks/google-news?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**LinkedIn**

- [LinkedIn Company Scraper](https://apify.com/themineworks/linkedin-company-details?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [LinkedIn Post Scraper](https://apify.com/themineworks/linkedin-post-search?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [LinkedIn Employees Scraper](https://apify.com/themineworks/linkedin-employees?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [LinkedIn Profile Scraper](https://apify.com/themineworks/linkedin-profile-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Real estate**

- [Zillow Rentals Scraper](https://apify.com/themineworks/zillow-rental-listings?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Zillow Sold Comps Scraper](https://apify.com/themineworks/zillow-recently-sold?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Housing.com Scraper](https://apify.com/themineworks/housing-com-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [India Real Estate MCP](https://apify.com/themineworks/india-real-estate-mcp?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Science, health and government data**

- [CourtListener Scraper](https://apify.com/themineworks/courtlistener-court-records?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [data.gov.in Scraper](https://apify.com/themineworks/india-data-gov-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Socrata Open Data Scraper](https://apify.com/themineworks/socrata-open-data?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Academic Research MCP](https://apify.com/themineworks/academic-research-mcp?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**E-commerce and marketplaces**

- [Ozon.ru Scraper](https://apify.com/themineworks/ozon-product-search?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [⭐ Amazon Reviews Scraper](https://apify.com/themineworks/amazon-reviews?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Amazon Product Scraper](https://apify.com/themineworks/amazon-products?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Carsales.com.au Scraper](https://apify.com/themineworks/carsales-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Company and business data**

- [Company Domain Finder](https://apify.com/themineworks/company-domain-finder?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [GST Taxpayer Lookup](https://apify.com/themineworks/gst-taxpayer-lookup?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [World Bank Trade Scraper](https://apify.com/themineworks/global-trade-data?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Company KYB Resolver](https://apify.com/themineworks/company-identity-resolver?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Food and local services**

- [NoBroker Scraper](https://apify.com/themineworks/nobroker-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Swiggy Restaurant Scraper](https://apify.com/themineworks/swiggy-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Zomato Scraper](https://apify.com/themineworks/zomato-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Developer and AI tools**

- [Website to Markdown Crawler](https://apify.com/themineworks/rag-crawler?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [GitHub Skill Finder](https://apify.com/themineworks/github-skill-discovery?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [GitHub Repo Scraper](https://apify.com/themineworks/github-repo-intelligence?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [GitHub Trending Scraper](https://apify.com/themineworks/github-trending-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**More tools**

- [Tennis Match & Player Data Scraper](https://apify.com/themineworks/tennis-match-data?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Google Hotels Prices Scraper](https://apify.com/themineworks/google-hotels-prices-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

### Support

Found a problem or need a field that is not here? Open an issue on the Issues tab and we will look at it. For a new source or a custom build, email dmineworks@gmail.com.

*Gupy Vagas Scraper turns Gupy's public job search into clean rows with full job details, hiring stages and company links, and charges only for the jobs it delivers.*

# Actor input Schema

## `searchTerms` (type: `array`):

Job titles or words to search, one per line, as you would type them on portal.gupy.io (for example "analista de dados" or "desenvolvedor"). Leave empty to list every open job that matches the filters below. Up to 50 searches per run.

## `maxJobsPerSearch` (type: `integer`):

Most jobs to return for each search term (and each company, when you name companies). A job found by two searches is returned once.

## `state` (type: `string`):

Only jobs in this Brazilian state.

## `cities` (type: `array`):

Only jobs in these cities, written as Gupy writes them (for example Campinas or São Paulo). Pick the state too.

## `workplaceTypes` (type: `array`):

Only jobs with these work models. Empty means all.

## `jobTypes` (type: `array`):

Only these contract types, as Gupy labels them. Empty means all.

## `companies` (type: `array`):

Only jobs from these companies, by the name on their Gupy career page (for example Leega Consultoria). Each company runs as its own search with each search term.

## `pcdOnly` (type: `boolean`):

Gupy's own PcD filter, the "Afirmativas para PCD" toggle on portal.gupy.io (vagas for people with disabilities).

## `sortBy` (type: `string`):

Order of the results, the same choices as Gupy's own search.

## `includeDetails` (type: `boolean`):

Also open each job's page on its company site for the separate sections (responsibilities, requirements, additional information), the hiring stages, the address and the company's about text, website and LinkedIn. Same price per job. Turn off for a faster run with the search data only.

## `onlyNewJobs` (type: `boolean`):

Skip jobs this actor already delivered in an earlier run with the same searches and filters, so a scheduled run returns only new vagas. Skipped jobs are not charged.

## Actor input object example

```json
{
  "searchTerms": [
    "analista de dados"
  ],
  "maxJobsPerSearch": 20,
  "state": "",
  "pcdOnly": false,
  "sortBy": "newest",
  "includeDetails": true,
  "onlyNewJobs": false
}
```

# Actor output Schema

## `results` (type: `string`):

No description

## `summary` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "searchTerms": [
        "analista de dados"
    ],
    "maxJobsPerSearch": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("themineworks/gupy-vagas-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "searchTerms": ["analista de dados"],
    "maxJobsPerSearch": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("themineworks/gupy-vagas-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "searchTerms": [
    "analista de dados"
  ],
  "maxJobsPerSearch": 20
}' |
apify call themineworks/gupy-vagas-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,themineworks/gupy-vagas-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/Jq0YwQNRr5rmJlfwy/builds/tRhq5CZ1bxp7B648T/openapi.json
