{
  "openapi": "3.0.1",
  "info": {
    "title": "Welcome to the Jungle Jobs Scrape Board-Wide Search + 44 Fields",
    "description": "Pull every matching Welcome to the Jungle job in one run — board-wide keyword search (US + global), or scrape specific companies, or crawl the whole board. Up to 44 fields per job incl. full description, salary, remote, experience. 13 filters at the source. No login. JSON or CSV",
    "version": "0.0",
    "x-build-id": "KRD9FxrE39jWXERIf"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/memo23~welcometothejungle-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-memo23-welcometothejungle-jobs-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/memo23~welcometothejungle-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-memo23-welcometothejungle-jobs-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/memo23~welcometothejungle-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-memo23-welcometothejungle-jobs-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": {
          "searches": {
            "title": "Search terms (board-wide keyword search)",
            "type": "array",
            "description": "Keyword search across the whole Welcome to the Jungle board, e.g. [\"software engineer\", \"product manager\"]. Each term runs a full search; results merge and de-duplicate. Covers US + global jobs. Takes priority over Companies when set.",
            "items": {
              "type": "string"
            }
          },
          "searchMarket": {
            "title": "Search market / language",
            "enum": [
              "en",
              "fr"
            ],
            "type": "string",
            "description": "Language index used in search mode: English or French listings.",
            "default": "en"
          },
          "searchCountry": {
            "title": "Country",
            "type": "string",
            "description": "Office country, ISO-2 code, e.g. US, FR, GB, CA, DE, IE, NL, ES."
          },
          "searchCity": {
            "title": "City",
            "type": "string",
            "description": "Office city, e.g. Paris, New York, London, San Francisco."
          },
          "searchContractType": {
            "title": "Contract type",
            "enum": [
              "",
              "full_time",
              "internship",
              "apprenticeship",
              "temporary",
              "freelance",
              "other"
            ],
            "type": "string",
            "description": "Filter by contract type.",
            "default": ""
          },
          "searchRemote": {
            "title": "Remote policy",
            "enum": [
              "",
              "fulltime",
              "partial",
              "punctual",
              "no"
            ],
            "type": "string",
            "description": "Filter by remote policy.",
            "default": ""
          },
          "searchSalaryMin": {
            "title": "Minimum yearly salary",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only jobs whose yearly salary minimum is at or above this (in the job's own currency)."
          },
          "searchExperienceMax": {
            "title": "Max years of experience required",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only jobs requiring at most this many years of experience."
          },
          "searchSector": {
            "title": "Sector (reference slug)",
            "type": "string",
            "description": "Sector reference slug, e.g. software-1, artificial-intelligence-machine-learning, big-data-1, finance-2, it-digital-1."
          },
          "searchOccupation": {
            "title": "Occupation / job function (reference slug)",
            "type": "string",
            "description": "Job-function reference slug, e.g. software-web-development-iMzA4, data-analytics, sales. Narrower than sector."
          },
          "searchExperienceMin": {
            "title": "Min years of experience required",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only jobs requiring at least this many years of experience. Combine with the max above for a range."
          },
          "searchCompanySizeMin": {
            "title": "Min company size (employees)",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only jobs at companies with at least this many employees."
          },
          "searchCompanySizeMax": {
            "title": "Max company size (employees)",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only jobs at companies with at most this many employees."
          },
          "searchInTitleOnly": {
            "title": "Match keyword in job title only",
            "type": "boolean",
            "description": "When on, the search term must appear in the job TITLE (not the description). Tighter, more precise results.",
            "default": false
          },
          "searchSortBy": {
            "title": "Sort order",
            "enum": [
              "relevance",
              "date"
            ],
            "type": "string",
            "description": "Order results by relevance (default) or by publish date (most recent first).",
            "default": "relevance"
          },
          "searchLatLng": {
            "title": "Geo-radius centre (lat,lng)",
            "type": "string",
            "description": "Centre point for a radius search as \"lat,lng\", e.g. 48.8566,2.3522 (Paris). Requires the radius below."
          },
          "searchRadiusKm": {
            "title": "Geo-radius (km)",
            "minimum": 1,
            "type": "integer",
            "description": "Radius in kilometres around the centre point above. Only jobs within this distance are kept."
          },
          "companies": {
            "title": "Companies (optional — used only when no search terms)",
            "type": "array",
            "description": "Companies to scrape, each as a Welcome to the Jungle slug (e.g. `adlin-science-1`), a company reference (e.g. `9m2XEE`), or a company URL (e.g. `https://www.welcometothejungle.com/en/companies/adlin-science-1`). Leave empty to crawl all companies.",
            "items": {
              "type": "string"
            }
          },
          "keyword": {
            "title": "Keyword",
            "type": "string",
            "description": "Keep only jobs whose title or description contains this text (case-insensitive). Leave empty for all jobs."
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "Keep only jobs whose office city, country or address contains this text (e.g. `Paris`, `France`, `Remote`)."
          },
          "contractType": {
            "title": "Contract type",
            "type": "string",
            "description": "Keep only jobs of this contract type, matched against the English label (e.g. `Full-Time`, `Internship`, `Temporary`, `Apprenticeship`)."
          },
          "postedWithinDays": {
            "title": "Posted within (days)",
            "minimum": 1,
            "type": "integer",
            "description": "Keep only jobs published within this many days. Leave empty for no date limit."
          },
          "maxItems": {
            "title": "Maximum jobs",
            "minimum": 1,
            "type": "integer",
            "description": "Hard cap on job rows per run. Each kept job is one paid result. Default 200. Free-tier users are capped at 100.",
            "default": 200
          },
          "maxConcurrency": {
            "title": "Max parallel company lookups",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "How many companies to fetch jobs for in parallel. 5-8 is the reliable sweet spot.",
            "default": 6
          },
          "maxRequestRetries": {
            "title": "Max retries per request",
            "minimum": 1,
            "type": "integer",
            "description": "Per-request retry budget; each retry rotates onto a fresh residential proxy session.",
            "default": 4
          },
          "proxy": {
            "title": "Proxy configuration (optional override)",
            "type": "object",
            "description": "Leave empty — the actor already routes all traffic through its own built-in residential proxy at no extra cost to you. Only set this if you want to use your own proxies."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}