{
  "openapi": "3.0.1",
  "info": {
    "title": "Career Site Jobs Search API: Greenhouse, Lever, Ashby & Workday",
    "description": "Keyword search across thousands of company career sites at once. Find every 'data engineer' (or any role) job on Greenhouse, Lever, Ashby and Workday boards, live, with salaries, posting dates, remote and country filters and new-job alerts.",
    "version": "0.1",
    "x-build-id": "4O9caXhMpioB8cWQN"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/signalscouter~career-site-jobs-search/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-signalscouter-career-site-jobs-search",
        "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/signalscouter~career-site-jobs-search/runs": {
      "post": {
        "operationId": "runs-sync-signalscouter-career-site-jobs-search",
        "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/signalscouter~career-site-jobs-search/run-sync": {
      "post": {
        "operationId": "run-sync-signalscouter-career-site-jobs-search",
        "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": "Job keywords",
            "type": "array",
            "description": "Job titles or phrases to search for, e.g. 'data engineer', 'account executive', 'nurse'. A job matches if any keyword appears at the start of a word in its title (so 'engineer' also matches 'Engineering'). Required unless you list companies.",
            "items": {
              "type": "string"
            }
          },
          "excludeKeywords": {
            "title": "Exclude keywords",
            "type": "array",
            "description": "Drop jobs whose title contains any of these, e.g. 'intern', 'senior'.",
            "items": {
              "type": "string"
            }
          },
          "searchIn": {
            "title": "Match keywords in",
            "enum": [
              "title",
              "titleAndDescription"
            ],
            "type": "string",
            "description": "Where keywords must appear. Workday sites are always searched with Workday's own search box, then matched here.",
            "default": "title"
          },
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "Keep jobs whose location text contains any of these, e.g. 'London', 'New York', 'Germany', 'Remote'.",
            "items": {
              "type": "string"
            }
          },
          "countries": {
            "title": "Countries (ISO codes)",
            "type": "array",
            "description": "Keep jobs in these countries, as 2-letter codes such as US, GB, DE. The country is read from the ATS where it gives one, otherwise guessed from the location text; jobs with no recognisable country are dropped when this is set.",
            "items": {
              "type": "string"
            }
          },
          "remoteOnly": {
            "title": "Remote only",
            "type": "boolean",
            "description": "Keep only jobs marked remote.",
            "default": false
          },
          "postedWithinHours": {
            "title": "Posted within (hours)",
            "minimum": 0,
            "maximum": 8760,
            "type": "integer",
            "description": "Keep jobs first posted in the last N hours, e.g. 24, 72 or 168 (0 = any age). Jobs without a posting date are dropped when this is set. Workday only gives day-level dates ('Posted 3 Days Ago'), so its dates are approximate."
          },
          "ats": {
            "title": "Applicant tracking systems",
            "type": "array",
            "description": "Which job-board platforms to search. Leave empty for all four.",
            "items": {
              "type": "string",
              "enum": [
                "greenhouse",
                "lever",
                "ashby",
                "workday"
              ],
              "enumTitles": [
                "Greenhouse",
                "Lever",
                "Ashby",
                "Workday"
              ]
            }
          },
          "useBuiltInIndex": {
            "title": "Search the built-in company index",
            "type": "boolean",
            "description": "Search every company board in our bundled index (thousands of employers found in the open Common Crawl web index and checked against each ATS). Turn off to search only the companies you list below.",
            "default": true
          },
          "companies": {
            "title": "Extra companies (board URLs)",
            "type": "array",
            "description": "Optional. Board or job URLs to search as well, e.g. https://job-boards.greenhouse.io/stripe, https://jobs.lever.co/acme, https://jobs.ashbyhq.com/Ramp, https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite, or 'greenhouse:stripe'. These are always read, and errors for them are reported as free error rows.",
            "items": {
              "type": "string"
            }
          },
          "maxBoards": {
            "title": "Max index boards to check",
            "minimum": 0,
            "type": "integer",
            "description": "Check only the N largest boards from the index (0 = all). Lower it for quicker test runs.",
            "default": 0
          },
          "maxResults": {
            "title": "Max jobs",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after this many jobs (0 = no limit). Your maximum cost per run is always respected too.",
            "default": 1000
          },
          "maxResultsPerCompany": {
            "title": "Max jobs per company",
            "minimum": 0,
            "type": "integer",
            "description": "Keep at most this many matching jobs per company (0 = no limit). Useful for sales lists.",
            "default": 0
          },
          "includeDescription": {
            "title": "Include job description text",
            "type": "boolean",
            "description": "Add the plain-text job description (Greenhouse, Lever and Ashby). Bigger rows, same price.",
            "default": false
          },
          "includeCompanySummary": {
            "title": "Add company hiring summaries",
            "type": "boolean",
            "description": "One extra row per company with matching jobs: open jobs on the board, jobs posted in the last 7 and 30 days, remote share, top departments and locations. Charged as a separate company-summary event.",
            "default": false
          },
          "onlyNew": {
            "title": "Only new jobs (monitor mode)",
            "type": "boolean",
            "description": "Return only jobs this search hasn't returned before. Seen jobs are remembered in a key-value store in your account, keyed by the monitor ID. Jobs cut off by 'Max jobs' or your spending limit are not marked as seen, so they come back next time.",
            "default": false
          },
          "monitorId": {
            "title": "Monitor ID",
            "type": "string",
            "description": "Name for this saved search's memory, e.g. 'data-eng-uk'. Leave empty to derive one from the keywords and filters (changing them then starts a fresh monitor)."
          },
          "workdayMaxPagesPerKeyword": {
            "title": "Workday pages per keyword",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Workday search results are relevance-ranked, 20 per page. We read up to this many pages per keyword per site and stop early at the first page with no title match.",
            "default": 3
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}