{
  "openapi": "3.0.1",
  "info": {
    "title": "Job Scraper - Workday, iCIMS, Greenhouse & Ashby Jobs API",
    "description": "Reads job postings live from company career sites on Workday, iCIMS, Cornerstone, Dayforce, Greenhouse, Ashby, Lever, Comeet and 11 more ATS, plus 14 job feeds and any RSS URL. Geocoded location, salary, skills, and an incremental mode that returns only what changed.",
    "version": "0.1",
    "x-build-id": "9EFODRlkLxq5yBv9D"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/parseforge~career-site-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-parseforge-career-site-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/parseforge~career-site-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-parseforge-career-site-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/parseforge~career-site-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-parseforge-career-site-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": {
          "searchTerms": {
            "title": "Search terms",
            "uniqueItems": true,
            "type": "array",
            "description": "Job titles or keywords. They query the cross-company index of 168,000+ live postings, and they also filter the career sites you name below, keeping only jobs whose title or description matches one of them. Leave empty to get every open role from the career sites you list.",
            "items": {
              "type": "string"
            }
          },
          "careerSiteUrls": {
            "title": "Career site URLs",
            "uniqueItems": true,
            "type": "array",
            "description": "Company career pages to read directly, one per line. Paste any Greenhouse, Lever, Ashby, Workday, iCIMS, Cornerstone (CSOD), Dayforce, UKG Pro, Comeet, Pinpoint, JOIN, Oracle Cloud, Eightfold, SmartRecruiters, Recruitee, Workable, Rippling, Teamtailor, Breezy, Personio or BambooHR URL (a board or a single posting) and the platform is detected for you, or use an explicit handle such as greenhouse:stripe, icims:careers-rambus, comeet:team8|61.003 or dayforce:cathaybank. UKG Pro (UltiPro) takes a posting URL rather than a board URL: their robots.txt disallows the route that lists a board.",
            "items": {
              "type": "string"
            }
          },
          "scanKnownCompanies": {
            "title": "Also scan the built-in company directory",
            "type": "boolean",
            "description": "Read every board in the bundled directory of verified company career sites as well, so you get cross-company results without naming any company. Combine with search terms and filters to keep it focused; a bare run over the whole directory returns a lot of rows.",
            "default": false
          },
          "jobBoards": {
            "title": "Job boards",
            "uniqueItems": true,
            "type": "array",
            "description": "Also pull from these cross-company job boards. Each one is a public feed of openings from thousands of employers, so this is the fastest way to get breadth without naming companies. Scanning a board costs nothing on its own; you pay only for the jobs you keep.",
            "items": {
              "type": "string",
              "enum": [
                "remoteok",
                "remotive",
                "arbeitnow",
                "jobicy",
                "himalayas",
                "themuse",
                "workingnomads",
                "fourdayweek",
                "landingjobs",
                "weworkremotely",
                "jobspresso",
                "cryptocurrencyjobs",
                "euremotejobs",
                "successfactors"
              ],
              "enumTitles": [
                "RemoteOK",
                "Remotive",
                "Arbeitnow",
                "Jobicy",
                "Himalayas",
                "The Muse",
                "Working Nomads",
                "4 Day Week",
                "Landing.jobs",
                "We Work Remotely",
                "Jobspresso",
                "Cryptocurrency Jobs",
                "EU Remote Jobs",
                "SAP SuccessFactors (SAP jobs)"
              ]
            }
          },
          "jobFeedUrls": {
            "title": "Custom job feed URLs",
            "uniqueItems": true,
            "type": "array",
            "description": "Any other job board's RSS feed, one per line. Most niche boards run WP Job Manager, whose feed is at /?feed=job_feed and carries the company, location and job type as structured fields, so a board nobody has mapped still comes back complete.",
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "Max Items",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Free users: limited to 10 items (preview). Paid users: up to 1,000,000."
          },
          "onlyNewJobs": {
            "title": "Only jobs not seen in a previous run",
            "type": "boolean",
            "description": "Skip jobs already delivered by an earlier run with the same key. Ideal for a scheduled feed: you get today's new postings, not the whole board again.",
            "default": false
          },
          "includeExpiredJobs": {
            "title": "Also report jobs that disappeared",
            "type": "boolean",
            "description": "Add one row per job that was in the previous run and is gone from this one, marked status=expired, so you can close them on your side. Only meaningful when this run covers the same sources as the last.",
            "default": false
          },
          "incrementalKey": {
            "title": "Incremental state key",
            "type": "string",
            "description": "Name for the remembered state, so you can keep several independent feeds side by side. Anything short and stable, for example eu-engineering.",
            "default": "default"
          },
          "locations": {
            "title": "Locations",
            "uniqueItems": true,
            "type": "array",
            "description": "Keep only jobs whose location, city, region or country matches one of these. In search mode this also narrows the query at the source. Use the place name as the site writes it, for example Berlin, Germany, or New York.",
            "items": {
              "type": "string"
            }
          },
          "locationExcludes": {
            "title": "Exclude locations",
            "uniqueItems": true,
            "type": "array",
            "description": "Drop jobs whose location matches any of these.",
            "items": {
              "type": "string"
            }
          },
          "titleIncludes": {
            "title": "Title must contain",
            "uniqueItems": true,
            "type": "array",
            "description": "Keep only jobs whose title contains one of these words. Case insensitive.",
            "items": {
              "type": "string"
            }
          },
          "titleExcludes": {
            "title": "Title must not contain",
            "uniqueItems": true,
            "type": "array",
            "description": "Drop jobs whose title contains one of these words, for example intern or senior.",
            "items": {
              "type": "string"
            }
          },
          "companyIncludes": {
            "title": "Company must contain",
            "uniqueItems": true,
            "type": "array",
            "description": "Keep only jobs from companies whose name contains one of these words.",
            "items": {
              "type": "string"
            }
          },
          "companyExcludes": {
            "title": "Company must not contain",
            "uniqueItems": true,
            "type": "array",
            "description": "Drop jobs from companies whose name contains one of these words. Useful for filtering out staffing agencies.",
            "items": {
              "type": "string"
            }
          },
          "descriptionIncludes": {
            "title": "Description must contain",
            "uniqueItems": true,
            "type": "array",
            "description": "Keep only jobs whose title or description contains one of these words, for example Kubernetes or visa sponsorship.",
            "items": {
              "type": "string"
            }
          },
          "descriptionExcludes": {
            "title": "Description must not contain",
            "uniqueItems": true,
            "type": "array",
            "description": "Drop jobs whose title or description contains one of these words.",
            "items": {
              "type": "string"
            }
          },
          "departmentIncludes": {
            "title": "Department must contain",
            "uniqueItems": true,
            "type": "array",
            "description": "Keep only jobs whose department or team contains one of these words, for example Engineering or Sales.",
            "items": {
              "type": "string"
            }
          },
          "workArrangement": {
            "title": "Work arrangement",
            "uniqueItems": true,
            "type": "array",
            "description": "Keep only jobs with one of these arrangements. Pick exactly one and the search query is narrowed at the source as well.",
            "items": {
              "type": "string",
              "enum": [
                "Remote",
                "Hybrid",
                "On-site"
              ],
              "enumTitles": [
                "Remote",
                "Hybrid",
                "On-site"
              ]
            }
          },
          "employmentTypes": {
            "title": "Employment type",
            "uniqueItems": true,
            "type": "array",
            "description": "Keep only jobs of these employment types. Pick exactly one and the search query is narrowed at the source as well.",
            "items": {
              "type": "string",
              "enum": [
                "Full-time",
                "Part-time",
                "Contract",
                "Temporary",
                "Internship",
                "Volunteer",
                "Other"
              ],
              "enumTitles": [
                "Full-time",
                "Part-time",
                "Contract",
                "Temporary",
                "Internship",
                "Volunteer",
                "Other"
              ]
            }
          },
          "languages": {
            "title": "Posting language",
            "uniqueItems": true,
            "type": "array",
            "description": "Keep only jobs whose posting language matches one of these two letter codes, for example en, de, fr. Only Greenhouse, SmartRecruiters and the search index publish this field.",
            "items": {
              "type": "string"
            }
          },
          "postedWithinDays": {
            "title": "Posted within (days)",
            "minimum": 1,
            "maximum": 3650,
            "type": "integer",
            "description": "Keep only jobs published in the last N days. In search mode this also narrows the query at the source, which is much faster than filtering afterwards."
          },
          "hasSalaryOnly": {
            "title": "Only jobs with a salary",
            "type": "boolean",
            "description": "Keep only jobs where a pay figure was found, either published by the ATS or read out of the description.",
            "default": false
          },
          "minSalary": {
            "title": "Minimum salary (per year)",
            "type": "number",
            "description": "Keep only jobs paying at least this much per year. Hourly, daily, weekly and monthly figures are converted before the comparison. Leave empty to ignore pay."
          },
          "includeDescription": {
            "title": "Include the full job description",
            "type": "boolean",
            "description": "Add the complete job description as plain text and as HTML.",
            "default": false
          },
          "includeCompensation": {
            "title": "Include structured compensation",
            "type": "boolean",
            "description": "Add salary minimum, maximum, currency and interval, plus equity and bonus flags. Read from the ATS when it publishes pay, otherwise parsed out of the description, and always stamped with which of the two it was.",
            "default": false
          },
          "includeSkills": {
            "title": "Include skills and requirements",
            "type": "boolean",
            "description": "Add the skills named in the posting, the minimum years of experience, the experience band, the degree required, visa sponsorship and security clearance.",
            "default": false
          },
          "includeCompanyProfile": {
            "title": "Include the company profile",
            "type": "boolean",
            "description": "Add the employer logo, the company blurb and the company domain, where the source publishes them.",
            "default": false
          },
          "includeScreeningQuestions": {
            "title": "Include screening questions",
            "type": "boolean",
            "description": "Add the application's screening questions with their type and whether they are required. Recruitee career sites only.",
            "default": false
          },
          "includeRawSource": {
            "title": "Include the raw source record",
            "type": "boolean",
            "description": "Add the untouched JSON record exactly as the ATS returned it, for auditing or for fields this actor does not map.",
            "default": 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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}