{
  "openapi": "3.0.1",
  "info": {
    "title": "Greenhouse, Lever & Ashby Jobs Feed: $1/1K",
    "description": "Paste careers page URLs, slugs or company names and get open jobs from Greenhouse, Lever and Ashby in one clean schema, with salary when published, remote flag and apply link. Monitor mode returns only new jobs; seen jobs are free. A bad URL never fails the run. $1 per 1,000 jobs.",
    "version": "0.1",
    "x-build-id": "CEWObQQvqhXeIZ9OA"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/moo_iscool~ats-job-feed/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-moo_iscool-ats-job-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/moo_iscool~ats-job-feed/runs": {
      "post": {
        "operationId": "runs-sync-moo_iscool-ats-job-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/moo_iscool~ats-job-feed/run-sync": {
      "post": {
        "operationId": "run-sync-moo_iscool-ats-job-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",
        "required": [
          "companies"
        ],
        "properties": {
          "companies": {
            "title": "Companies",
            "type": "array",
            "description": "One company per line. A careers URL, a board slug, or a company name all work. Query strings and job ids are ignored. A bad line becomes a free error row and the run still finishes.",
            "items": {
              "type": "string"
            }
          },
          "defaultProvider": {
            "title": "Default provider",
            "enum": [
              "auto",
              "greenhouse",
              "lever",
              "ashby"
            ],
            "type": "string",
            "description": "Used when you set a provider and pass a bare slug. Auto compares Greenhouse, Lever, and Ashby for a slug or company name and keeps the board with the most listed jobs.",
            "default": "auto"
          },
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "Keep a job when its title contains any of these words. Matching is case-insensitive. Leave empty to keep every title.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "searchInDescription": {
            "title": "Search in description",
            "type": "boolean",
            "description": "Also match keywords against the plain-text job description.",
            "default": false
          },
          "excludeKeywords": {
            "title": "Exclude keywords",
            "type": "array",
            "description": "Drop a job when its title contains any of these words. Case-insensitive.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "Keep a job when any of its location strings contains one of these values. Primary location, offices, and secondary locations are all checked.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "remoteOnly": {
            "title": "Remote only",
            "type": "boolean",
            "description": "Keep a job when the workplace type is remote, drop hybrid, on-site, in-office, and office jobs, and when the workplace type is missing or unspecified use the board's remote flag, then location text that contains \"remote\".",
            "default": false
          },
          "departments": {
            "title": "Departments",
            "type": "array",
            "description": "Keep a job when its department or team contains any of these values.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "postedWithinDays": {
            "title": "Posted within days",
            "minimum": 1,
            "maximum": 3650,
            "type": "integer",
            "description": "Keep jobs posted in the last N days. Greenhouse uses first published, then updated. Lever uses created date. Ashby uses published date. Jobs with no date are dropped when this is set. If posted within hours is also set, the stricter window wins."
          },
          "postedWithinHours": {
            "title": "Posted within hours",
            "minimum": 1,
            "maximum": 87600,
            "type": "integer",
            "description": "Keep jobs posted in the last N hours. For example 24 keeps jobs from the last day. Greenhouse uses first published, then updated. Jobs with no date are dropped when this is set."
          },
          "onlyNew": {
            "title": "Only new jobs since last run",
            "type": "boolean",
            "description": "Skip jobs this state key has already returned. Seen jobs are not charged. They are stored in the named key-value store ats-job-feed-state, which is kept until you delete it, including on the free plan. Use a different state key for each saved search.",
            "default": false
          },
          "stateKey": {
            "title": "State key",
            "type": "string",
            "description": "Separates seen-job memory when you run several feeds. Sanitized to characters allowed in a key-value store key.",
            "default": "default"
          },
          "includeClosed": {
            "title": "Include closed jobs",
            "type": "boolean",
            "description": "With only new jobs since last run, also output a short closed record for a remembered job that is no longer listed on a board that was fetched successfully, then forget it. Closed records are free. This does nothing when only new jobs is off.",
            "default": false
          },
          "includeChanged": {
            "title": "Include changed jobs",
            "type": "boolean",
            "description": "With only new jobs since last run, also output a remembered job when its title, location, department, salary text, or update time changes. Status is changed. These rows are charged as jobs. The latest text is stored either way.",
            "default": false
          },
          "includeDescription": {
            "title": "Include description",
            "type": "boolean",
            "description": "Add the plain-text job description to each open job. Off by default so a large board stays small.",
            "default": false
          },
          "descriptionMaxLength": {
            "title": "Description max length",
            "minimum": 0,
            "maximum": 500000,
            "type": "integer",
            "description": "Maximum description characters. Use 0 for the full text.",
            "default": 5000
          },
          "maxResults": {
            "title": "Max results",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Stop after this many output records across all companies, including closed records.",
            "default": 1000
          },
          "maxJobsPerCompany": {
            "title": "Max jobs per company",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "After filters, consider only the newest N jobs from each company. Leave empty for no per-company cap."
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "How many companies to fetch at the same time. Each company's jobs are written and released before that worker starts another company.",
            "default": 5
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}