{
  "openapi": "3.0.1",
  "info": {
    "title": "Career Site Jobs API — 8 ATS, 10k+ company career sites",
    "description": "Search open roles directly from company career sites (8 ATS platforms), fresh at run time, or scan company domains for ATS, open roles and hiring signals. No login, no proxies, no LinkedIn.",
    "version": "0.1",
    "x-build-id": "d9pfo4KKd2eZB9efB"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/jharney~career-site-jobs-api/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-jharney-career-site-jobs-api",
        "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/jharney~career-site-jobs-api/runs": {
      "post": {
        "operationId": "runs-sync-jharney-career-site-jobs-api",
        "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/jharney~career-site-jobs-api/run-sync": {
      "post": {
        "operationId": "run-sync-jharney-career-site-jobs-api",
        "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": {
          "mode": {
            "title": "Mode",
            "enum": [
              "search",
              "companies"
            ],
            "type": "string",
            "description": "<b>search</b>: find jobs across all indexed company career sites. <b>companies</b>: give company domains (or board URLs) and get each company's ATS, open roles and a hiring summary.",
            "default": "search"
          },
          "query": {
            "title": "Keywords in job title",
            "type": "string",
            "description": "All words must appear in the job title (case-insensitive). Example: <code>account executive</code>. Leave empty and use the other filters for broad pulls."
          },
          "titleIncludes": {
            "title": "Title contains any of",
            "type": "array",
            "description": "Job title must contain at least one of these phrases. Example: [\"SDR\", \"sales development\", \"BDR\"].",
            "items": {
              "type": "string"
            }
          },
          "titleExcludes": {
            "title": "Title must not contain",
            "type": "array",
            "description": "Drop jobs whose title contains any of these phrases. Example: [\"intern\", \"senior\"].",
            "items": {
              "type": "string"
            }
          },
          "location": {
            "title": "Location contains",
            "type": "string",
            "description": "Substring match on the job's location(s). Examples: <code>New York</code>, <code>United States</code>, <code>London</code>, <code>remote</code>."
          },
          "remoteOnly": {
            "title": "Remote jobs only",
            "type": "boolean",
            "description": "Keep only jobs the ATS marks as remote (or whose location says remote).",
            "default": false
          },
          "department": {
            "title": "Department / team contains",
            "type": "string",
            "description": "Substring match on the ATS department or team field. Examples: <code>Sales</code>, <code>Engineering</code>, <code>Marketing</code>."
          },
          "postedSinceHours": {
            "title": "Posted within the last N hours",
            "minimum": 0,
            "type": "integer",
            "description": "0 = no time filter. 24 = last day, 168 = last week, 720 = last 30 days. Jobs without a posting date are excluded when this is set.",
            "default": 0
          },
          "ats": {
            "title": "Only these ATS platforms",
            "type": "array",
            "description": "Restrict the scan to specific applicant tracking systems. Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "greenhouse",
                "lever",
                "ashby",
                "workday",
                "smartrecruiters",
                "workable",
                "recruitee",
                "teamtailor"
              ],
              "enumTitles": [
                "Greenhouse",
                "Lever",
                "Ashby",
                "Workday",
                "SmartRecruiters",
                "Workable",
                "Recruitee",
                "Teamtailor"
              ]
            }
          },
          "companyDomains": {
            "title": "Company domains (companies mode)",
            "type": "array",
            "description": "Company websites to scan, e.g. <code>stripe.com</code>. The Actor finds the careers page, detects the ATS and pulls every open role. One <b>company-scanned</b> event per domain.",
            "items": {
              "type": "string"
            }
          },
          "boardUrls": {
            "title": "Job board URLs",
            "type": "array",
            "description": "Direct career-site / job-board URLs (Greenhouse, Lever, Ashby, Workday, SmartRecruiters, Workable, Recruitee, Teamtailor). Skips discovery.",
            "items": {
              "type": "string"
            }
          },
          "includeDescription": {
            "title": "Include full job descriptions",
            "type": "boolean",
            "description": "Adds <code>descriptionText</code> and <code>descriptionHtml</code>. Costs one extra <b>job-description</b> event per job and is slower for Workday / Workable / SmartRecruiters (one request per job).",
            "default": false
          },
          "maxJobs": {
            "title": "Max jobs",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after this many matching jobs (0 = unlimited, bounded by Maximum total charge).",
            "default": 1000
          },
          "maxJobsPerBoard": {
            "title": "Max jobs per career site",
            "minimum": 1,
            "type": "integer",
            "description": "Cap per company board (protects against huge Workday tenants).",
            "default": 500
          },
          "maxBoards": {
            "title": "Max career sites to scan (search mode)",
            "minimum": 0,
            "type": "integer",
            "description": "0 = scan the whole index. Set e.g. 500 for a quick test run.",
            "default": 0
          },
          "concurrency": {
            "title": "Concurrency",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "Upper bound on parallel career-site requests (split per ATS; Workday and Workable are capped low because they rate-limit).",
            "default": 100
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}