{
  "openapi": "3.0.1",
  "info": {
    "title": "JobScout24.ch Scraper",
    "description": "[💰 $2.5 / 1K] Extract job listings from JobScout24.ch, a major Swiss job board — titles, companies, locations, workload %, contract type, publication dates, full descriptions and direct job links. Filter by keyword, region, category, contract type and workload.",
    "version": "1.0",
    "x-build-id": "iSR3k9OvEqHhT8gWl"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/solidcode~jobscout24-ch-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-solidcode-jobscout24-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/solidcode~jobscout24-ch-scraper/runs": {
      "post": {
        "operationId": "runs-sync-solidcode-jobscout24-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/solidcode~jobscout24-ch-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-solidcode-jobscout24-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",
        "properties": {
          "searchQueries": {
            "title": "Search Keywords",
            "maxItems": 50,
            "type": "array",
            "description": "Job titles or keywords to search for, such as 'Software Engineer', 'Sachbearbeiter' or 'Chauffeur'. Each keyword runs a separate search and the results are merged and de-duplicated. Leave empty if you only want to use the direct URLs below.",
            "items": {
              "type": "string"
            }
          },
          "location": {
            "title": "Location (City)",
            "type": "string",
            "description": "A Swiss city or town to search in, such as 'Zürich', 'Bern', 'Geneva' or 'Basel'. The city name is matched to a location page on JobScout24.ch, so use a plain city name (postal codes and full addresses are not supported). Leave empty to search all of Switzerland. For broader area filtering, use the Region filter below instead — it is the most reliable geographic filter. Ignored when Direct URLs are provided."
          },
          "region": {
            "title": "Region",
            "enum": [
              "",
              "1",
              "2",
              "3",
              "13",
              "4",
              "5",
              "6",
              "7",
              "8",
              "9",
              "10",
              "11",
              "14"
            ],
            "type": "string",
            "description": "Limit results to a named Swiss region (a group of cantons). Leave on 'Any region' to include the whole country. Use 'Home Office / Remote' to find remote-friendly roles. This is the most reliable way to filter by area."
          },
          "startUrls": {
            "title": "Direct URLs",
            "maxItems": 200,
            "type": "array",
            "description": "Paste one or more JobScout24.ch URLs directly — search-result pages (…/jobs/…) or individual job postings (…/job/<id>/). When provided, these override the Search Keywords, Location and Region fields above.",
            "items": {
              "type": "string"
            }
          },
          "category": {
            "title": "Professional Category",
            "enum": [
              "",
              "1",
              "2",
              "3",
              "4",
              "5",
              "6",
              "7",
              "8",
              "10",
              "11",
              "12",
              "13",
              "14",
              "15",
              "16",
              "17",
              "18",
              "19",
              "20",
              "22",
              "23",
              "24",
              "21"
            ],
            "type": "string",
            "description": "Only collect jobs in this professional category (Berufsgruppe). Leave on 'Any category' to include every field."
          },
          "employmentType": {
            "title": "Contract Type",
            "uniqueItems": true,
            "type": "array",
            "description": "Only collect jobs with these contract types. Leave empty to include every contract type. Selecting 'Apprenticeship' switches the search to apprenticeship openings (Lehrstellen) and cannot be combined with the other contract types.",
            "items": {
              "type": "string",
              "enum": [
                "permanent",
                "temporary",
                "internship",
                "freelance",
                "part-time",
                "apprenticeship"
              ],
              "enumTitles": [
                "Permanent position",
                "Temporary / fixed-term",
                "Internship / trainee",
                "Freelance",
                "Part-time",
                "Apprenticeship (Lehrstelle)"
              ]
            }
          },
          "workloadMin": {
            "title": "Minimum Workload (%)",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Only collect jobs offering at least this workload percentage (Pensum). For example, 80 keeps roles of 80% and up. Leave empty for no minimum."
          },
          "workloadMax": {
            "title": "Maximum Workload (%)",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Only collect jobs offering at most this workload percentage (Pensum). For example, 60 keeps part-time roles up to 60%. Leave empty for no maximum."
          },
          "publishedSince": {
            "title": "Published Within",
            "enum": [
              "any",
              "0",
              "3",
              "7",
              "30"
            ],
            "type": "string",
            "description": "Only collect jobs published within this time window. Helps you focus on fresh openings."
          },
          "language": {
            "title": "Site Language",
            "enum": [
              "en",
              "de",
              "fr"
            ],
            "type": "string",
            "description": "Language for job titles and descriptions where JobScout24.ch provides translations. Most postings stay in the language the employer wrote them."
          },
          "maxResults": {
            "title": "Max Results per Search",
            "minimum": 0,
            "maximum": 5000,
            "type": "integer",
            "description": "Maximum number of jobs to collect per search keyword. Use 50 for a quick scan or a higher number for deep research. Set to 0 (or leave empty) to collect every matching job with no limit, which can return a very large number of results for broad keywords. The last page is always kept in full, so the final count can slightly overshoot this number.",
            "default": 100
          },
          "includeJobDetails": {
            "title": "Fetch Full Job Details",
            "type": "boolean",
            "description": "Fetch the full description and additional detail-page fields for each job. Leave on for the richest data. Turn off for a faster, lighter scan that returns only the summary fields shown in search results.",
            "default": 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}