{
  "openapi": "3.0.1",
  "info": {
    "title": "Gupy Vagas Scraper: Brazil Jobs, Companies & Hiring Stages",
    "description": "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.",
    "version": "0.1",
    "x-build-id": "tRhq5CZ1bxp7B648T"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/themineworks~gupy-vagas-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-themineworks-gupy-vagas-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/themineworks~gupy-vagas-scraper/runs": {
      "post": {
        "operationId": "runs-sync-themineworks-gupy-vagas-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/themineworks~gupy-vagas-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-themineworks-gupy-vagas-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "searchTerms": {
            "title": "Search terms",
            "type": "array",
            "description": "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.",
            "items": {
              "type": "string"
            }
          },
          "maxJobsPerSearch": {
            "title": "Jobs per search",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Most jobs to return for each search term (and each company, when you name companies). A job found by two searches is returned once.",
            "default": 100
          },
          "state": {
            "title": "State",
            "enum": [
              "",
              "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"
            ],
            "type": "string",
            "description": "Only jobs in this Brazilian state.",
            "default": ""
          },
          "cities": {
            "title": "Cities",
            "type": "array",
            "description": "Only jobs in these cities, written as Gupy writes them (for example Campinas or São Paulo). Pick the state too.",
            "items": {
              "type": "string"
            }
          },
          "workplaceTypes": {
            "title": "Work model",
            "type": "array",
            "description": "Only jobs with these work models. Empty means all.",
            "items": {
              "type": "string",
              "enum": [
                "remote",
                "hybrid",
                "on-site"
              ],
              "enumTitles": [
                "Remote (Remoto)",
                "Hybrid (Híbrido)",
                "On-site (Presencial)"
              ]
            }
          },
          "jobTypes": {
            "title": "Job types",
            "type": "array",
            "description": "Only these contract types, as Gupy labels them. Empty means all.",
            "items": {
              "type": "string",
              "enum": [
                "vacancy_type_effective",
                "vacancy_type_internship",
                "vacancy_type_apprentice",
                "vacancy_type_trainee",
                "vacancy_legal_entity",
                "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",
                "vacancy_type_lecturer",
                "vacancy_type_summer",
                "vacancy_type_intermittent"
              ],
              "enumTitles": [
                "Permanent, CLT (Efetivo)",
                "Internship (Estágio)",
                "Apprentice (Aprendiz)",
                "Trainee",
                "Contractor, PJ (Pessoa Jurídica)",
                "Temporary (Temporário)",
                "Freelancer",
                "Self-employed (Autônomo)",
                "Associate (Associado)",
                "Outsourced (Terceiro)",
                "Talent pool (Banco de Talentos)",
                "Volunteer (Voluntário)",
                "Partner (Sócio)",
                "Lecturer (Docente)",
                "Summer job",
                "Intermittent (Intermitente)"
              ]
            }
          },
          "companies": {
            "title": "Companies",
            "type": "array",
            "description": "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.",
            "items": {
              "type": "string"
            }
          },
          "pcdOnly": {
            "title": "PcD jobs only",
            "type": "boolean",
            "description": "Gupy's own PcD filter, the \"Afirmativas para PCD\" toggle on portal.gupy.io (vagas for people with disabilities).",
            "default": false
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "newest",
              "oldest",
              "relevance"
            ],
            "type": "string",
            "description": "Order of the results, the same choices as Gupy's own search.",
            "default": "newest"
          },
          "includeDetails": {
            "title": "Read each job page",
            "type": "boolean",
            "description": "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.",
            "default": true
          },
          "onlyNewJobs": {
            "title": "Only new jobs (monitor mode)",
            "type": "boolean",
            "description": "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.",
            "default": false
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}