{
  "openapi": "3.0.1",
  "info": {
    "title": "Dice Jobs Scraper",
    "description": "Scrape US tech jobs from Dice (dice.com): full descriptions, skills, parsed salaries, remote/hybrid flags, Easy Apply and visa-sponsorship filters, and an incremental \"only new jobs\" mode. No login, no browser.",
    "version": "0.1",
    "x-build-id": "GWvSvxVT33iy4h8TY"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/rjmacarthy~dice-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-rjmacarthy-dice-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~dice-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-rjmacarthy-dice-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~dice-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-rjmacarthy-dice-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": {
          "keywords": {
            "title": "Keywords",
            "type": "string",
            "description": "What you would type in Dice's search box, e.g. \"python developer\", \"Java AND Spring\" or a company name. Leave empty for all jobs."
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "City, state or ZIP code in the US, e.g. \"Austin, TX\", \"New York\" or \"94105\". Leave empty for the whole US."
          },
          "radius": {
            "title": "Radius (miles)",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Search radius around the location. Only used when a location is set. Dice's own options are 10, 30, 50 and 75 miles.",
            "default": 30
          },
          "workplaceTypes": {
            "title": "Remote / hybrid / on-site",
            "type": "array",
            "description": "Only jobs with these work settings. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "remote",
                "hybrid",
                "onsite"
              ],
              "enumTitles": [
                "Remote",
                "Hybrid",
                "On-site"
              ]
            }
          },
          "employmentTypes": {
            "title": "Employment type",
            "type": "array",
            "description": "Only jobs with these employment types. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "fullTime",
                "contract",
                "partTime",
                "thirdParty",
                "internship"
              ],
              "enumTitles": [
                "Full-time",
                "Contract",
                "Part-time",
                "Third party",
                "Internship"
              ]
            }
          },
          "postedWithin": {
            "title": "Posted date",
            "enum": [
              "any",
              "today",
              "3days",
              "7days"
            ],
            "type": "string",
            "description": "Only jobs posted within this period.",
            "default": "any"
          },
          "easyApplyOnly": {
            "title": "Easy Apply only",
            "type": "boolean",
            "description": "Only jobs you can apply to directly on Dice.",
            "default": false
          },
          "willingToSponsorOnly": {
            "title": "Willing to sponsor only",
            "type": "boolean",
            "description": "Only jobs where the employer is willing to sponsor a work visa.",
            "default": false
          },
          "employerTypes": {
            "title": "Employer type",
            "type": "array",
            "description": "Only jobs posted by these employer types. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "directHire",
                "recruiter",
                "other"
              ],
              "enumTitles": [
                "Direct hire",
                "Recruiter",
                "Other"
              ]
            }
          },
          "includeRemote": {
            "title": "Include remote jobs from anywhere in the US",
            "type": "boolean",
            "description": "Dice's default. With a location set, remote jobs located elsewhere are also returned. Turn off to get only jobs in or near the location.",
            "default": true
          },
          "startUrls": {
            "title": "Or paste Dice search URLs",
            "type": "array",
            "description": "Search result URLs copied from your browser, e.g. https://www.dice.com/jobs?q=python&location=Austin,%20TX&filters.workplaceTypes=Remote. Each URL is one search with its own keywords and filters; when you add URLs, the search fields above are ignored. Single job pages (/job-detail/...) are not supported.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "maxJobs": {
            "title": "Max jobs per search",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after this many jobs from each search (each URL counts as one search). 0 = no limit; Dice itself returns at most the first 10,000 results of a search.",
            "default": 100
          },
          "includeDescription": {
            "title": "Include full description and job details",
            "type": "boolean",
            "description": "Open each job's page for the full description (HTML and plain text), skills, position ID, contract type and duration, external apply link, postal code, expiry date and the pay interval. Turn off for a faster, listing-only scrape (title, company, location, salary text, summary, flags).",
            "default": true
          },
          "sortBy": {
            "title": "Sort order",
            "enum": [
              "datePosted",
              "relevance"
            ],
            "type": "string",
            "description": "Newest first is best with a job limit. Incremental mode always reads newest first.",
            "default": "datePosted"
          },
          "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 (up to the limit) and saves them as the baseline. Ideal for scheduled alerts.",
            "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. Use different names for independent monitors (e.g. \"python-austin\" vs \"java-remote\").",
            "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": "dice-jobs-scraper-state"
          },
          "requestsPerSecond": {
            "title": "Max requests per second",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Upper limit on requests per second to each Dice host. The default is fast and polite; lower it if Dice starts rate-limiting.",
            "default": 4
          },
          "maxConcurrency": {
            "title": "Max parallel requests",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Maximum parallel HTTP requests.",
            "default": 4
          },
          "searchSource": {
            "title": "Search source",
            "enum": [
              "auto",
              "api",
              "html"
            ],
            "type": "string",
            "description": "Auto uses Dice's JSON search API and falls back to Dice's search result pages if the API refuses requests. You normally don't need to change this.",
            "default": "auto"
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Not needed normally. Enable it if Dice blocks or rate-limits requests from Apify's servers (residential proxies work best for job pages).",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}