{
  "openapi": "3.0.1",
  "info": {
    "title": "Workday Jobs Scraper - Career Sites, New & Closed Jobs",
    "description": "Scrape all open jobs from any Workday career site (myworkdayjobs.com), including sites with more than 2,000 jobs. Filter by title, location, remote and posted date, track new and closed jobs between runs, and get a hiring summary per company. $1.50 per 1,000 jobs.",
    "version": "0.1",
    "x-build-id": "1pwHY1Skt1P38BOD3"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/hirewatch~workday-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-hirewatch-workday-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/hirewatch~workday-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-hirewatch-workday-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/hirewatch~workday-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-hirewatch-workday-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": {
          "targets": {
            "title": "Workday career-site URLs",
            "type": "array",
            "description": "REQUIRED. Workday career-site URLs, one per item, e.g. 'https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite' (any *.myworkdayjobs.com or *.myworkdaysite.com/recruiting/... link, including links to a single job, works). A company's own careers page that links to its Workday site also works. Company names alone cannot be resolved for Workday. Optional display name: 'Name | URL'.",
            "default": [
              "NVIDIA | https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite"
            ],
            "items": {
              "type": "string"
            }
          },
          "maxJobsPerCompany": {
            "title": "Max jobs per company",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after this many jobs per company (default 1000). 0 = no limit (fetch the whole board). New/closed tracking is only fully accurate when the whole board is fetched.",
            "default": 1000
          },
          "maxItems": {
            "title": "Max job records in total",
            "minimum": 0,
            "type": "integer",
            "description": "Overall cap on job records this run outputs across all companies (and therefore on cost). 0 = no overall cap. AI agents: set e.g. 50-200 for quick answers.",
            "default": 0
          },
          "includeDescriptions": {
            "title": "Include full job descriptions",
            "type": "boolean",
            "description": "Adds descriptionText and descriptionHtml (e-mails and phone numbers removed). Workday needs one extra polite request per job for the description (about 1 job per second per site), so runs are much slower. It also fills in remote type, time type and exact start date.",
            "default": false
          },
          "titleKeywords": {
            "title": "Title keywords (any)",
            "type": "array",
            "description": "Only output jobs whose title contains at least one of these words or phrases (case-insensitive), e.g. [\"engineer\", \"data\"]. Tracking still covers all jobs.",
            "items": {
              "type": "string"
            }
          },
          "locationKeywords": {
            "title": "Location keywords (any)",
            "type": "array",
            "description": "Only output jobs whose location or country contains at least one of these, e.g. [\"Remote\", \"London\", \"United States\"].",
            "items": {
              "type": "string"
            }
          },
          "remoteOnly": {
            "title": "Remote jobs only",
            "type": "boolean",
            "description": "Only output jobs marked remote. Workday marks remote type only when 'Include full job descriptions' is on; otherwise only jobs whose location says 'Remote' are kept.",
            "default": false
          },
          "postedWithinDays": {
            "title": "Posted within the last N days",
            "minimum": 0,
            "type": "integer",
            "description": "Only output jobs posted in the last N days (e.g. 7). 0 = any date. Jobs without a posted date are excluded when this is set. Workday only shows approximate dates ('Posted 3 Days Ago', '30+ Days Ago').",
            "default": 0
          },
          "trackChanges": {
            "title": "Track new and closed jobs between runs",
            "type": "boolean",
            "description": "Remembers each company's jobs in a named key-value store, so every run labels jobs as new / unchanged / closed. Schedule the Actor (e.g. daily) to get a hiring-change feed.",
            "default": true
          },
          "outputMode": {
            "title": "Output",
            "enum": [
              "allJobs",
              "changesOnly"
            ],
            "type": "string",
            "description": "'allJobs' outputs every open job (plus jobs closed since the last run, labelled). 'changesOnly' outputs just new and closed jobs since the previous run, which is cheaper for daily monitoring.",
            "default": "allJobs"
          },
          "includeBaselineOnFirstRun": {
            "title": "Only changes: output all jobs on the first run",
            "type": "boolean",
            "description": "In 'changesOnly' mode the first run just records a baseline and outputs nothing. Turn this on to also get the full list on the first run.",
            "default": false
          },
          "includeCompanySummary": {
            "title": "Add a hiring-signal summary per company",
            "type": "boolean",
            "description": "One extra record per company (charged as one 'company-summary' event): total open jobs, new/closed since last run, trend, jobs posted in the last 7/30 days, top departments and locations, remote mix.",
            "default": true
          },
          "includeJobs": {
            "title": "Output job records",
            "type": "boolean",
            "description": "Turn off to get only company summaries (cheapest way to monitor hiring at many companies).",
            "default": true
          },
          "trackerId": {
            "title": "Tracker ID",
            "type": "string",
            "description": "Separate change histories for different tasks/schedules that watch the same companies.",
            "default": "default"
          },
          "stateStoreName": {
            "title": "State store name",
            "type": "string",
            "description": "Named key-value store that keeps the previous run's jobs.",
            "default": "workday-jobs-scraper-state"
          },
          "requestDelaySecs": {
            "title": "Delay between requests to the same site (seconds)",
            "minimum": 0.5,
            "maximum": 30,
            "type": "number",
            "description": "Polite rate limit per host (minimum 0.5 s). A site's robots.txt Crawl-delay is used when larger.",
            "default": 1
          },
          "maxConcurrency": {
            "title": "Companies processed in parallel",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "How many companies are fetched at the same time. Requests to any single site are still spaced by the delay above.",
            "default": 4
          },
          "maxRetries": {
            "title": "Retries per request",
            "minimum": 0,
            "maximum": 8,
            "type": "integer",
            "description": "Retries on timeouts, 429 and 5xx responses, with exponential back-off and Retry-After support.",
            "default": 3
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}