{
  "openapi": "3.0.1",
  "info": {
    "title": "Workday Jobs Scraper",
    "description": "Scrape all jobs from any Workday career site (myworkdayjobs.com): full descriptions, locations, posting dates, requisition IDs and apply links. Gets past Workday's 2,000-result cap, filters by location/category, and monitors only new jobs. No login or proxy.",
    "version": "0.0",
    "x-build-id": "EL0y8PoDRLx19XugU"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/rjmacarthy~workday-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-rjmacarthy-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/rjmacarthy~workday-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-rjmacarthy-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/rjmacarthy~workday-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-rjmacarthy-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",
        "required": [
          "startUrls"
        ],
        "properties": {
          "startUrls": {
            "title": "Workday career site URLs",
            "type": "array",
            "description": "Career-site URLs such as https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite. Locale prefixes (/en-US/), search URLs (with ?q= or filter parameters), single job URLs and myworkdaysite.com/recruiting/... links all work. Custom career domains that redirect to Workday are resolved on a best-effort basis. Optional: add userData {\"company\": \"NVIDIA\"} to set the company name in the output.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "searchText": {
            "title": "Search keywords",
            "type": "string",
            "description": "Keywords, exactly like the search box on the career site (e.g. \"data engineer\"). Overrides any ?q= in the URL. Leave empty for all jobs."
          },
          "maxJobsPerSite": {
            "title": "Max jobs per site",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after this many jobs from each site (newest first). 0 = no limit (all jobs, including sites with more than 2,000 openings).",
            "default": 0
          },
          "includeDescription": {
            "title": "Include full job details",
            "type": "boolean",
            "description": "Fetch each job's detail page for the full description (HTML and plain text), exact posting date, time type, requisition ID, country and all locations. Turn off for a faster listing-only scrape (title, URL, location text, relative posting date).",
            "default": true
          },
          "postedWithinDays": {
            "title": "Posted within (days)",
            "minimum": 0,
            "maximum": 3650,
            "type": "integer",
            "description": "Only jobs posted in the last N days (e.g. 1 = today and yesterday, 7 = last week). Uses Workday's \"Posted N Days Ago\" text and, for older \"30+ Days Ago\" postings, the exact start date from the job detail. Leave empty for no date filter."
          },
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "Location filter using the site's own location filters. Use plain names as shown on the career site (e.g. \"United States\", \"Germany\", \"Santa Clara\", \"Remote\") or Workday facet IDs. Exact names are preferred; partial names match all locations containing the text. Multiple values are OR-ed.",
            "items": {
              "type": "string"
            }
          },
          "jobCategories": {
            "title": "Job categories",
            "type": "array",
            "description": "Job category / job family filter (e.g. \"Engineering\", \"Sales\", \"Finance\"), as shown on the career site, or Workday facet IDs. Multiple values are OR-ed.",
            "items": {
              "type": "string"
            }
          },
          "facetFilters": {
            "title": "Other Workday filters (advanced)",
            "type": "object",
            "description": "Any other filter the site offers, as { \"filter name or parameter\": [\"value names or IDs\"] }. Keys can be the label shown on the site (e.g. \"Time Type\", \"Remote Type\", \"Job Type\") or the Workday parameter (e.g. \"timeType\", \"workerSubType\"). Example: {\"Time Type\": [\"Full time\"], \"Remote Type\": [\"Remote\", \"Hybrid\"]}."
          },
          "onlyNewJobs": {
            "title": "Only new jobs (incremental mode)",
            "type": "boolean",
            "description": "Remember which jobs were already output and only output (and charge for) jobs that are new since the previous run. The first run outputs all matching jobs and saves them as the baseline. Ideal for scheduled monitoring.",
            "default": false
          },
          "stateKey": {
            "title": "Monitor name (state key)",
            "type": "string",
            "description": "Name of this monitor's memory. Runs with the same name share the list of already-seen jobs (per site). Use different names for independent monitors (e.g. \"eng-roles\" vs \"sales-roles\").",
            "default": "default"
          },
          "stateStoreName": {
            "title": "State key-value store name",
            "type": "string",
            "description": "Named key-value store in your account where incremental state is kept (letters, digits and dashes).",
            "default": "workday-jobs-scraper-state"
          },
          "splitLargeSearches": {
            "title": "Get more than 2,000 jobs per site (auto-split)",
            "type": "boolean",
            "description": "Workday caps every search at 2,000 results. When a site has more, the scraper automatically splits the search by the site's own filters (job category, country, city...) and merges the results, so you get every job.",
            "default": true
          },
          "maxConcurrency": {
            "title": "Max parallel requests",
            "minimum": 1,
            "maximum": 30,
            "type": "integer",
            "description": "Maximum parallel HTTP requests. The default is fast and polite; lower it if a site starts rate-limiting.",
            "default": 10
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Not needed for Workday's public API. Enable only if a specific site blocks requests from your region.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}