{
  "openapi": "3.0.1",
  "info": {
    "title": "BambooHR Jobs: Career Pages & Salaries",
    "description": "BambooHR jobs scraper: every open job from any company's BambooHR careers page (acme.bamboohr.com) with the pay as published and as numbers, experience level, job type, address, company logo, full description as text or Markdown and the apply link. Subdomains or URLs. No login.",
    "version": "0.1",
    "x-build-id": "HoIXq51QEHIoukAO1"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/deepmine~bamboohr-jobs/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-deepmine-bamboohr-jobs",
        "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/deepmine~bamboohr-jobs/runs": {
      "post": {
        "operationId": "runs-sync-deepmine-bamboohr-jobs",
        "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/deepmine~bamboohr-jobs/run-sync": {
      "post": {
        "operationId": "run-sync-deepmine-bamboohr-jobs",
        "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 (subdomains or URLs)",
            "minItems": 1,
            "type": "array",
            "description": "BambooHR careers page URLs (https://acme.bamboohr.com/careers) or just the subdomain (acme), one per line. Greenhouse, Lever, Ashby and Workday boards work too.",
            "items": {
              "type": "string",
              "pattern": "\\S"
            }
          },
          "maxJobsPerCompany": {
            "title": "💯 Max jobs per company",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Each company's newest jobs, up to this many. You pay per job, so this caps the cost per company. 0 = every job.",
            "default": 100
          },
          "maxResults": {
            "title": "🧮 Max results",
            "minimum": 1,
            "maximum": 200000,
            "type": "integer",
            "description": "Stop after this many jobs in total, delivered in the order of your inputs. You pay per job, so this caps the run's cost.",
            "default": 1000
          },
          "includeDescription": {
            "title": "📝 Include job descriptions",
            "type": "boolean",
            "description": "Reads each job's own page: the full description, pay, posting date and experience level. Same price. Off is faster but leaves those out (BambooHR's list doesn't show them).",
            "default": true
          },
          "titleKeywords": {
            "title": "🔍 Job title contains",
            "type": "array",
            "description": "Keep jobs whose title contains any of these words or phrases, e.g. engineer, sales manager. Not case-sensitive. Empty = every job.",
            "items": {
              "type": "string",
              "pattern": "\\S"
            }
          },
          "departments": {
            "title": "🗂️ Department contains",
            "type": "array",
            "description": "Keep jobs whose department contains any of these, e.g. Engineering, Sales. Not case-sensitive. Empty = every department.",
            "items": {
              "type": "string",
              "pattern": "\\S"
            }
          },
          "employmentTypes": {
            "title": "🕒 Job types",
            "type": "array",
            "description": "Keep only these job types. Empty = every type.",
            "items": {
              "type": "string",
              "enum": [
                "Full-time",
                "Part-time",
                "Contract",
                "Internship",
                "Temporary"
              ],
              "enumTitles": [
                "Full-time",
                "Part-time",
                "Contract",
                "Internship",
                "Temporary"
              ]
            }
          },
          "experienceLevels": {
            "title": "🎓 Experience levels",
            "type": "array",
            "description": "Keep only jobs asking for this minimum experience, as BambooHR names it. Empty = any level.",
            "items": {
              "type": "string",
              "enum": [
                "Entry-level",
                "Mid-level",
                "Experienced",
                "Manager/Supervisor",
                "Senior Manager/Supervisor",
                "Executive"
              ],
              "enumTitles": [
                "Entry-level",
                "Mid-level",
                "Experienced",
                "Manager/Supervisor",
                "Senior Manager/Supervisor",
                "Executive"
              ]
            }
          },
          "locations": {
            "title": "📍 Location contains",
            "type": "array",
            "description": "Keep jobs whose location names any of these, e.g. Texas, Toronto, Germany. Two letters are a country code: US, GB, DE, CA (Canada). Empty = anywhere.",
            "items": {
              "type": "string",
              "pattern": "\\S"
            }
          },
          "remoteOnly": {
            "title": "🏠 Remote jobs only",
            "type": "boolean",
            "description": "Keep only jobs the company marks as remote, or whose location says Remote.",
            "default": false
          },
          "postedWithinDays": {
            "title": "📅 Posted within (days)",
            "minimum": 0,
            "maximum": 3650,
            "type": "integer",
            "description": "Keep jobs posted in the last N days, e.g. 1 for a daily scheduled run. Uses the date BambooHR shows. 0 = any date.",
            "default": 0
          },
          "postedAfter": {
            "title": "📆 Posted on or after",
            "pattern": "^(\\d{4}-\\d{2}-\\d{2})?$",
            "type": "string",
            "description": "Keep jobs posted on or after this day (UTC), e.g. 2026-10-01. Uses the date BambooHR shows. Empty = any date."
          },
          "minSalary": {
            "title": "💵 Minimum pay per year",
            "minimum": 0,
            "maximum": 100000000,
            "type": "integer",
            "description": "Keep jobs whose published pay reaches this much a year, in the job's own currency (hourly pay counts 2,080 hours). Jobs without pay are left out. 0 = any pay.",
            "default": 0
          },
          "onlyWithSalary": {
            "title": "💰 Only jobs with published pay",
            "type": "boolean",
            "description": "Keep only jobs whose pay field or description states an amount.",
            "default": false
          },
          "includeMarkdown": {
            "title": "📝 Description as Markdown",
            "type": "boolean",
            "description": "Adds descriptionMarkdown: headings, lists, bold and links kept, ready for LLMs and AI agents. Same price.",
            "default": true
          },
          "includeHtml": {
            "title": "🧾 Also the HTML description",
            "type": "boolean",
            "description": "Adds descriptionHtml with the company's own formatting. Same price. Needs job descriptions on.",
            "default": false
          },
          "includeAllFields": {
            "title": "💵 Pay numbers, level, address, logo, IDs",
            "type": "boolean",
            "description": "Reads the pay line as numbers (up to, plus bonus, US or local dollars, millions), else the description's range; adds experience level, employment status, remote flag, address, global ID, input order, logo. Same price.",
            "default": true
          },
          "includeRawJson": {
            "title": "🧾 Raw BambooHR data",
            "type": "boolean",
            "description": "Adds raw: BambooHR's own records for the job, verbatim (the list's and the job's, nested JSON, for your own parsing). Same price. Needs 💵 Pay numbers... on.",
            "default": false
          },
          "bareNamesOn": {
            "title": "🔤 Bare names are accounts on",
            "type": "string",
            "description": "A bare entry such as acme is the BambooHR careers page acme.bamboohr.com.",
            "default": "bamboohr"
          },
          "ownFieldsFor": {
            "title": "🧾 Own fields of",
            "type": "string",
            "description": "With 💵 Pay, experience, address..., a BambooHR job carries BambooHR's own fields.",
            "default": "bamboohr"
          },
          "proxyConfiguration": {
            "title": "🛡️ Proxy",
            "type": "object",
            "description": "Leave as is: Apify datacenter proxies are all BambooHR needs. Residential and SERP proxies are replaced with datacenter (they cost more and add nothing here); your own proxy URLs work too.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}