{
  "openapi": "3.0.1",
  "info": {
    "title": "LinkedIn, Workday, Greenhouse and ATS Jobs Scraper",
    "description": "Workday jobs scraper, Greenhouse jobs scraper, Lever jobs scraper and LinkedIn jobs in one careers page jobs scraper covering 15 sources. Schedule this company job listings scraper and it becomes a job listing feed: new, changed and closed postings only, with apply links.",
    "version": "1.7",
    "x-build-id": "Q4C5jRfoFdUJikfrC"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/titian_fluorite~ats-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-titian_fluorite-ats-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/titian_fluorite~ats-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-titian_fluorite-ats-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/titian_fluorite~ats-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-titian_fluorite-ats-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": [
          "companies"
        ],
        "properties": {
          "companies": {
            "title": "Companies",
            "type": "array",
            "description": "One line per company. Paste a board link such as https://job-boards.greenhouse.io/stripe, https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite, https://jobs.lever.co/palantir or https://ats.rippling.com/closinglock/jobs, or the company's own careers page such as https://example.com/careers. You can also type a system and slug pair such as greenhouse:stripe, rippling:closinglock or bamboohr:greenpeace when you already know the board name. Workday needs both halves of its address, written as workday:tenant.wdN/SiteName, for example workday:nvidia.wd5/NVIDIAExternalCareerSite. LinkedIn is written as linkedin:stripe, as linkedin:2135371 if you know the organization id, or as the company page URL https://www.linkedin.com/company/stripe/; check the company name on the first row, because a LinkedIn slug belongs to whoever registered it and linkedin:linear is a German software company rather than the issue tracker. Supported: Workday, Greenhouse, Lever, Ashby, Workable, SmartRecruiters, Personio, Teamtailor, Recruitee, Rippling, Jobvite, Breezy HR, BambooHR, iCIMS and LinkedIn. If a company careers page is given, the scraper loads it once and finds the job board behind it. Nothing is deduplicated across sources, so listing both a company's ATS board and its LinkedIn page returns the same role twice with two different job ids.",
            "items": {
              "type": "string"
            }
          },
          "keywords": {
            "title": "Job title keywords",
            "type": "array",
            "description": "Keep only jobs whose title contains one of these words. Case does not matter. Leave empty to keep every job.",
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "Keep only jobs whose location, city or country contains one of these words, for example Berlin, London or United States. Leave empty to keep every location.",
            "items": {
              "type": "string"
            }
          },
          "remoteOnly": {
            "title": "Remote jobs only",
            "type": "boolean",
            "description": "Keep only jobs the company marks as remote.",
            "default": false
          },
          "postedAfter": {
            "title": "Posted after",
            "type": "string",
            "description": "Keep only jobs posted on or after this date, written as YYYY-MM-DD. Jobs with no posting date are dropped when this is set. Leave empty to keep every job."
          },
          "includeDescription": {
            "title": "Include job descriptions",
            "type": "boolean",
            "description": "Include the full job description as HTML and as plain text. Turn this off for a faster and cheaper run when you only need titles, locations and links.",
            "default": true
          },
          "maxJobsPerCompany": {
            "title": "Maximum jobs per company",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after this many jobs for each company. Use 0 for no limit. Worth setting for Workday boards, which often carry thousands of openings: the scraper stops paging as soon as it has this many, so a small number is a fast and cheap run.",
            "default": 0
          },
          "maxConcurrency": {
            "title": "Maximum concurrency",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "How many companies to work on at the same time. Lower this if a job board starts rate limiting you.",
            "default": 10
          },
          "trackChanges": {
            "title": "Track changes between runs",
            "type": "boolean",
            "description": "Compare every job with the previous run of this Actor on the same companies with the same settings, and label each row new, closed, salaryChanged, updated or unchanged. Run this Actor on a schedule and you get a job feed: the roles that opened, the roles that came down and the pay ranges that moved. The first run labels everything new, because there is nothing yet to compare with. On LinkedIn a job missing from a run's listing is checked against its own posting page before it is reported closed, because the public LinkedIn listing shifts by about ten percent between reads and a job that is merely absent from one read is usually still live.",
            "default": true
          },
          "onlyChanges": {
            "title": "Only return what changed",
            "type": "boolean",
            "description": "Skip jobs that are exactly as they were last run. Turn this on for a scheduled monitor: you get a dataset holding only the new roles, the closed roles and the pay moves, and you are not billed for the rest. With this on, a company whose jobs did not move produces no rows at all, not even a note saying so.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Which proxy to read LinkedIn through. Apify Proxy on automatic groups is the default and is what was measured: datacenter addresses, no blocks at the polite rate this Actor uses, and about four times faster than residential. Switch to residential if you would rather. This is used for LinkedIn and nothing else. The fourteen applicant tracking systems are read directly, so a list with no LinkedIn entry in it spends nothing on proxy traffic.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}