{
  "openapi": "3.0.1",
  "info": {
    "title": "Workday Jobs Scraper — Company Career Sites",
    "description": "Scrape Workday jobs from any company's Workday career site (myworkdayjobs.com): job postings with title, locations, posted date, requisition id, job URL and full description. Filter by keyword, location, remote and posting age; monitor new jobs on a schedule. No login, no browser.",
    "version": "0.1",
    "x-build-id": "cY6f5U5wb3mNZuR69"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/tortuga~workday-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-tortuga-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/tortuga~workday-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-tortuga-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/tortuga~workday-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-tortuga-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": {
          "startUrls": {
            "title": "Workday career site URLs",
            "type": "array",
            "description": "Workday career sites to scrape: https://<tenant>.wd<N>.myworkdayjobs.com/<site> (e.g. https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite), a search URL with filters you set on the site (they are applied as Workday facets; ?q= becomes the search text), a single job URL (its whole site is scraped), a https://wd<N>.myworkdaysite.com/recruiting/<tenant>/<site> URL, or a company careers page / homepage that links to its Workday site.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "boards": {
            "title": "Career sites as tenant/site",
            "type": "array",
            "description": "Optional: Workday sites you already know, written as tenant/site, e.g. nvidia/NVIDIAExternalCareerSite or salesforce/External_Career_Site (the tenant is the first part of the myworkdayjobs.com host name, the site is the first path segment of the career-site URL). The actor finds the wd<N> data centre itself; tenant.wd5/site or the full URL skips that step. Via the API you can also pass objects: {\"tenant\": \"nvidia\", \"site\": \"NVIDIAExternalCareerSite\", \"companyName\": \"NVIDIA\"}.",
            "items": {
              "type": "string"
            }
          },
          "keywords": {
            "title": "Title keywords",
            "type": "array",
            "description": "Keep only jobs whose title contains at least one of these words or phrases (case-insensitive), e.g. engineer, sales, \"product manager\". Up to 5 keywords are also sent to Workday's own search, so only matching pages are read. Leave empty for all jobs.",
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "Keep only jobs whose location text or country contains one of these, e.g. London, Germany, US, Remote. Jobs listed as '3 Locations' have their job page opened to see every location (not charged unless descriptions are on). Leave empty for all locations.",
            "items": {
              "type": "string"
            }
          },
          "departments": {
            "title": "Departments / job categories",
            "type": "array",
            "description": "Keep only jobs in Workday job categories (job families) whose name contains one of these, e.g. Engineering, Sales. Applied through the career site's own category facet, so only matching jobs are read, and the matched category is written to the `department` field. If no category of a site matches, that site returns nothing and the run's SUMMARY lists the categories it offers.",
            "items": {
              "type": "string"
            }
          },
          "remoteOnly": {
            "title": "Remote jobs only",
            "type": "boolean",
            "description": "Keep only jobs whose Workday remote type is Remote (or whose location or title says Remote). The job list does not carry the remote type, so the actor opens each candidate's job page to check (not charged unless descriptions are on).",
            "default": false
          },
          "postedWithinDays": {
            "title": "Posted within (days)",
            "minimum": 1,
            "maximum": 3650,
            "type": "integer",
            "description": "Keep only jobs published in the last N days. The job list only shows 'Posted 3 Days Ago' style dates ('Posted 30+ Days Ago' counts as 31 days), so without descriptions the dates are approximate; with descriptions the exact posting date from the job page is used. Paging stops once a whole page is older than this."
          },
          "includeDescription": {
            "title": "Include full job description",
            "type": "boolean",
            "description": "Open each job's page for the full description (plain text and HTML), every location of multi-location jobs, the exact posting date, time type (Full time / Part time), remote type and the pay range when the text states one. One extra request per job, charged as 'Job details fetched'. Off = list data only (title, first location text, 'Posted N Days Ago', requisition id, URL).",
            "default": true
          },
          "maxItems": {
            "title": "Max jobs (total)",
            "minimum": 1,
            "type": "integer",
            "description": "Stop after this many jobs in total. Keeps cost predictable.",
            "default": 100
          },
          "maxItemsPerCompany": {
            "title": "Max jobs per career site",
            "minimum": 1,
            "type": "integer",
            "description": "Optional cap per career site (newest jobs first). With monitoring on, it is the number of newest jobs watched per site."
          },
          "onlyNewOrChanged": {
            "title": "Only new jobs (monitoring)",
            "type": "boolean",
            "description": "Remember what earlier runs of this input returned and output only jobs that are new since then. Use with a Schedule; jobs seen before are not output and not charged.",
            "default": false
          },
          "monitoringKey": {
            "title": "Monitoring key",
            "type": "string",
            "description": "Name for this watch, so several schedules on the same input stay separate; defaults to a key derived from the input."
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Not needed: Workday career sites answer the same public JSON requests their own pages make, and direct requests are fastest. Turn on Apify Proxy (datacenter) only if a run log shows 403/429 answers. No residential proxy or Unblocker is ever needed.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}