{
  "openapi": "3.0.1",
  "info": {
    "title": "Workday Jobs Scraper & API - Whole Career Site",
    "description": "Read every open role on any Workday career site, including the boards past Workday's 2,000 result limit where other scrapers quietly repeat page one. Each row carries the title, requisition ID, location, remote type, posting date and a working apply link. JSON, CSV, Excel or API.",
    "version": "1.0",
    "x-build-id": "M8fJtPjWhEH0DvT3Q"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/automation_craft~workday-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-automation_craft-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/automation_craft~workday-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-automation_craft-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/automation_craft~workday-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-automation_craft-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": {
          "careerSiteUrls": {
            "title": "Workday career site URLs",
            "type": "array",
            "description": "One or more Workday career sites. Paste the address from the company careers page, for example https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite. The localized form with /en-US/, links to a single job, wd1.myworkdaysite.com/recruiting/... links and a bare tenant name such as nvidia all work. Every site is scraped in the same run.",
            "items": {
              "type": "string"
            }
          },
          "searchText": {
            "title": "Search text",
            "type": "string",
            "description": "Keyword sent to Workday's own search box, for example \"software engineer\". Leave empty to read the whole board. Workday matches this against the job title and the posting text."
          },
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "Keep only jobs whose location contains one of these words, for example \"Santa Clara\" or \"United Kingdom\". Matching is case insensitive and partial. A posting that Workday shows as \"3 Locations\" hides its places until the description is fetched, so it is kept rather than dropped. Leave empty for every location.",
            "items": {
              "type": "string"
            }
          },
          "remoteOnly": {
            "title": "Remote jobs only",
            "type": "boolean",
            "description": "Keep only jobs that Workday marks as remote or that say remote in the location. Whether the remote field is filled in at all is up to the employer, so this filter reads the location text too, and it ignores labels such as \"Not Remote\".",
            "default": false
          },
          "includeKeywords": {
            "title": "Title or location must contain",
            "type": "array",
            "description": "Keep a job only when one of these words appears in its title, location or requisition id. Leave empty to keep everything.",
            "items": {
              "type": "string"
            }
          },
          "excludeKeywords": {
            "title": "Title or location must not contain",
            "type": "array",
            "description": "Drop a job when one of these words appears in its title, location or requisition id, for example \"intern\" or \"contract\".",
            "items": {
              "type": "string"
            }
          },
          "postedWithinDays": {
            "title": "Posted within the last N days",
            "minimum": 1,
            "maximum": 3650,
            "type": "integer",
            "description": "Keep only jobs posted in the last N days. Workday buckets everything older than 30 days as \"Posted 30+ Days Ago\", so values above 30 keep those rows as well. Leave empty for every posting date."
          },
          "facets": {
            "title": "Workday facet filters",
            "type": "object",
            "description": "Advanced. Facet ids passed straight to Workday, for example {\"jobFamilyGroup\": [\"0c40f6bd1d8f10ae43ffaefd46dc7e78\"]}. Every run summary lists the facets a career site exposes, so you can copy the ids from there."
          },
          "includeDescription": {
            "title": "Fetch the full job description",
            "type": "boolean",
            "description": "Fetch the full posting for every new job and add descriptionHtml, descriptionText, the exact posting date, the country and the apply link Workday itself publishes. One extra request per job, charged as a Job description event, so it is off unless you turn it on. Jobs a memory already knows are re-sent free and without a fresh description fetch.",
            "default": false
          },
          "maxJobsPerSite": {
            "title": "Maximum jobs per career site",
            "minimum": 1,
            "maximum": 20000,
            "type": "integer",
            "description": "Upper bound on the jobs delivered from one career site. Use it to keep a run over many companies balanced and predictable.",
            "default": 200
          },
          "maxTotal": {
            "title": "Maximum jobs in the run",
            "minimum": 1,
            "maximum": 50000,
            "type": "integer",
            "description": "Upper bound on the whole run. The budget is shared fairly across the career sites you listed, and any unused share is handed to the sites that still have jobs.",
            "default": 1000
          },
          "completeLargeSites": {
            "title": "Go past Workday's 2,000 result cap",
            "type": "boolean",
            "description": "Workday stops paginating at 2,000 results per query and then silently serves page one again. With this on, a larger board is split by job category, country and job type until every slice fits, so you get the whole board instead of the first 2,000 jobs. It costs a few extra requests and only runs when a board is actually bigger than the cap.",
            "default": true
          },
          "memoryName": {
            "title": "Dedup memory name",
            "type": "string",
            "description": "Give this run a memory name, for example \"weekly-nvidia\", and every job it delivers is remembered. Later runs with the same name deliver and charge only jobs that are new, which is what makes a daily or weekly monitor cheap. Leave empty to deduplicate inside this run only."
          },
          "reemitKnownJobs": {
            "title": "Re-send jobs this memory already knows",
            "type": "boolean",
            "description": "Deliver the already-known jobs again, flagged with changeType DUPLICATE or UPDATED, free of charge. Useful when you want a full snapshot every run and still pay only for new roles. Free rows do not carry a freshly fetched description.",
            "default": false
          },
          "resetMemory": {
            "title": "Reset this memory before the run",
            "type": "boolean",
            "description": "Forget everything stored under the memory name and start again. Every job then counts as new and is charged again, so use it only when you want a fresh baseline.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Optional. Workday's public career API answers our datacenter requests directly, so a proxy is not needed and is left off. Turn it on only if your own network blocks Workday.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}