{
  "openapi": "3.0.1",
  "info": {
    "title": "Multi Job Board Scraper - LinkedIn, Indeed, Glassdoor & More",
    "description": "Scrape jobs from LinkedIn, Indeed, Glassdoor, Bayt, Naukri & BDJobs in one run. Get titles, companies, salaries, full descriptions, and company details as one clean dataset. No login or proxy needed.",
    "version": "1.0",
    "x-build-id": "88J36BpsdU7i3nnz4"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/vero-api~multi-job-board-scraper-linkedin-indeed-glassdoor-more/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-vero-api-multi-job-board-scraper-linkedin-indeed-glassdoor-more",
        "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/vero-api~multi-job-board-scraper-linkedin-indeed-glassdoor-more/runs": {
      "post": {
        "operationId": "runs-sync-vero-api-multi-job-board-scraper-linkedin-indeed-glassdoor-more",
        "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/vero-api~multi-job-board-scraper-linkedin-indeed-glassdoor-more/run-sync": {
      "post": {
        "operationId": "run-sync-vero-api-multi-job-board-scraper-linkedin-indeed-glassdoor-more",
        "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": {
          "searchTerm": {
            "title": "Search keywords",
            "type": "string",
            "description": "The job title, skill, or company to search for — what you'd type into a job board's search box (e.g. <code>software engineer</code>, <code>registered nurse</code>, <code>product manager</code>). Use <b>Multiple search terms</b> below to run several queries in one go."
          },
          "searchTerms": {
            "title": "Multiple search terms (OR search)",
            "type": "array",
            "description": "Optional — run several queries in one run. Results from each are merged and de-duplicated, and every job records which term surfaced it (the <code>searchTerm</code> field). Example: <code>[\"AI engineer\", \"machine learning engineer\"]</code>. Max 5. Cost scales with the number of terms. Leave empty to use the single <b>Search keywords</b> above.",
            "items": {
              "type": "string"
            }
          },
          "country": {
            "title": "Country",
            "enum": [
              "dz",
              "ar",
              "au",
              "at",
              "bh",
              "bd",
              "be",
              "br",
              "bg",
              "ca",
              "cl",
              "cn",
              "co",
              "cr",
              "hr",
              "cy",
              "cz",
              "dk",
              "ec",
              "eg",
              "ee",
              "fi",
              "fr",
              "de",
              "gr",
              "hk",
              "hu",
              "in",
              "id",
              "iq",
              "ie",
              "il",
              "it",
              "jp",
              "jo",
              "kw",
              "lv",
              "lb",
              "ly",
              "lt",
              "lu",
              "my",
              "mt",
              "mx",
              "ma",
              "nl",
              "nz",
              "ng",
              "no",
              "om",
              "pk",
              "ps",
              "pa",
              "pe",
              "ph",
              "pl",
              "pt",
              "qa",
              "ro",
              "sa",
              "sg",
              "sk",
              "sl",
              "so",
              "za",
              "kr",
              "es",
              "se",
              "ch",
              "tw",
              "th",
              "tr",
              "ua",
              "ae",
              "gb",
              "us",
              "uy",
              "ve",
              "vn",
              "ye"
            ],
            "type": "string",
            "description": "Country for Indeed, Glassdoor, BDJobs, Naukri, and Bayt searches. Indeed and Glassdoor run per-country; BDJobs uses it to scope overseas listings (pick <b>Bangladesh</b> for domestic jobs); Naukri and Bayt scope by country and cover the Gulf/MENA region best (pick a Gulf/MENA country for the most results). LinkedIn ignores it.",
            "default": "us"
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "City, state, country, or region to search in (e.g. <code>Austin, TX</code>, <code>London</code>, <code>Remote</code>). Leave empty to search broadly. For Indeed and Glassdoor, set <b>Country</b> below to match. Naukri combines it with <b>Country</b> to narrow to a city (e.g. <code>uae, dubai</code>); leave empty to search the whole country."
          },
          "sites": {
            "title": "Job boards",
            "type": "array",
            "description": "Which job boards to scrape. Note the regional ones: <b>Bayt</b> = Middle East, <b>Naukri</b> = Gulf & MENA, <b>BDJobs</b> = Bangladesh.",
            "items": {
              "type": "string",
              "enum": [
                "linkedin",
                "indeed",
                "glassdoor",
                "bayt",
                "naukri",
                "bdjobs"
              ],
              "enumTitles": [
                "LinkedIn",
                "Indeed",
                "Glassdoor",
                "Bayt",
                "Naukri",
                "BDJobs"
              ]
            },
            "default": [
              "linkedin",
              "indeed",
              "glassdoor"
            ]
          },
          "maxResults": {
            "title": "Max results per board",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Maximum job listings to scrape from each board, per search term (1–1000). Total ≈ this × number of boards × number of search terms.",
            "default": 20
          },
          "jobType": {
            "title": "Job type",
            "enum": [
              "",
              "fulltime",
              "parttime",
              "contract",
              "internship",
              "temporary"
            ],
            "type": "string",
            "description": "Filter by employment type. Leave as <code>Any</code> to include all types. On Indeed this can't be combined with the date filter (the date filter takes priority).",
            "default": ""
          },
          "hoursOld": {
            "title": "Posted within (hours)",
            "minimum": 1,
            "type": "integer",
            "description": "Only return jobs posted within the last N hours (e.g. <code>24</code> = last day, <code>72</code> = last 3 days, <code>168</code> = last week). Leave empty for any time."
          },
          "descriptionFormat": {
            "title": "Description format",
            "enum": [
              "markdown",
              "html",
              "text"
            ],
            "type": "string",
            "description": "How to format the job description text. <code>Markdown</code> is clean and readable; <code>HTML</code> preserves original styling; <code>Plain text</code> strips all markup.",
            "default": "markdown"
          },
          "offset": {
            "title": "Results offset",
            "minimum": 0,
            "type": "integer",
            "description": "Skip the first N results — useful for paging through a large result set across runs. Applies to LinkedIn, Glassdoor, Naukri, BDJobs, and Bayt."
          },
          "isRemote": {
            "title": "Remote jobs only",
            "type": "boolean",
            "description": "Return only jobs tagged as remote. On Indeed this can't be combined with the date filter below (the date filter takes priority).",
            "default": false
          },
          "easyApply": {
            "title": "Easy apply only",
            "type": "boolean",
            "description": "Only return jobs you can apply to directly on the board (Indeed, LinkedIn, Glassdoor, Naukri, Bayt). On Indeed this can't be combined with the date filter.",
            "default": false
          },
          "fetchExtraJobInfo": {
            "title": "Fetch extra job info",
            "type": "boolean",
            "description": "Collect richer per-job data the search results omit. LinkedIn, Glassdoor, Naukri, BDJobs, and Bayt open each job's detail page (an extra request per job): LinkedIn adds the full description, seniority, employment type, job function, company industry, and direct apply URL; Glassdoor adds the full description, skills, benefits, job type, experience range, company website, industry, size, revenue, headquarters, CEO, and review count; Naukri adds employment type, job function, company industry, benefits, work arrangement, and the salary range; BDJobs adds the full description and skills; Bayt adds the full description, apply URL, skills, employment type, company industry, the salary range, and company details. Slower and more proxy usage on the boards that open detail pages.",
            "default": false
          },
          "enforceAnnualSalary": {
            "title": "Normalize salaries to annual",
            "type": "boolean",
            "description": "Convert all salary figures to annual equivalents (hourly × 2080, monthly × 12, etc.) so salaries are comparable across jobs.",
            "default": false
          },
          "deduplicate": {
            "title": "Remove duplicates",
            "type": "boolean",
            "description": "Drop the same role when it appears more than once (same title, company, and city) — within a board or across boards. The first copy seen is kept.",
            "default": 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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}