{
  "openapi": "3.0.1",
  "info": {
    "title": "jobs.ch Scraper",
    "description": "Scrape job listings from jobs.ch, Switzerland's largest job board. Search by keyword, or browse by region, industry, occupational field or contract type, with filters for workload, seniority, language, company size and publish date. Returns title, company, location, workload and the job URL.",
    "version": "1.0",
    "x-build-id": "Edye6wDKEoySllIQd"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/crawlerbros~jobs-ch-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-crawlerbros-jobs-ch-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/crawlerbros~jobs-ch-scraper/runs": {
      "post": {
        "operationId": "runs-sync-crawlerbros-jobs-ch-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/crawlerbros~jobs-ch-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-crawlerbros-jobs-ch-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",
        "required": [
          "mode"
        ],
        "properties": {
          "mode": {
            "title": "Mode",
            "enum": [
              "search",
              "byRegion",
              "byIndustry",
              "byEmploymentType",
              "byCategory"
            ],
            "type": "string",
            "description": "What to fetch. `search` runs a free-text keyword search (leave the query blank to browse every job). `byRegion` browses a Swiss canton/language-region. `byIndustry` browses an industry/category. `byEmploymentType` browses a contract type. `byCategory` browses an occupational field / job function.",
            "default": "search"
          },
          "searchQuery": {
            "title": "Search query",
            "type": "string",
            "description": "Free-text keyword to search job titles/descriptions (mode=search). Leave blank to browse all jobs matching the other filters. Combinable with every filter below in any mode.",
            "default": ""
          },
          "region": {
            "title": "Canton / region",
            "enum": [
              "",
              "2",
              "3",
              "4",
              "5",
              "6",
              "7",
              "8",
              "9",
              "10",
              "11",
              "12",
              "13",
              "14",
              "15",
              "16",
              "17",
              "18",
              "19",
              "20",
              "21",
              "22",
              "23",
              "24",
              "25"
            ],
            "type": "string",
            "description": "Browse jobs by Swiss canton / language-region (required for mode=byRegion; optional filter in every other mode).",
            "default": ""
          },
          "location": {
            "title": "City / place (free text)",
            "type": "string",
            "description": "Optional free-text refinement by city or place name (e.g. \"Zürich\", \"Geneva\", \"Basel\"). Combinable with `region`.",
            "default": ""
          },
          "industry": {
            "title": "Industry / category",
            "enum": [
              "",
              "1",
              "2",
              "3",
              "4",
              "5",
              "6",
              "7",
              "8",
              "9",
              "10",
              "11",
              "12",
              "13",
              "14",
              "15",
              "16",
              "17",
              "18",
              "19",
              "20",
              "21",
              "22",
              "23",
              "24"
            ],
            "type": "string",
            "description": "Browse jobs by industry sector (required for mode=byIndustry; optional filter in every other mode).",
            "default": ""
          },
          "employmentType": {
            "title": "Employment (contract) type",
            "enum": [
              "",
              "1",
              "2",
              "3",
              "4",
              "5",
              "6"
            ],
            "type": "string",
            "description": "Browse/filter by contract type (required for mode=byEmploymentType; optional filter in every other mode).",
            "default": ""
          },
          "employmentGradeMin": {
            "title": "Workload % — minimum",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Lower bound of the workload/employment-grade range, in percent (e.g. 80 for an 80-100% role).",
            "default": 0
          },
          "employmentGradeMax": {
            "title": "Workload % — maximum",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Upper bound of the workload/employment-grade range, in percent.",
            "default": 100
          },
          "position": {
            "title": "Seniority level",
            "enum": [
              "",
              "1",
              "2",
              "3"
            ],
            "type": "string",
            "description": "Optional filter by seniority/position level.",
            "default": ""
          },
          "category": {
            "title": "Occupational field / job function",
            "enum": [
              "",
              "100",
              "101",
              "102",
              "103",
              "104",
              "105",
              "106",
              "107",
              "108",
              "109",
              "110",
              "111",
              "112",
              "113",
              "114",
              "115",
              "116",
              "117"
            ],
            "type": "string",
            "description": "Browse/filter by occupational field — the job's function (e.g. IT, Sales, Finance), distinct from `industry` (the employer's business sector). Required for mode=byCategory; optional filter in every other mode.",
            "default": ""
          },
          "publishedSince": {
            "title": "Published since",
            "enum": [
              "",
              "1",
              "3",
              "7",
              "30"
            ],
            "type": "string",
            "description": "Optional filter to only return jobs first published within this time window.",
            "default": ""
          },
          "languageSkill": {
            "title": "Required language",
            "enum": [
              "",
              "de",
              "en",
              "fr",
              "it"
            ],
            "type": "string",
            "description": "Optional filter to only return jobs that require this working language.",
            "default": ""
          },
          "companySegment": {
            "title": "Company size",
            "enum": [
              "",
              "gu",
              "kmu"
            ],
            "type": "string",
            "description": "Optional filter by employer size/segment.",
            "default": ""
          },
          "includeDescription": {
            "title": "Include full description & salary (slower)",
            "type": "boolean",
            "description": "When enabled, fetches each job's detail page to add the full job description, benefits, required skills, apply URL and salary (only when the employer discloses it — most Swiss listings do not). This roughly doubles the number of requests per run.",
            "default": false
          },
          "locale": {
            "title": "Language",
            "enum": [
              "en",
              "de",
              "fr"
            ],
            "type": "string",
            "description": "Language of the jobs.ch site to scrape from — affects the language of translated fields (title/company are unaffected; job counts and set are identical across locales).",
            "default": "en"
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Maximum number of job listings to return. jobs.ch returns 20 listings per page.",
            "default": 20
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Optional. jobs.ch is a plain public site that normally does not require a proxy; this is used only as an automatic fallback if the datacenter IP gets temporarily rate-limited.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}