{
  "openapi": "3.0.1",
  "info": {
    "title": "Ashby Jobs Scraper — Salaries, Any Company or All Companies",
    "description": "Scrape job postings from Ashby career sites (OpenAI, Notion, Ramp, Linear and thousands more). Pick companies or search every Ashby company by title, location, remote and salary. Full pay ranges per location, equity, bonus, annual USD salary, new-job tracking. No login.",
    "version": "0.1",
    "x-build-id": "FJptHXVtfaVOGquTP"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/yugenox~ashby-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-yugenox-ashby-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/yugenox~ashby-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-yugenox-ashby-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/yugenox~ashby-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-yugenox-ashby-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",
        "properties": {
          "companies": {
            "title": "🏢 Companies",
            "type": "array",
            "description": "Companies whose Ashby job board you want. Use the name from their jobs.ashbyhq.com/<name> link (e.g. openai, ramp, notion), paste a jobs.ashbyhq.com link, or paste the company's own careers page URL and the Ashby board is found for you.",
            "items": {
              "type": "string"
            }
          },
          "searchAllCompanies": {
            "title": "🌐 Search all Ashby companies",
            "type": "boolean",
            "description": "Search the jobs of every company in our Ashby directory (thousands of startups and scale-ups, refreshed weekly) instead of only the companies above. Combine with the filters below — e.g. title \"data engineer\" + location \"Canada\".",
            "default": false
          },
          "titleKeywords": {
            "title": "🔍 Job title keywords",
            "type": "array",
            "description": "Keep jobs whose title contains any of these words or phrases (whole words, plurals included: \"engineer\" matches \"Senior Engineers\" but not \"Engineering\"; add * for a prefix: \"engineer*\"). Leave empty for all jobs.",
            "items": {
              "type": "string"
            }
          },
          "keywordScope": {
            "title": "Search keywords in",
            "enum": [
              "title",
              "titleAndDescription"
            ],
            "type": "string",
            "description": "Match the keywords in the job title only, or in the title and the full job description (e.g. to find every job that mentions \"Python\").",
            "default": "title"
          },
          "excludeTitleKeywords": {
            "title": "🚫 Exclude title keywords",
            "type": "array",
            "description": "Drop jobs whose title contains any of these (e.g. senior, staff, intern).",
            "items": {
              "type": "string"
            }
          },
          "locationKeywords": {
            "title": "📍 Locations",
            "type": "array",
            "description": "Keep jobs in any of these places — city, state/region, country or the company's own location label (\"San Francisco\", \"Ontario\", \"Germany\", \"EMEA\", \"USA\"). Checks every location of a job, including secondary ones. \"Remote\" matches remote jobs.",
            "items": {
              "type": "string"
            }
          },
          "workplaceTypes": {
            "title": "🏠 Workplace type",
            "type": "array",
            "description": "Keep only these workplace types. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "Remote",
                "Hybrid",
                "OnSite"
              ],
              "enumTitles": [
                "Remote",
                "Hybrid",
                "On-site"
              ]
            }
          },
          "employmentTypes": {
            "title": "💼 Employment type",
            "type": "array",
            "description": "Keep only these employment types. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "FullTime",
                "PartTime",
                "Contract",
                "Intern",
                "Temporary"
              ],
              "enumTitles": [
                "Full-time",
                "Part-time",
                "Contract",
                "Internship",
                "Temporary"
              ]
            }
          },
          "departments": {
            "title": "🗂️ Departments / teams",
            "type": "array",
            "description": "Keep jobs whose department or team contains any of these (e.g. Engineering, Sales, Marketing).",
            "items": {
              "type": "string"
            }
          },
          "postedWithinDays": {
            "title": "📅 Posted within (days)",
            "minimum": 1,
            "type": "integer",
            "description": "Only jobs published in the last N days."
          },
          "hasSalaryOnly": {
            "title": "💰 Only jobs with a salary range",
            "type": "boolean",
            "description": "Skip jobs that don't publish pay.",
            "default": false
          },
          "minSalaryUsd": {
            "title": "💵 Minimum yearly salary (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Only jobs whose pay range reaches at least this much per year, converted to USD (hourly and monthly pay are annualised). Implies \"only jobs with a salary range\"."
          },
          "maxItems": {
            "title": "🔢 Max jobs",
            "minimum": 1,
            "type": "integer",
            "description": "Maximum number of jobs to save in this run. Leave empty for no limit."
          },
          "maxJobsPerCompany": {
            "title": "🔢 Max jobs per company",
            "minimum": 1,
            "type": "integer",
            "description": "Cap per company (newest first). Handy with \"Search all\" so one big employer doesn't fill your results."
          },
          "descriptionFormat": {
            "title": "📝 Job description",
            "enum": [
              "plain",
              "html",
              "both",
              "none"
            ],
            "type": "string",
            "description": "Include the full job description as plain text, HTML, both, or leave it out for a lighter dataset.",
            "default": "plain"
          },
          "includeCompanyDetails": {
            "title": "🏷️ Company name, website & logo",
            "type": "boolean",
            "description": "Add the company's display name, website and logo to every job.",
            "default": true
          },
          "includeApplicationDeadline": {
            "title": "⏳ Application deadline",
            "type": "boolean",
            "description": "Add applicationDeadline (set by some companies). Needs one extra request per job, so runs are slower.",
            "default": false
          },
          "onlyNewSinceLastRun": {
            "title": "🆕 Only new jobs since the last run",
            "type": "boolean",
            "description": "Return only jobs this search has not returned before — ideal for scheduled runs and job alerts. Every job always carries isNew and firstSeenAt either way. The first run returns everything.",
            "default": false
          },
          "changeTrackingKey": {
            "title": "Tracking name",
            "type": "string",
            "description": "Optional. Runs with the same companies and filters share their \"already seen\" memory automatically. Set a name to share it explicitly (e.g. \"ml-jobs-canada\"), or change it to start fresh."
          },
          "skipCompaniesThatOptOutOfIndexing": {
            "title": "Respect companies that opt out of job indexing",
            "type": "boolean",
            "description": "In \"Search all\" mode, skip the few companies that ask job search engines not to index their postings. Companies you list by name are always included.",
            "default": true
          },
          "maxConcurrency": {
            "title": "Parallel companies",
            "minimum": 1,
            "maximum": 30,
            "type": "integer",
            "description": "How many company boards to read at once.",
            "default": 10
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Apify Proxy (automatic) is recommended. If the proxy is unavailable the actor connects directly, so runs don't fail.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}