{
  "openapi": "3.0.1",
  "info": {
    "title": "Catho Jobs Scraper",
    "description": "Every job on Catho, Brazil's biggest job board, in one run: recruiters see who is hiring and at what salary, HR teams benchmark pay by role and city, and analysts track demand by area, contract type and work model. Full descriptions and benefits, 1,000 jobs in under a minute.",
    "version": "1.0",
    "x-build-id": "CMjVvmQ82eRsXaRI1"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/normdata~catho-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-normdata-catho-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/normdata~catho-scraper/runs": {
      "post": {
        "operationId": "runs-sync-normdata-catho-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/normdata~catho-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-normdata-catho-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": {
          "maxItems": {
            "title": "Maximum jobs",
            "minimum": 1,
            "type": "integer",
            "description": "Stop after this many jobs. Leave empty for no limit (the run stops once the matching jobs run out). The Apify Free plan is always capped at 10."
          },
          "keywords": {
            "title": "Job titles or keywords",
            "type": "array",
            "description": "One or more searches, in Portuguese as people search on Catho, e.g. \"desenvolvedor\", \"analista financeiro\", \"enfermeiro\". Each one runs its own search and is tagged on every row it produces.",
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "States or cities, e.g. \"SP\", \"RJ\" or \"Campinas - SP\". Each location runs its own search. Leave empty for all of Brazil.",
            "items": {
              "type": "string"
            }
          },
          "pageUrl": {
            "title": "…or paste a Catho search link",
            "type": "string",
            "description": "Already filtered a search on catho.com.br? Paste that page's URL and it's reused exactly; every other search field and filter is then ignored."
          },
          "workModels": {
            "title": "Work model",
            "type": "array",
            "description": "Remote, hybrid or on-site. Picking one or more also adds a workModel column to every row, since Catho only shows the model when you filter by it.",
            "items": {
              "type": "string",
              "enum": [
                "remote",
                "hybrid",
                "presential"
              ],
              "enumTitles": [
                "Remote (home office)",
                "Hybrid",
                "On-site"
              ]
            }
          },
          "contractTypes": {
            "title": "Contract type",
            "type": "array",
            "description": "Only these types of contract.",
            "items": {
              "type": "string",
              "enum": [
                "2",
                "6",
                "7",
                "5",
                "1",
                "4",
                "8"
              ],
              "enumTitles": [
                "CLT (permanent)",
                "PJ (contractor)",
                "Temporary",
                "Freelance",
                "Self-employed (autônomo)",
                "Cooperative",
                "Trainee"
              ]
            }
          },
          "areas": {
            "title": "Professional areas",
            "type": "array",
            "description": "Only jobs in these areas.",
            "items": {
              "type": "string",
              "enum": [
                "47",
                "1",
                "3",
                "1937",
                "12",
                "1906",
                "20",
                "67",
                "69",
                "73",
                "74",
                "75",
                "1859",
                "1858",
                "1943",
                "1904",
                "5",
                "6",
                "7",
                "21",
                "60",
                "14",
                "15",
                "70",
                "53",
                "57",
                "66",
                "1965",
                "71",
                "24",
                "87",
                "18",
                "29",
                "30",
                "484",
                "32",
                "34",
                "35",
                "38",
                "483",
                "31",
                "36",
                "37",
                "11",
                "19",
                "23",
                "40",
                "2",
                "76",
                "48",
                "72",
                "9",
                "10",
                "25",
                "50",
                "56",
                "51",
                "52",
                "54",
                "13",
                "26",
                "39",
                "41",
                "43",
                "45",
                "46",
                "58",
                "61",
                "62",
                "65",
                "1902",
                "77",
                "55",
                "88",
                "79",
                "80",
                "33",
                "8"
              ],
              "enumTitles": [
                "Administração: Administrativa",
                "Administração: Administrativo Comercial",
                "Administração: Administrativo/ Operacional",
                "Administração: Arquivista",
                "Administração: Biblioteconomia",
                "Administração: Compras",
                "Administração: Departamento Pessoal",
                "Administração: Qualidade",
                "Administração: Recursos Humanos",
                "Administração: Secretariado",
                "Administração: Segurança do Trabalho",
                "Administração: Segurança Patrimonial",
                "Agricultura, Pecuária e Veterinária: Agronômica/ Engenharia Agronômica/ Agribusiness",
                "Agricultura, Pecuária e Veterinária: Agropecuária/ Veterinária/ Agrobusiness",
                "Agricultura, Pecuária e Veterinária: Biologia",
                "Agricultura, Pecuária e Veterinária: Zootecnia",
                "Artes, Arquitetura e Design: Arquitetura/ Decoração/ Urbanismo",
                "Artes, Arquitetura e Design: Artes",
                "Artes, Arquitetura e Design: Artes Gráficas",
                "Artes, Arquitetura e Design: Desenho Industrial",
                "Artes, Arquitetura e Design: Moda",
                "Comercial e Vendas: Comercial/ Vendas",
                "Comércio Exterior: Comércio Exterior/ Trade/ Importação/ Exportação",
                "Comércio Exterior: Relações Internacionais",
                "Comunicação / Marketing: Jornalismo",
                "Comunicação / Marketing: Marketing",
                "Comunicação / Marketing: Publicidade e Propaganda",
                "Comunicação / Marketing: Rádio e TV",
                "Comunicação / Marketing: Relações Públicas",
                "Educação: Educação/ Ensino/ Idiomas",
                "Educação: Tradutor/ Intérprete",
                "Engenharia: Engenharia Civil/Construção Civil",
                "Engenharia: Engenharia de Alimentos",
                "Engenharia: Engenharia de Materiais",
                "Engenharia: Engenharia de Minas",
                "Engenharia: Engenharia de Produção/ Industrial",
                "Engenharia: Engenharia Elétrica/ Eletrônica",
                "Engenharia: Engenharia Mecânica/ Mecatrônica",
                "Engenharia: Engenharia/ Outros",
                "Engenharia: Geologia /Engenharia Agrimensura",
                "Engenharia: Meio Ambiente/ Ecologia/ Engenharia de Meio Ambiente",
                "Engenharia: Química/ Engenharia Química",
                "Engenharia: Têxtil/ Engenharia Têxtil",
                "Financeira: Bancária/ Private Corporate Bank",
                "Financeira: Contabilidade",
                "Financeira: Economia",
                "Financeira: Estatística /Matemática /Atuária",
                "Financeira: Financeira/ Administrativa",
                "Financeira: Seguros",
                "Hotelaria e Turismo: Hotelaria/ Turismo",
                "Hotelaria e Turismo: Restaurante",
                "Industrial: Automação Industrial/ Comercial",
                "Industrial: Aviação/ Aeronáutica",
                "Industrial: Energia",
                "Industrial: Industrial",
                "Industrial: Manutenção",
                "Informática: Informática /TI / Engenharia da Computação",
                "Informática: Internet/ E-Commerce/ E-Business/ Web/ Web Designer",
                "Jurídica: Jurídica",
                "Saúde: Biotecnologia/ Biomédicas/ Bioquímica",
                "Saúde: Enfermagem",
                "Saúde: Esportes/ Educação Física",
                "Saúde: Estética Corporal",
                "Saúde: Farmácia",
                "Saúde: Fisioterapia",
                "Saúde: Fonoaudiologia",
                "Saúde: Médico/ Hospitalar",
                "Saúde: Nutrição",
                "Saúde: Odontologia",
                "Saúde: Psicologia Clínica/ Hospitalar",
                "Saúde: Terapia Ocupacional",
                "Serviços Sociais: Serviço Social",
                "Suprimentos: Logística/ Suprimentos",
                "Suprimentos: Transportes",
                "Técnica: Técnica",
                "Técnica: Técnico-Comercial",
                "Telecomunicações: Telecomunicações/ Engenharia de Telecomunicações",
                "Telemarketing: Atendimento ao Cliente/ Call Center/ Telemarketing"
              ]
            }
          },
          "salaryBand": {
            "title": "Minimum salary",
            "enum": [
              "any",
              "3",
              "4",
              "5",
              "6",
              "7",
              "8",
              "9",
              "10",
              "11",
              "12",
              "13",
              "14"
            ],
            "type": "string",
            "description": "Monthly salary band, as Catho groups it."
          },
          "onlyWithSalary": {
            "title": "Only jobs that show a salary",
            "type": "boolean",
            "description": "Hide jobs whose salary is \"A combinar\" (to be agreed)."
          },
          "postedWithin": {
            "title": "Posted within",
            "enum": [
              "any",
              "0",
              "1",
              "2",
              "7",
              "15",
              "30"
            ],
            "type": "string",
            "description": "Only jobs published recently."
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "relevance",
              "newest"
            ],
            "type": "string",
            "description": "Most relevant first, or newest first."
          },
          "fetchDetails": {
            "title": "Full job details",
            "type": "boolean",
            "description": "Opens each job to add the full description, contract type, working hours, benefits list, every location with street and CEP, and the exact posting date. Still fast (about 1,000 jobs in under a minute); turn off for a list-only run."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}