{
  "openapi": "3.0.1",
  "info": {
    "title": "Welcome to the Jungle Jobs Scraper",
    "description": "Scrape Welcome to the Jungle job listings from keywords, WTTJ search URLs, and job filters. Export titles, companies, locations, salaries, remote policy, contract type, source URLs, and optional job details.",
    "version": "0.1",
    "x-build-id": "v3H7MZm5VbDWg9RFa"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/maximedupre~welcometothejungle-jobs-extractor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-maximedupre-welcometothejungle-jobs-extractor",
        "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/maximedupre~welcometothejungle-jobs-extractor/runs": {
      "post": {
        "operationId": "runs-sync-maximedupre-welcometothejungle-jobs-extractor",
        "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/maximedupre~welcometothejungle-jobs-extractor/run-sync": {
      "post": {
        "operationId": "run-sync-maximedupre-welcometothejungle-jobs-extractor",
        "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": {
          "query": {
            "title": "Search query",
            "type": "string",
            "description": "Role, skill, company, or keyword to search for, such as data, product manager, or backend engineer."
          },
          "locale": {
            "title": "Search market",
            "enum": [
              "en",
              "fr"
            ],
            "type": "string",
            "description": "Market to use for searches built from filters. Pasted URLs keep their own market when possible.",
            "default": "en"
          },
          "sortBy": {
            "title": "Sort jobs by",
            "enum": [
              "relevance",
              "date"
            ],
            "type": "string",
            "description": "Choose whether keyword and filter searches return the source ranking or newest jobs first.",
            "default": "relevance"
          },
          "countryCodes": {
            "title": "Country codes",
            "type": "array",
            "description": "Two-letter country codes such as FR, GB, US, DE, ES, CZ, or SK.",
            "items": {
              "type": "string",
              "minLength": 2,
              "maxLength": 2
            }
          },
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "Cities or regions, such as Paris, London, Berlin, or Remote.",
            "items": {
              "type": "string",
              "minLength": 1
            }
          },
          "remotePolicies": {
            "title": "Remote policies",
            "type": "array",
            "description": "Remote work policies to include.",
            "items": {
              "type": "string",
              "enum": [
                "full",
                "partial",
                "punctual",
                "no"
              ],
              "enumTitles": [
                "Fully remote",
                "Hybrid",
                "Occasional remote",
                "On-site"
              ]
            },
            "default": []
          },
          "contractTypes": {
            "title": "Contract types",
            "type": "array",
            "description": "Employment contract types to include.",
            "items": {
              "type": "string",
              "enum": [
                "full_time",
                "internship",
                "part_time",
                "freelance",
                "apprenticeship",
                "temporary",
                "graduate_program",
                "vie",
                "volunteer",
                "other"
              ],
              "enumTitles": [
                "Full-time",
                "Internship",
                "Part-time",
                "Freelance",
                "Apprenticeship",
                "Temporary",
                "Graduate program",
                "VIE",
                "Volunteer",
                "Other"
              ]
            },
            "default": []
          },
          "categories": {
            "title": "Job categories",
            "type": "array",
            "description": "Profession or category terms, such as tech, data, sales, marketing, product, design, finance, or HR.",
            "items": {
              "type": "string",
              "minLength": 1
            }
          },
          "experienceMin": {
            "title": "Minimum experience",
            "minimum": 0,
            "type": "integer",
            "description": "Include jobs asking for at least this many years of experience."
          },
          "experienceMax": {
            "title": "Maximum experience",
            "minimum": 0,
            "type": "integer",
            "description": "Include jobs asking for at most this many years of experience."
          },
          "salaryMin": {
            "title": "Minimum yearly salary",
            "minimum": 0,
            "type": "integer",
            "description": "Include jobs with a disclosed yearly salary at or above this amount."
          },
          "postedWithin": {
            "title": "Posted within",
            "enum": [
              "any",
              "today",
              "3days",
              "week",
              "month"
            ],
            "type": "string",
            "description": "Posting age to include.",
            "default": "any"
          },
          "searchUrls": {
            "title": "WTTJ URLs",
            "type": "array",
            "description": "Paste Welcome to the Jungle jobs search URLs or direct job URLs you already have.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "title": "URL",
                  "type": "string",
                  "description": "A Welcome to the Jungle jobs search URL or direct job URL.",
                  "pattern": "^https?://(www\\.)?welcometothejungle\\.com/"
                }
              }
            }
          },
          "maxItems": {
            "title": "Job limit",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Maximum job rows to save across the whole run. Use a small limit for your first run.",
            "default": 50
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}