Gupy Jobs Scraper icon

Gupy Jobs Scraper

Scrape public jobs from Gupy.io by keyword, state, city, workplace type, job type, company, PWD, and feedback badge. Extract rich job details, company…

Start using this actor on Apify ↗Need a custom scraper?Contact us ↗

Gupy Jobs Scraper at a glance

Gupy Jobs Scraper is a ready-to-run Apify actor from abotapi for collecting jobs data. Its documented output includes id, job title, company, city and state, which you can export as JSON, CSV or Excel or read through the Apify API. It costs $2.00 per 1,000 results on the Apify Free plan and from $1.00 on paid plans, with smaller per-run or optional feature charges listed on Apify.

Runs on
Apify cloud: console, API, schedules and integrations
Data type
Jobs, Lead Generation, Automation
Pricing
$2.00 per 1,000 results (Free plan), from $1.00 on paid plans
Output
Documented below · JSON, CSV, Excel
Inputs
26 options

Scrape public jobs from Gupy.io by keyword, state, city, workplace type, job type, company, PWD, and feedback badge. Extract rich job details, company information, locations, application deadlines, and badge data.

What Gupy Jobs Scraper can do

  • Two ways to find jobs. Run a filtered search (keyword, state, city, workplace type, job type, company, PWD only, feedback badge only) or paste portal search links and direct Gupy job links. Direct job links are always fetched in full, whatever the detail toggle is set to.
  • Optional full detail enrichment. Turn on Fetch details to add the complete per job record. The detail enrichment charge only applies to a job that actually reaches the dataset, not to every detail page fetched. Jobs from direct Gupy job links are always fully fetched, so they carry the detail enrichment charge even with Fetch details off.
  • Sort after collection. Order saved jobs newest, oldest, or by company name, A to Z.
  • Full catalogue pagination by default. The walk covers every result page unless you cap it, and leading pages that were all collected before are skipped past rather than ending the walk. See the pagination notes below for the cases where a walk can still end early.
  • Survives interruptions. A run that gets migrated or restarted mid walk reloads its already collected jobs and ids, so they are not saved twice, detail fetched again, or charged again.
  • Resume across separate runs. Paste a previous run or dataset ID to keep pulling a large catalogue over several runs without re saving jobs you already have.

Choose what to collect

These inputs let you configure Gupy Jobs Scraper - Jobs, Companies, Locations & Deadlines. Open the actor on Apify to enter your values and review the current options.

Supported input fields
InputWhat it controls
modestringSearch mode uses the filters below. URL mode accepts portal search URLs and Gupy company job URLs.

Choices: search, url

searchTermstringJob title, skill, or keyword. Leave empty to scrape all jobs matching the other filters.
statestringBrazilian state filter. Leave empty for all states.

Choices: , Acre, Alagoas, Amapá, Amazonas, Bahia, Ceará, Distrito Federal, Espírito Santo, Goiás, Maranhão, Mato Grosso, Mato Grosso do Sul, Minas Gerais, Pará, Paraíba, Paraná, Pernambuco, Piauí, Rio de Janeiro, Rio Grande do Norte, Rio Grande do Sul, Rondônia, Roraima, Santa Catarina, São Paulo, Sergipe, Tocantins

