{
  "openapi": "3.0.1",
  "info": {
    "title": "ZipRecruiter Jobs Scraper",
    "description": "Scrape ZipRecruiter job listings by keyword and location or from URLs: titles, companies, salaries, benefits, workplace type, full descriptions, posting dates and employer apply links.",
    "version": "1.0",
    "x-build-id": "C1xaYtXDgbREkJ9Yv"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/parsebird~ziprecruiter-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-parsebird-ziprecruiter-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/parsebird~ziprecruiter-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-parsebird-ziprecruiter-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/parsebird~ziprecruiter-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-parsebird-ziprecruiter-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 keywords",
            "type": "array",
            "description": "Enter job titles, skills or company names, one per line. Each keyword runs as its own ZipRecruiter search.",
            "items": {
              "type": "string"
            }
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "Enter a city and state (<code>New York, NY</code>), a ZIP code, a state, or <code>United States</code>. Enter <code>Remote</code> to find remote jobs nationwide. Defaults to the whole United States."
          },
          "startUrls": {
            "title": "ZipRecruiter URLs",
            "type": "array",
            "description": "Paste ZipRecruiter search URLs (<code>https://www.ziprecruiter.com/jobs-search?search=nurse&location=Chicago%2C+IL</code>), category pages (<code>https://www.ziprecruiter.com/Jobs/Nurse/-in-Chicago,IL</code>) or job URLs (containing <code>?jid=</code>). Filters in a search URL are kept as pasted.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "jobType": {
            "title": "Job type",
            "enum": [
              "",
              "full_time",
              "part_time",
              "contract",
              "contract_to_hire",
              "temporary",
              "as_needed",
              "other"
            ],
            "type": "string",
            "description": "Show only one employment type. Applies to keyword searches.",
            "default": ""
          },
          "postedWithin": {
            "title": "Date posted",
            "enum": [
              "anytime",
              "today",
              "3days",
              "week",
              "2weeks",
              "month"
            ],
            "type": "string",
            "description": "Show only jobs posted within this period.",
            "default": "anytime"
          },
          "remoteType": {
            "title": "Remote / on-site",
            "enum": [
              "",
              "only_remote",
              "hybrid",
              "no_remote"
            ],
            "type": "string",
            "description": "Show only remote, hybrid or on-site jobs.",
            "default": ""
          },
          "experienceLevel": {
            "title": "Experience level",
            "enum": [
              "",
              "no_experience",
              "junior",
              "mid",
              "senior"
            ],
            "type": "string",
            "description": "Show only jobs for one seniority level.",
            "default": ""
          },
          "salaryRange": {
            "title": "Minimum salary (per year)",
            "type": "string",
            "description": "Enter a minimum annual salary in US dollars, such as <code>50000</code> for $50K+.",
            "default": ""
          },
          "salaryMax": {
            "title": "Maximum salary (per year)",
            "type": "string",
            "description": "Enter a maximum annual salary in US dollars, such as <code>120000</code>. Leave empty for no upper limit.",
            "default": ""
          },
          "radius": {
            "title": "Distance",
            "enum": [
              "5",
              "10",
              "25",
              "50",
              "100"
            ],
            "type": "string",
            "description": "Search radius around the location. Ignored for state- and country-level locations.",
            "default": "25"
          },
          "easyApplyOnly": {
            "title": "1-Click Apply jobs only",
            "type": "boolean",
            "description": "Show only jobs you can apply to directly on ZipRecruiter.",
            "default": false
          },
          "maxItems": {
            "title": "Max jobs",
            "minimum": 1,
            "type": "integer",
            "description": "Stop after saving this many jobs in total, across all searches and URLs.",
            "default": 20
          },
          "maxPages": {
            "title": "Max pages per search",
            "minimum": 1,
            "maximum": 30,
            "type": "integer",
            "description": "Read at most this many result pages per search (20 jobs per page). ZipRecruiter shows up to about 25 pages (~500 jobs) per search; split large searches by location or filters to get more.",
            "default": 25
          },
          "includeDetails": {
            "title": "Add full job details",
            "type": "boolean",
            "description": "Open each job page to add the full description, industry, category, expiry date, company profile and rating, and the employer's own apply link. Each job with details is charged an extra details event (see Pricing in the README). Off = faster, cheaper runs with search-card data: title, company, salary, benefits, location, workplace type, job type, short description and posting date. Job URLs pasted in 'ZipRecruiter URLs' always include details.",
            "default": false
          },
          "concurrency": {
            "title": "Concurrency",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Number of job pages to load in parallel when job details are on.",
            "default": 10
          },
          "requestTimeout": {
            "title": "Request timeout (seconds)",
            "minimum": 10,
            "maximum": 120,
            "type": "integer",
            "description": "Give up on a single request after this many seconds and retry.",
            "default": 30
          },
          "debugMode": {
            "title": "Debug logging",
            "type": "boolean",
            "description": "Log the filters sent to ZipRecruiter.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Leave empty. ZipRecruiter refuses Apify's own and proxy IPs, so the scraper connects through Apify's unblocking proxy automatically (included in the price). Set a proxy here only to force your own.",
            "default": {
              "useApifyProxy": false
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}