{
  "openapi": "3.0.1",
  "info": {
    "title": "Gupy Jobs Scraper / Vagas por Empresa e Termo",
    "description": "Get open jobs from Gupy careers pages in Brazil by company and search term: job title, city, work model (remote, hybrid, on-site), contract type, publication date and apply URL. Filter by term, city or remote only. Only-new-jobs mode for schedules. No login. Failed items are free.",
    "version": "0.1",
    "x-build-id": "uJpbpFX1jrQkrukp5"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapewise~gupy-vagas/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapewise-gupy-vagas",
        "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/scrapewise~gupy-vagas/runs": {
      "post": {
        "operationId": "runs-sync-scrapewise-gupy-vagas",
        "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/scrapewise~gupy-vagas/run-sync": {
      "post": {
        "operationId": "run-sync-scrapewise-gupy-vagas",
        "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",
        "required": [
          "empresas"
        ],
        "properties": {
          "empresas": {
            "title": "Company Gupy subdomains",
            "type": "array",
            "description": "Gupy subdomains of the companies to read, one per line: the part before .gupy.io in the careers page URL, such as ambev for ambev.gupy.io, localiza or magazineluiza. Usually the brand name in lowercase, without spaces or accents. Each company is one page load and returns its whole open job list, up to 'Max jobs per company'. A subdomain that does not exist fails the run with a message naming it. Default: ambev.",
            "items": {
              "type": "string"
            },
            "default": [
              "ambev"
            ]
          },
          "termo": {
            "title": "Search term (optional)",
            "type": "string",
            "description": "Optional word that must appear in the job title, case insensitive, as a literal substring: analista, desenvolvedor, vendedor, estágio. No synonyms or plurals, so use the word Brazilian titles carry. Empty (default) = every open job. Jobs removed here are not charged.",
            "default": ""
          },
          "cidade": {
            "title": "City filter (optional)",
            "type": "string",
            "description": "Optional city name that must appear in the job's workplace city, case insensitive, as a substring: São Paulo, Belo Horizonte, Recife. The state is not checked, so a city name that exists in two states returns both. Empty (default) = every city the company is hiring in. Jobs removed here are not charged.",
            "default": ""
          },
          "remoto": {
            "title": "Remote only",
            "type": "boolean",
            "description": "On: keep only jobs the company marked as remote (modelo = remoto). Hybrid jobs are not kept, because Gupy lists them as a separate work model; to get hybrid too, leave this off and filter the modelo column. Off (default): every work model.",
            "default": false
          },
          "maximo": {
            "title": "Max jobs per company",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Cap of jobs per company, from 1 to 5,000, taken in the careers page order. Default 30. With five companies and 100 here, each contributes at most 100. Together with 'Max results (total)' it is your cost ceiling: each delivered job costs US$ 0.002 on the Free plan.",
            "default": 30
          },
          "maxItems": {
            "title": "Max results (total)",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Hard cap of jobs for the whole run, across every company, from 1 to 10,000. Default 30 (US$ 0.06 at most on the Free plan). The run stops once this many jobs are delivered, so set it on every scheduled Task to keep the monthly cost predictable.",
            "default": 30
          },
          "onlyNewJobs": {
            "title": "Only new jobs since the last run",
            "type": "boolean",
            "description": "For a daily job alert. Remembers which jobs of each company were already delivered, by Gupy's stable job id (Key-Value Store 'gupy-vagas-only-new-jobs' in your account), and skips them on the next runs, free. The first run delivers matching jobs up to the caps and marks the company's current list as seen; later runs bring only jobs posted since. Delete the store to start over. Default off.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Not needed: the careers pages are public HTTPS and are read without proxy (default off). The field is kept for compatibility with saved inputs; leave it as it is.",
            "default": {
              "useApifyProxy": 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}