citiesarrayCity names, for example 'Sao Paulo' (accents are restored). A city that matches nothing fails the run. Leave empty for all cities.
workplaceTypesarrayRemote, hybrid, or on-site jobs. Leave empty for all workplace types.
jobTypesarrayGupy vacancy type values. Leave empty for all job types.
companiesarrayCareer page names, for example 'PagBank' or '#sejaveriter'. Matching ignores case and accents and accepts part of a name; a name that matches nothing fails the run. Leave empty for all companies.
Show 19 more inputs
More input fields
InputWhat it controls
pwdOnlybooleanReturn only jobs marked for people with disabilities.
friendlyBadgeOnlybooleanReturn only jobs from companies with Gupy feedback badge.
urlsarrayPortal search URLs (term, state, workplaceTypes, sortBy, page), company career pages (https://.gupy.io/) or Gupy job links. Used only when Mode is URLs. Leaving this field out runs the 7 examples.
fetchDetailsbooleanFetch the full per-job record before saving each result. Applies to Search mode and to portal search URLs. Direct Gupy job URLs are always fetched in full, so this toggle does not affect them. Adds the detail-enrichment charge per enriched job that is actually saved, a job suppressed by Incremental mode (UNCHANGED, Emit unchanged off) is never charged even though its detail page was fetched. Also part of the Incremental mode baseline key: turning it on or off starts a separate tracked baseline.
sortBystringSort saved jobs after collection. Applies in both Search and URL mode.

Choices: newest, oldest, company

maxItemsintegerMaximum matching rows to save. Fewer rows may be returned when the selected source, keyword, and filters match fewer live records.
maxPagesintegerLeave empty to walk every result page. Set 0 for unlimited; the run stops at Max items. A positive number caps the walk at that many pages.
pageSizeintegerAPI page size. Larger pages are faster; smaller pages are useful for debugging.
resumeFromRunIdstringPaste a previous run ID or dataset ID to continue a full-catalogue walk across separate runs. Jobs already collected there (matched by job id) are skipped, so this run only saves the new ones. Leave empty for a normal fresh run. For recurring monitoring of the same search instead, use Incremental & dedup mode below.
incrementalModebooleanRemember this search's results between scheduled runs and classify each job as NEW, UPDATED, UNCHANGED, REAPPEARED, or EXPIRED (changeType field). A job is UPDATED when any saved field differs from the last tracked run (title, description, deadline, workplace, salary, badges and so on; changed field names are listed in changedFields). Always excluded from the comparison: scrapedAt and expireDays, plus anything listed in Ignore fields when detecting changes. Unlike Resume from a previous run (which continues one specific run by pasted id), this actor tracks its own baseline automatically, keyed by the search filters below (or State key). Off by default, every run scrapes and saves everything it finds.
stateKeystringOnly used when Incremental & dedup mode is on. Leave empty to key the baseline automatically from the search filters (mode, keyword, state, cities, workplace/job types, companies, PWD/badge flags, URLs, Fetch details). Set your own text to track a named monitoring campaign explicitly, or to keep two schedules with identical filters from sharing one baseline.
emitUnchangedbooleanOnly used when Incremental & dedup mode is on. When off (default), a job identical to the last tracked run is skipped, not saved, not billed. When on, UNCHANGED rows are saved (and billed) too, alongside NEW/UPDATED/REAPPEARED ones.
emitExpiredbooleanOnly used when Incremental & dedup mode is on. When on, a job tracked by a previous run but no longer found after a complete scan of this search is saved once with changeType EXPIRED (and billed as a normal result row). Only fires on a run that reached the natural end of the walk, Max items/Max pages capping the run, or Resume from a previous run being set, skips EXPIRED detection for that run and keeps the previous state as-is.
ignoreFieldsForChangesarrayOnly used when Incremental & dedup mode is on. Field names (dotted paths for nested fields, for example source.salary) that never count as a change: they stay in every output row but cannot turn a job into UPDATED or appear in changedFields. scrapedAt and expireDays (a day count that drifts daily) are always excluded.
mcpConnectorsarrayOptionally send the scraped jobs into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize a connector once under Apify → Settings → Integrations, then select it here. The connector receives a condensed, human-readable summary per job (title + key fields), not the full JSON; the complete record stays in the dataset. Leave empty to skip. Supported: Notion (https://mcp.notion.com/mcp), Linear (https://mcp.linear.app/sse), Airtable (https://mcp.airtable.com/mcp), Apify (https://mcp.apify.com).
notionParentPageUrlstringURL (or id) of the Notion page under which job pages are created. Required to enable the Notion export; ignored by other connectors.
maxNotifyListingsintegerCap on jobs written to each connector per run. Does not affect the dataset.
maxResultsintegerAlias of Max items, accepted for compatibility. Max items wins when both are set.
feedbackstringOptional free-text note from an AI agent or user. Accepted and ignored.

Fields in the output

The documented dataset includes the fields below. Availability can depend on the source page and selected mode.

idID (number)
nameJob title (text)
careerPageDisplayNameCompany (text)
cityCity (text)
stateState (text)
workplaceTypeWorkplace (text)
jobTypeJob type (text)
publishedAtPublished (date)
applicationDeadlineDeadline (date)
detailFetchedDetails (boolean)
changeTypeChange type (text)
changedFieldsChanged fields (array)
Show 27 more fields
firstSeenAtFirst seen (date)
lastSeenAtLast seen (date)
jobUrlJob URL (link)
descriptionDescription (text)
prerequisitesPrerequisites (text)
responsibilitiesResponsibilities (text)
addressLineAddress line (text)
companySubdomainCompany subdomain (text)
companyTimezoneCompany timezone (text)
companyLanguageCompany language (text)
careerPageNameCareer page name (text)
careerPageUrlCareer page url (link)
careerPageLogoCareer page logo (link)
careerPageWebsiteCareer page website (link)
careerPageAboutCareer page about (text)
careerPageDescriptionTitleCareer page description title (text)
careerPageVisibilityCareer page visibility (text)
careerPageMainImageCareer page main image (link)
careerPageSocialImageCareer page social image (link)
careerPageKnowMoreTitleCareer page know more title (text)
companyLinkedinCompany linkedin (link)
companyFacebookCompany facebook (link)
companyInstagramCompany instagram (link)
companyGlassdoorCompany glassdoor (link)
companyIdCompany id (number)
careerPageIdCareer page id (number)
companyIntegrationsCompany integrations (object)

Example output

An example from this actor’s documentation. Values are illustrative; this is not a fresh live result.

{
  "id": 3050001,
  "code": "9001-3050001",
  "name": "Analista de Sistemas Pleno",
  "jobUrl": "https://sample-company.gupy.io/job/eyJqb2JJZCI6MzA1MDAwMX0=",
  "description": "<p>Full HTML job description as published.</p>",
  "descriptionPlainText": "Full job description, converted to plain text.",
  "prerequisites": null,
  "city": "São Paulo",
  "state": "São Paulo",
  "stateCode": "SP",
  "country": "Brasil",
  "countryCode": "BR",
  "jobType": "vacancy_type_effective",
  "workplaceType": "hybrid",
  "isRemoteWork": false,
  "publishedAt": "2026-08-01T12:00:00.000Z",
  "applicationDeadline": "2026-09-15T23:59:59.000Z",
  "expireDays": 17,
  "companyId": 9001,
  "companySubdomain": "sample-company",
  "careerPageName": "Sample Company",
  "careerPageDisplayName": "Sample Company",
  "careerPageUrl": "https://sample-company.gupy.io",
  "hasFriendlyBadge": true,
  "badgeIsPWD": false,
  "skills": [
    "Comunicação",
    "Excel"
  ],
  "sourceQuery": {
    "searchTerm": "developer",
    "state": "São Paulo",
    "cities": [],
    "workplaceTypes": [],
    "jobTypes": [],
    "companies": [],
    "pwdOnly": false,
    "friendlyBadgeOnly": false
  },
  "detailFetched": true,
  "source": {},
  "scrapedAt": "2026-09-29T09:00:00.000Z"
}

Ways to use this data

  • Recruiters and talent teams: watch a set of companies' Gupy career pages for new openings by keyword, state, or workplace type.
  • Job boards and aggregators: mirror Gupy listings for a state, city, or workplace type into your own catalogue.
  • Workforce and HR analytics: run the same search on a schedule with Incremental mode and track how postings and requirements change over time.
  • Accessibility focused services: filter for PWD marked listings across many companies at once.
  • Automation and agent builders: pipe new listings straight into Notion, Linear, or Airtable through the MCP connector field.

Before you run

Start with a small input and check the resulting records against your expected fields. Source content and actor options can change; the current Apify listing is the reference for availability and pricing.

Questions about this actor

What data does Gupy Jobs Scraper return?

The documented output for Gupy Jobs Scraper includes id, job title, company, city, state, workplace, job type and published. Availability of each field depends on the source page and the selected mode.

How much does Gupy Jobs Scraper cost?

It costs $2.00 per 1,000 results on the Apify Free plan and from $1.00 on paid plans, with smaller per-run or optional feature charges listed on Apify. The Apify listing shows the current rate for every plan.

Can I get only new or changed jobs on a schedule?

Yes. Schedule the actor from the Schedules tab and turn on Incremental mode. Each run then returns only NEW, UPDATED, and REAPPEARED jobs for that search, and unchanged ones are not billed unless you turn on Emit unchanged.

Why did my run return fewer jobs than I expected?

Max items and Max pages both cap a run, and Gupy's own reported result total is not a reliable signal once a search has many matches. Raise Max items, raise or clear Max pages, or set Max pages to 0, to walk the whole result set. Two cases can also end a search early without an error: several overlapping search links in one URL mode run, and a Resume run after new jobs were posted. Both are described under "How Max items and Max pages shape a run" above.

Why did my run fail instead of returning an empty dataset?

Two situations fail the run outright rather than returning an empty dataset: pasting a Resume from a previous run ID that this Apify account cannot read (checked before any scraping starts), and turning on Incremental mode together with Resume from a previous run when that search already has saved incremental state. Fix the ID, or remove one of the two settings, and run it again. A run also fails when no results page could be loaded through any connection (see Plan Requirement), and when a company or city you typed matches nothing.

Can I use it with AI agents or MCP?

Yes. Call it from any Apify integration or MCP client, and use the connector field to push results into Notion, Linear, or Airtable.

Ready to collect with Gupy Jobs Scraper?

Run it on Apify with your own input and export the results as JSON, CSV or Excel.