# Gupy Jobs Scraper - Brazil Job Board Real-Time Data (2026) (`zen-studio/gupy-jobs-scraper`) Actor

Scrape job listings from Gupy.io, Brazil's largest job board. Extract 90+ fields per job: descriptions, requirements, benefits, hiring pipeline steps, company profiles, and application deadlines. Filter by keyword, state, city, job type, or company.

- **URL**: https://apify.com/zen-studio/gupy-jobs-scraper.md
- **Developed by:** [Zen Studio](https://apify.com/zen-studio) (community)
- **Categories:** Lead generation, Jobs, Automation
- **Stats:** 97 total users, 22 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

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?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Gupy.io Jobs Scraper & API - Brazil Job Board Real-Time Data (2026)

**A ready-to-use Gupy API for job data** — extract structured listings from Gupy.io, Brazil's largest job board with 500K+ active vagas. Get full job details, hiring pipeline steps, company profiles, and application metadata in a single run. No authentication, no token, no setup.

[![Demo](https://asciinema.org/a/whUanZTQtlLV9Pdi.svg)](https://asciinema.org/a/whUanZTQtlLV9Pdi)

Works out of the box with no input — uma API de vagas pronta para uso. Filter by keyword, state, city, company, job type, or workplace type to narrow results. Every job returns 90+ structured fields including the complete hiring process — something no other Gupy scraper or API provides.

<table><tr>
<td style="border-left:4px solid rgb(76,148,94);padding:12px 16px;font-weight:600">1,000 vacancies in under 60 seconds — hands down the richest output on Apify.</td>
</tr></table>

#### Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.

```
zen-studio/gupy-jobs-scraper on Apify. Call: ApifyClient("TOKEN").actor("zen-studio/gupy-jobs-scraper").call(run_input={...}), then client.dataset(run["defaultDatasetId"]).list_items().items for results. Key inputs: searchTerm: string, state: string (Brazilian state), maxResults: integer (0=unlimited). Full actor spec (input schema with all params/enums/defaults, output dataset fields, README): GET https://api.apify.com/v2/acts/zen-studio~gupy-jobs-scraper/builds/default (Bearer TOKEN) → inputSchema, actorDefinition.storages.dataset, readme. Pricing: $2.99/1,000 jobs (pay per event, tiered discounts available). Get token: https://console.apify.com/account/integrations
```

### Pricing

#### Pay Per Event (PPE) - Tiered Pricing

Lower cost per job as your subscription tier increases.

| Tier | Price per 1,000 jobs | Per job |
|------|---------------------|---------|
| Free | $2.99 | $0.00299 |
| Bronze | $2.49 | $0.00249 |
| Silver | $1.99 | $0.00199 |
| Gold | $1.49 | $0.00149 |

### Quick Start

#### Basic — Scrape All Jobs

```json
{}
```

Zero input. Scrapes all available jobs with default settings.

#### Filtered — Remote Developer Jobs in São Paulo

```json
{
    "searchTerm": "developer",
    "state": "São Paulo",
    "workplaceTypes": ["remote"],
    "maxResults": 500
}
```

#### Complete — All Parameters

```json
{
    "searchTerm": "analista",
    "state": "Minas Gerais",
    "cities": ["Belo Horizonte", "Uberlândia"],
    "workplaceTypes": ["remote", "hybrid"],
    "jobTypes": ["vacancy_type_effective", "vacancy_type_internship"],
    "companies": ["BIP Brasil"],
    "sortBy": "newest",
    "maxResults": 1000,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "BR"
    }
}
```

### Input Parameters

| Parameter | Type | Description | Default |
|-----------|------|-------------|---------|
| `searchTerm` | String | Search keyword (e.g., "analista", "developer"). Leave empty for all jobs. | `""` |
| `state` | Enum | Brazilian state filter. 27 states available. | All states |
| `cities` | String\[] | City names (e.g., "São Paulo", "Campinas"). Must match exact Gupy city names. | `[]` |
| `workplaceTypes` | Enum\[] | `remote`, `hybrid`, `on-site`. Leave empty for all. | `[]` |
| `jobTypes` | Enum\[] | 13 vacancy types. See table below. | `[]` |
| `companies` | String\[] | Company career page names (e.g., "Compass UOL"). | `[]` |
| `sortBy` | Enum | `newest`, `oldest`, or `company` (A-Z). | `newest` |
| `maxResults` | Integer | Max jobs to scrape. `0` for unlimited. Range: 0-100,000. | `100` |
| `proxyConfiguration` | Object | Proxy settings. Residential BR proxies recommended. | Apify Residential BR |

#### Job Types

| Value | Label |
|-------|-------|
| `vacancy_type_effective` | Full-time (Effective) |
| `vacancy_type_apprentice` | Apprentice |
| `vacancy_type_internship` | Internship |
| `vacancy_legal_entity` | Legal Entity (PJ) |
| `vacancy_type_trainee` | Trainee |
| `vacancy_type_temporary` | Temporary |
| `vacancy_type_freelancer` | Freelancer |
| `vacancy_type_outsource` | Outsourced |
| `vacancy_type_talent_pool` | Talent Pool |
| `vacancy_type_volunteer` | Volunteer |
| `vacancy_type_parter` | Partner |
| `vacancy_type_summer` | Summer Job |
| `vacancy_type_intermittent` | Intermittent |

### Output Example

```json
{
  "id": 10821988,
  "code": "0715-10821988",
  "name": "Estágio em Farmácia (Regulatório) ",
  "jobUrl": "https://gruposc.gupy.io/job/eyJqb2JJZCI6MTA4MjE5ODgsInNvdXJjZSI6Imd1cHlfcG9ydGFsIn0=?jobBoardSource=gupy_portal",
  "description": "<p><span style=\"background-color: rgb(249, 249, 249);\">Buscamos pessoas que nos ajudem a cumprir o nosso propósito de </span><strong style=\"background-color: rgb(249, 249, 249);\">mais saúde para mais pessoas</strong><span style=\"background-color: rgb(249, 249, 249);\">. Se você é um profissional pró ativo, flexível a mudanças e disposto a se comprometer com a busca pela melhoria contínua, </span><strong style=\"background-color: rgb(249, 249, 249);\">junte-se a nós</strong><span style=\"background-color: rgb(249, 249, 249);\">!</span></p><p><br></p><p>﻿Todas as nossas vagas estão abertas para pessoas com deficiência (PCD's)</p>",
  "descriptionPlainText": "Buscamos pessoas que nos ajudem a cumprir o nosso propósito de mais saúde para mais pessoas. Se você é um profissional pró ativo, flexível a mudanças e disposto a se comprometer com a busca pela melhoria contínua, junte-se a nós!﻿Todas as nossas vagas estão abertas para pessoas com deficiência (PCD's)Responsabilidades e atribuiçõesEstratificação semanal do GNAT – por regional;Atualização do controle de contatos de emergência dos refrigerados;Atualização do controle de permissões legais e sanitárias;Solicitação de Banco de Horas;Solicitação e envio de documentação dos Mercados;Envio de relatório de documentação pendente para os Mercados;Verificação dos chamados pendentes no Vortico;Solicitação e envio de materiais de escritório para os CDs;Envio de relatório de clientes para o prestador Sthal;Abertura de chamados;Solicitação de comprovante de pagamento;Suporte na atualização de clientes;Suporte na validação de cadastro;Verificar as publicações diárias no DOU;Suporte para as analistas.Requisitos e qualificaçõesEnsino superior Cursando em Farmácia.Informações adicionaisBenefícios:PDS (Prêmio por Desempenho Superior);Parcerias e Convênios (SESC, faculdades, restaurantes, lazer, cultura etc.);Plataforma de Desenvolvimento/ Educacional e Programas de Desenvolvimentos;Programa Gestante;Vale Transporte;Vale Refeição ou Vale Alimentação;Seguro de Vida;&nbsp;Horário: 12h ás 18hModelo de trabalho: PresencialLocal: Cajamar - SP ",
  "prerequisites": "<ul><li>Ensino superior Cursando em Farmácia.</li></ul>",
  "responsibilities": "<ul><li>Estratificação semanal do GNAT – por regional;</li><li>Atualização do controle de contatos de emergência dos refrigerados;</li><li>Atualização do controle de permissões legais e sanitárias;</li><li>Solicitação de Banco de Horas;</li><li>Solicitação e envio de documentação dos Mercados;</li><li>Envio de relatório de documentação pendente para os Mercados;</li><li>Verificação dos chamados pendentes no Vortico;</li><li>Solicitação e envio de materiais de escritório para os CDs;</li><li>Envio de relatório de clientes para o prestador Sthal;</li><li>Abertura de chamados;</li><li>Solicitação de comprovante de pagamento;</li><li>Suporte na atualização de clientes;</li><li>Suporte na validação de cadastro;</li><li>Verificar as publicações diárias no DOU;</li><li>Suporte para as analistas.</li></ul>",
  "benefits": "<p><strong>Benefícios:</strong></p><p><br></p><ul><li>PDS (Prêmio por Desempenho Superior);</li><li>Parcerias e Convênios (SESC, faculdades, restaurantes, lazer, cultura etc.);</li><li>Plataforma de Desenvolvimento/ Educacional e Programas de Desenvolvimentos;</li><li>Programa Gestante;</li><li>Vale Transporte;</li><li>Vale Refeição ou Vale Alimentação;</li><li class=\"ql-align-justify\"><span style=\"color: rgb(74, 74, 74);\">Seguro de Vida;</span></li></ul><p><br></p><p>&nbsp;</p><p><br></p><p><strong>Horário: 12h ás 18h</strong></p><p><strong>Modelo de trabalho: Presencial</strong></p><p class=\"ql-align-justify\"><strong>Local: Cajamar - SP </strong></p>",
  "addressLine": "Via de Acesso Sul km 30, KM 30, Cajamar, São Paulo, Brasil, 07790-330",
  "addressComplements": "",
  "addressDistrict": "Empresarial Mirante de Cajamar (Polvilho)",
  "city": "Cajamar",
  "state": "São Paulo",
  "stateCode": "SP",
  "country": "Brasil",
  "countryCode": "BR",
  "jobType": "vacancy_type_internship",
  "workplaceType": "on-site",
  "isRemoteWork": false,
  "publicationType": "external",
  "status": "published",
  "reason": "staff_replacement",
  "handicapped": false,
  "disabilities": false,
  "skills": null,
  "isJobPostedOnGoogle": true,
  "jobLanguage": null,
  "publishedAt": "2026-02-08T06:25:22.221Z",
  "publishedDate": "2026-02-08T06:25:22.221Z",
  "expiresAt": "2026-02-28",
  "expireDays": 21,
  "registerEndDate": "2026-04-09",
  "applicationDeadline": "2026-04-09",
  "quickApply": false,
  "jobSteps": [
    {
      "id": 63798246,
      "name": "Cadastro",
      "order": 0,
      "type": "register",
      "category": "registration"
    },
    {
      "id": 63798247,
      "name": "Mapeamento Comportamental",
      "order": 1,
      "type": "online",
      "category": "evaluation"
    },
    {
      "id": 63798243,
      "name": "Entrevista - RH",
      "order": 3,
      "type": "offline",
      "category": "interview"
    },
    {
      "id": 63798242,
      "name": "Entrevista - Gestor",
      "order": 4,
      "type": "offline",
      "category": "interview"
    },
    {
      "id": 63798244,
      "name": "Contratação",
      "order": 100,
      "type": "final",
      "category": "hiring"
    }
  ],
  "jobRatingCriterias": [],
  "companyId": 715,
  "companySubdomain": "gruposc",
  "companyTimezone": "America/Sao_Paulo",
  "companyLanguage": "pt",
  "careerPageId": 911,
  "careerPageName": "GrupoSC Distribuidora de Medicamentos",
  "careerPageDisplayName": "GrupoSC",
  "careerPageUrl": "https://gruposc.gupy.io/eyJzb3VyY2UiOiJndXB5X3BvcnRhbCJ9",
  "careerPageLogo": "https://attachments.gupy.io/production/companies/715/career/911/images/logo.jpg",
  "careerPageWebsite": "www.gruposc.com.br",
  "careerPageAbout": "<p>O <strong>GrupoSC</strong> é a soma das marcas SantaCruz, Panpharma e Oncoprod/SAR, que trazem consigo reputação, trajetória e competência. Um grupo que reúne todos os recursos necessários para cumprir o propósito de <strong>levar mais saúde para mais pessoas</strong>. Em um ambiente agradável, nossos colaboradores são diariamente estimulados a desenvolver suas habilidades e competências, por meio de uma gestão participativa e voltada para o crescimento profissional.</p>",
  "careerPageDescriptionTitle": "CONHEÇA O GRUPOSC!",
  "careerPageKnowMoreTitle": "CONHEÇA MAIS SOBRE NÓS",
  "careerPageVisibility": "public",
  "careerPageMainImage": "https://attachments.gupy.io/production/companies/715/career/911/images/2020-05-06_17-14_mainImage.png",
  "careerPageSocialImage": "https://s3.amazonaws.com/gupy5/production/socialmedias/715/20191111060111334Banner-midias-sociais%20prot%C3%B3tipo.png",
  "hasFriendlyBadge": true,
  "badgeFriendly": true,
  "badgeIsPWD": false,
  "companyLinkedin": "https://www.linkedin.com/company/gruposc-distribui%C3%A7%C3%A3o-de-medicamentos/about/?viewAsMember=true",
  "companyFacebook": "",
  "companyTwitter": null,
  "companyInstagram": "",
  "companyGithub": null,
  "companyGlassdoor": "",
  "jobImage": "https://attachments.gupy.io/production/companies/715/images/jobs/179457/20230929111207390_picture.png",
  "jobSocialImage": "https://attachments.gupy.io/production/companies/715/images/jobs/143989/20200109114942367_socialPicture.png",
  "jobSmartphoneImage": null,
  "videoUrl": null,
  "videoSectionTitle": null,
  "scrapedAt": "2026-02-08T09:31:43.212184+00:00"
}
```

### Gupy Jobs API — Python & JavaScript

#### Python

```python
from apify_client import ApifyClient

client = ApifyClient("your_api_token")

run = client.actor("zen-studio/gupy-jobs-scraper").call(run_input={
    "searchTerm": "developer",
    "state": "São Paulo",
    "workplaceTypes": ["remote"],
    "maxResults": 100
})

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(f"{item['name']} at {item['careerPageDisplayName']} — {item['city']}, {item['stateCode']}")
```

#### JavaScript

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

const client = new ApifyClient({ token: 'your_api_token' });

const run = await client.actor('zen-studio/gupy-jobs-scraper').call({
    searchTerm: 'analista',
    state: 'Rio de Janeiro',
    jobTypes: ['vacancy_type_effective'],
    maxResults: 200,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach(item => {
    console.log(`${item.name} — ${item.careerPageDisplayName} (${item.workplaceType})`);
});
```

### Advanced Usage

#### Scrape All Internships Across Brazil

```json
{
    "jobTypes": ["vacancy_type_internship"],
    "sortBy": "newest",
    "maxResults": 0
}
```

#### Monitor a Specific Company's Openings

```json
{
    "companies": ["Nubank"],
    "sortBy": "newest",
    "maxResults": 0
}
```

#### Remote Jobs in Tech Hubs

```json
{
    "searchTerm": "software",
    "cities": ["São Paulo", "Florianópolis", "Belo Horizonte"],
    "workplaceTypes": ["remote"],
    "maxResults": 500
}
```

### Gupy API Alternative — No Authentication Required

The official Gupy API (developers.gupy.io) requires authentication and is designed for employers managing their own job postings. This Actor works as a **public Gupy jobs API** — extracts all publicly available listing data with no token, no account, and no setup. Acesse dados de vagas da Gupy sem necessidade de autenticação ou cadastro.

### Data Export

- **JSON** — Structured data for programmatic analysis
- **CSV** — Spreadsheet-ready for Excel or Google Sheets
- **Excel** — Direct download from the Apify Console

Export from the dataset tab after each run, or access via API.

### Automation

- **Scheduled runs** — Set daily, weekly, or custom cron schedules
- **Webhooks** — Trigger downstream workflows when a run completes
- **API integration** — Pull results into your BI tools or databases
- **Integrations** — Connect to Google Sheets, Slack, Zapier, and more via Apify integrations

### Technical Requirements

- **Memory**: 512 MB (default, sufficient for most runs)
- **Proxy**: Residential BR proxies recommended (pre-configured)
- **Rate limits**: Built-in retry logic with automatic backoff

### FAQ

#### How do I scrape all jobs from Gupy?

Run the Actor with empty input (`{}`). It will paginate through all available listings automatically. Use `maxResults: 0` to remove the default 100-job cap.

#### Do I need a Gupy account to use this scraper?

No. The scraper extracts publicly available job listing data. No login, cookies, or authentication required.

#### What is the hiring pipeline data?

Each job includes `jobSteps` — the complete sequence of hiring stages (registration, assessments, interviews, hiring decision). This data reveals how companies structure their recruitment process, including step names, types, and order.

#### How many vagas (jobs) can I scrape from Gupy?

No hard limit. Set `maxResults: 0` to scrape all available listings. Gupy typically has 500,000+ active job postings across Brazil.

#### Can I filter jobs by remote work on Gupy?

Yes. Set `workplaceTypes` to `["remote"]` for remote-only jobs, `["hybrid"]` for hybrid, or `["on-site"]` for in-person roles. Combine multiple types in the array.

#### Is it possible to scrape Gupy vagas for a specific city?

Yes. Use the `cities` parameter with exact city names as they appear on Gupy (e.g., `["São Paulo", "Campinas"]`). Combine with `state` for more precise targeting.

#### How fresh is the scraped data?

Each result includes a `scrapedAt` timestamp. Data is extracted in real-time — you get the current state of each listing at the time of the run.

#### What output formats does the Gupy scraper support?

JSON, CSV, and Excel. Download directly from the Apify Console or access programmatically via the Apify API in Python, JavaScript, or any HTTP client.

#### Can I use this Brazil job board scraper for free?

Yes. Apify offers a free tier with monthly platform credits. The scraper itself charges per job scraped (starting at $2.99 per 1,000 jobs on the Free tier).

#### Is there a free Gupy API for job listings? / Existe uma API gratuita da Gupy para vagas?

The official Gupy API requires authentication and is built for employers managing their own postings — not for extracting public job data. This Actor works as a ready-to-use Gupy jobs API: structured JSON output, 90+ fields per listing, no token or account needed. Funciona como uma API pública de vagas da Gupy, sem necessidade de token.

#### Como extrair vagas da Gupy sem API token?

Use este Actor como sua API de vagas da Gupy. Basta configurar os filtros (palavra-chave, estado, cidade, tipo de vaga) e executar. Os dados são retornados em JSON, CSV ou Excel com mais de 90 campos estruturados por vaga — incluindo descrição completa, requisitos, benefícios, etapas do processo seletivo e dados da empresa. Sem autenticação, sem cadastro.

#### Can I use this as a Gupy API for data analysis?

Yes. Every job returns structured JSON with 90+ fields — plug directly into pandas, Excel, Google Sheets, or any BI tool. Schedule daily runs to build a time-series dataset of the Brazilian job market. Export as JSON, CSV, or Excel from the Apify Console or via the API.

### Disclaimer

Data is collected from publicly available sources and provided "as is" for informational purposes. Users are responsible for compliance with Gupy's terms of service and applicable regulations in their jurisdiction.

***

[**Start Scraping Gupy Jobs Now**](https://console.apify.com/actors/3BS0sPKYMKxHaXRZ3)

***

*Your Gupy jobs API — structured job market data from Brazil's largest hiring platform, from listing to hiring pipeline.*

# Actor input Schema

## `searchTerm` (type: `string`):

Search for jobs by keyword (e.g. 'analista', 'developer'). Leave empty to scrape all jobs.

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

Filter by Brazilian state. Leave empty for all states.

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

Filter by city names (e.g. 'São Paulo', 'Campinas'). Must match exact city name as used by Gupy. Leave empty for all cities.

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

Filter by workplace type. Leave empty for all.

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

Filter by job/vacancy type. Leave empty for all.

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

Filter by company career page name (e.g. 'BIP Brasil', 'Compass UOL'). Leave empty for all companies.

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

How to sort job results

## `maxResults` (type: `integer`):

Maximum number of jobs to scrape. Set to 0 for unlimited.

## `proxyConfiguration` (type: `object`):

Proxy settings. Residential proxies with Brazil country code are recommended.

## Actor input object example

```json
{
  "searchTerm": "analista",
  "state": "",
  "cities": [],
  "workplaceTypes": [],
  "jobTypes": [],
  "companies": [],
  "sortBy": "newest",
  "maxResults": 5,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "BR"
  }
}
```

# Actor output Schema

## `results` (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 = {
    "searchTerm": "analista",
    "sortBy": "newest",
    "maxResults": 5,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "BR"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("zen-studio/gupy-jobs-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 = {
    "searchTerm": "analista",
    "sortBy": "newest",
    "maxResults": 5,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "BR",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("zen-studio/gupy-jobs-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 '{
  "searchTerm": "analista",
  "sortBy": "newest",
  "maxResults": 5,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "BR"
  }
}' |
apify call zen-studio/gupy-jobs-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,zen-studio/gupy-jobs-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/3BS0sPKYMKxHaXRZ3/builds/5rlQpcjx4Dsq7d2aQ/openapi.json
