{
  "openapi": "3.0.1",
  "info": {
    "title": "Greenhouse, Lever, Ashby & Workday Jobs — ATS Job Board Scraper",
    "description": "Get every open job from company career sites and ATS job boards (Greenhouse, Lever, Ashby, Workday, Workable, Recruitee, Teamtailor, Personio) from a company name or careers URL. Output: one clean job schema, only new/closed jobs since the last run, or hiring signals. $2 per 1,000 jobs.",
    "version": "0.1",
    "x-build-id": "BVjhBJgYDn7HaTjlV"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/signalloom~company-jobs-feed/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-signalloom-company-jobs-feed",
        "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/signalloom~company-jobs-feed/runs": {
      "post": {
        "operationId": "runs-sync-signalloom-company-jobs-feed",
        "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/signalloom~company-jobs-feed/run-sync": {
      "post": {
        "operationId": "run-sync-signalloom-company-jobs-feed",
        "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": {
          "companies": {
            "title": "Companies",
            "type": "array",
            "description": "Company names (\"stripe\"), job-board URLs (\"https://jobs.lever.co/palantir\"), company careers pages (\"https://www.notion.com/careers\"), Workday career-site URLs, or explicit \"platform:slug\" (\"greenhouse:airbnb\"). Leave empty and turn on \"Browse the company directory\" to pick companies for you. Workday boards need the career-site URL or a careers page that links to it. Example: [\"airbnb\", \"https://jobs.ashbyhq.com/ramp\"]. Needed unless useDirectory is true.",
            "items": {
              "type": "string"
            }
          },
          "useDirectory": {
            "title": "Browse the company directory",
            "type": "boolean",
            "description": "Add companies from our directory of 8,000+ public Greenhouse, Ashby and Lever job boards with open roles (checked against each platform’s public API). Use it to discover who is hiring without knowing company names. Combine with Title keywords and Hiring signals mode to find companies hiring for a role. Uses the \"Platforms to search\" setting. Each company checked is billed as usual. Example: true with keywords [\"machine learning\"] and outputMode \"companies\".",
            "default": false
          },
          "directoryMinOpenJobs": {
            "title": "Minimum open jobs",
            "minimum": 0,
            "type": "integer",
            "description": "Only directory companies with at least this many open jobs at the last directory check.",
            "default": 5
          },
          "directoryNameContains": {
            "title": "Company name contains",
            "type": "array",
            "description": "Only directory companies whose name or board slug contains one of these, e.g. \"ai\", \"health\", \"bank\".",
            "items": {
              "type": "string"
            }
          },
          "directoryMaxCompanies": {
            "title": "Max directory companies",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Upper limit on companies taken from the directory (largest boards first). Keeps cost predictable: each company checked costs $0.001 plus its jobs.",
            "default": 100
          },
          "keywords": {
            "title": "Title keywords",
            "type": "array",
            "description": "Only jobs whose title contains at least one of these (case-insensitive), e.g. \"engineer\", \"sales\". Example: [\"engineer\", \"account executive\"].",
            "items": {
              "type": "string"
            }
          },
          "excludeKeywords": {
            "title": "Exclude title keywords",
            "type": "array",
            "description": "Skip jobs whose title contains any of these, e.g. \"intern\", \"senior\".",
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "Only jobs whose location or country contains one of these, e.g. \"London\", \"Germany\", \"US\", \"remote\".",
            "items": {
              "type": "string"
            }
          },
          "workplaceTypes": {
            "title": "Workplace type",
            "type": "array",
            "description": "Only these workplace types. When set, jobs that don't state a workplace type are excluded. Example: [\"remote\"].",
            "items": {
              "type": "string",
              "enum": [
                "remote",
                "hybrid",
                "onsite"
              ],
              "enumTitles": [
                "Remote",
                "Hybrid",
                "On-site"
              ]
            }
          },
          "postedWithinDays": {
            "title": "Posted within (days)",
            "minimum": 0,
            "type": "integer",
            "description": "Only jobs posted in the last N days. 0 = any time. Example: 7 = last week.",
            "default": 0
          },
          "trackChanges": {
            "title": "Track new and closed jobs",
            "type": "boolean",
            "description": "Remember each company's jobs and flag NEW_JOB / REMOVED on later runs, plus a firstSeenAt date. Schedule the Actor (e.g. daily) to get a feed of new openings.",
            "default": true
          },
          "outputMode": {
            "title": "Output",
            "enum": [
              "all",
              "newOnly",
              "companies"
            ],
            "type": "string",
            "description": "\"All jobs\" outputs every open job each run. \"Only new and closed jobs\" outputs just the changes since the last run. \"Hiring signals\" outputs one row per company: open jobs, new and closed since last run, jobs posted in the last 7/30 days, and counts by department, location and workplace type. Great for sales prospecting. Filters apply to all modes. API values: \"all\", \"newOnly\", \"companies\".",
            "default": "all"
          },
          "monitorId": {
            "title": "Monitor name",
            "type": "string",
            "description": "Change history is kept per monitor name. Use different names for separate schedules. Example: \"sales-accounts-weekly\".",
            "default": "default"
          },
          "includeDescription": {
            "title": "Include job descriptions",
            "type": "boolean",
            "description": "Add the full job description as plain text (larger output, slower runs).",
            "default": false
          },
          "maxJobsPerCompany": {
            "title": "Max jobs per company",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only the N most recently posted jobs per company. 0 = all. Closed-job detection only runs when all jobs are fetched. Example: 10 for a cheap sample (about $0.02 per company).",
            "default": 0
          },
          "platforms": {
            "title": "Platforms to search",
            "type": "array",
            "description": "Which job-board platforms to try when detecting a company by name. Leave all on unless you know where your companies post. Example: [\"greenhouse\", \"ashby\"].",
            "items": {
              "type": "string",
              "enum": [
                "greenhouse",
                "lever",
                "ashby",
                "workable",
                "recruitee",
                "teamtailor",
                "personio",
                "workday"
              ],
              "enumTitles": [
                "Greenhouse",
                "Lever",
                "Ashby",
                "Workable",
                "Recruitee",
                "Teamtailor",
                "Personio",
                "Workday"
              ]
            },
            "default": [
              "greenhouse",
              "lever",
              "ashby",
              "workable",
              "recruitee",
              "teamtailor",
              "personio",
              "workday"
            ]
          },
          "maxConcurrency": {
            "title": "Companies in parallel",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "How many companies to fetch at the same time.",
            "default": 4
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}