{
  "openapi": "3.0.1",
  "info": {
    "title": "Jobs Scraper - LinkedIn, Workday, Greenhouse & 15+ Job Sources",
    "description": "US + Europe job listings: LinkedIn search (no login), career sites on Workday, Greenhouse, Lever, Ashby, Personio, Recruitee, Teamtailor & more, plus public job APIs (German and Swedish employment agencies, remote boards). $0.0012 per job.",
    "version": "0.1",
    "x-build-id": "3ZNVTXf0LBBjKXcV5"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/admirala~jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-admirala-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/admirala~jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-admirala-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/admirala~jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-admirala-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": {
          "searchQueries": {
            "title": "Search keywords",
            "type": "array",
            "description": "Job titles or keywords, one per line, e.g. [\"data engineer\", \"product manager\"]. Each keyword is searched on every selected source (see 'Job sources') and returns up to 'Max jobs per search' listings per source and country.",
            "items": {
              "type": "string"
            }
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "City, region or country, e.g. 'Berlin', 'London, England', 'United States', 'Remote'. Used for LinkedIn and the job boards. Leave empty and use 'Countries' to search country by country, or leave both empty for worldwide."
          },
          "countries": {
            "title": "Countries",
            "type": "array",
            "description": "Optional ISO country codes, e.g. [\"US\", \"DE\", \"NL\", \"GB\"], or 'EU' (27 EU countries) / 'EUROPE' (EU + UK, Switzerland, Norway, Iceland, Liechtenstein). If 'Location' is empty, LinkedIn is searched once per country. 'DE' also searches the German Federal Employment Agency (Bundesagentur für Arbeit) and 'SE' the Swedish Public Employment Service (Arbetsförmedlingen), if those sources are selected.",
            "items": {
              "type": "string"
            }
          },
          "sources": {
            "title": "Job sources",
            "type": "array",
            "description": "Where to search the keywords. Empty = LinkedIn, plus Bundesagentur für Arbeit / Arbetsförmedlingen when 'Countries' contains DE / SE. Remote OK, We Work Remotely and Arbeitnow are only searched when selected here (their feeds hold their newest jobs; keywords are matched on title and tags).",
            "items": {
              "type": "string",
              "enum": [
                "linkedin",
                "arbeitsagentur",
                "jobtech",
                "arbeitnow",
                "remoteok",
                "weworkremotely"
              ],
              "enumTitles": [
                "LinkedIn Jobs (worldwide, US + Europe)",
                "Bundesagentur für Arbeit (Germany, needs country DE)",
                "Arbetsförmedlingen / JobTech (Sweden, needs country SE)",
                "Arbeitnow (Germany / Europe, English-friendly tech jobs)",
                "Remote OK (remote jobs, worldwide)",
                "We Work Remotely (remote jobs, worldwide)"
              ]
            }
          },
          "geoId": {
            "title": "LinkedIn geoId (optional)",
            "type": "string",
            "description": "Optional LinkedIn location id (the 'geoId' value in a LinkedIn job search URL), e.g. 103644278 for the United States. Overrides LinkedIn's interpretation of 'Location'."
          },
          "searchUrls": {
            "title": "LinkedIn search URLs",
            "type": "array",
            "description": "Optional: paste LinkedIn job search URLs (linkedin.com/jobs/search/?keywords=...&location=...&f_TPR=...). All filters in the URL are kept.",
            "items": {
              "type": "string"
            }
          },
          "maxResultsPerQuery": {
            "title": "Max jobs per search",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Maximum jobs per keyword, per source and per country (LinkedIn shows at most ~1000 per search). You pay per job, so this caps the cost.",
            "default": 50
          },
          "datePosted": {
            "title": "Date posted",
            "enum": [
              "any",
              "24h",
              "week",
              "month"
            ],
            "type": "string",
            "description": "Only jobs posted within this period. Applies to all sources.",
            "default": "any"
          },
          "workplaceTypes": {
            "title": "Workplace type",
            "type": "array",
            "description": "Only these workplace types (empty = all). Applies to all sources.",
            "items": {
              "type": "string",
              "enum": [
                "remote",
                "hybrid",
                "onsite"
              ],
              "enumTitles": [
                "Remote",
                "Hybrid",
                "On-site"
              ]
            }
          },
          "jobTypes": {
            "title": "Job type (LinkedIn)",
            "type": "array",
            "description": "LinkedIn job type filter (empty = all).",
            "items": {
              "type": "string",
              "enum": [
                "full-time",
                "part-time",
                "contract",
                "temporary",
                "internship",
                "volunteer",
                "other"
              ],
              "enumTitles": [
                "Full-time",
                "Part-time",
                "Contract",
                "Temporary",
                "Internship",
                "Volunteer",
                "Other"
              ]
            }
          },
          "experienceLevels": {
            "title": "Experience level (LinkedIn)",
            "type": "array",
            "description": "LinkedIn experience level filter (empty = all).",
            "items": {
              "type": "string",
              "enum": [
                "internship",
                "entry",
                "associate",
                "mid-senior",
                "director",
                "executive"
              ],
              "enumTitles": [
                "Internship",
                "Entry level",
                "Associate",
                "Mid-Senior level",
                "Director",
                "Executive"
              ]
            }
          },
          "sortBy": {
            "title": "Sort LinkedIn results by",
            "enum": [
              "relevance",
              "date"
            ],
            "type": "string",
            "description": "Order of LinkedIn search results.",
            "default": "relevance"
          },
          "jobDetails": {
            "title": "Full job details",
            "type": "boolean",
            "description": "true = open every LinkedIn and Bundesagentur für Arbeit job for the full description (LinkedIn also: seniority, employment type, industries, applicant count, salary; same price). false = only the search-result data, faster.",
            "default": true
          },
          "companies": {
            "title": "Companies (career sites)",
            "type": "array",
            "description": "Company names, career-board slugs or career-page URLs. A name is looked up on Greenhouse, Lever, Ashby, Workable, SmartRecruiters, Recruitee, Personio, Teamtailor, BambooHR and Breezy HR and all open jobs are returned. Workday: paste the career-site URL (e.g. 'https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite'). Any other career-page URL is read for schema.org JobPosting data (robots.txt respected). Examples: 'airbnb', 'Hugging Face', 'https://jobs.lever.co/spotify', 'personio:tado', 'recruitee:bunq'. Use 'platform:slug' to force one platform.",
            "items": {
              "type": "string"
            }
          },
          "maxResultsPerCompany": {
            "title": "Max jobs per company",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Maximum jobs per company (newest first).",
            "default": 100
          },
          "companyJobKeywords": {
            "title": "Company jobs: title keywords",
            "type": "array",
            "description": "Only company jobs whose title contains one of these words, e.g. [\"engineer\", \"data\"]. Empty = all jobs. On Workday these words are also used as the site search.",
            "items": {
              "type": "string"
            }
          },
          "companyJobLocation": {
            "title": "Company jobs: location contains",
            "type": "string",
            "description": "Only company jobs whose location contains this text; comma-separated for several, e.g. 'London, Remote'. Empty = all locations."
          },
          "atsPlatforms": {
            "title": "Career-site platforms to check",
            "type": "array",
            "description": "Platforms to look up a company name on (empty = all ten). Workday and other URLs are always detected from the URL.",
            "items": {
              "type": "string",
              "enum": [
                "greenhouse",
                "lever",
                "ashby",
                "workable",
                "smartrecruiters",
                "recruitee",
                "personio",
                "teamtailor",
                "bamboohr",
                "breezy"
              ],
              "enumTitles": [
                "Greenhouse",
                "Lever",
                "Ashby",
                "Workable",
                "SmartRecruiters",
                "Recruitee",
                "Personio",
                "Teamtailor",
                "BambooHR",
                "Breezy HR"
              ]
            }
          },
          "extractSalary": {
            "title": "Extract salary from description",
            "type": "boolean",
            "description": "If the posting has no structured salary, read an explicit pay range (e.g. '$120,000 - $150,000') from the description into salaryMin / salaryMax / salaryCurrency / salaryPeriod.",
            "default": true
          },
          "includeDescriptionHtml": {
            "title": "Include description HTML",
            "type": "boolean",
            "description": "Also return the original description HTML (descriptionHtml). The plain-text description is always included.",
            "default": false
          },
          "allowResidentialProxy": {
            "title": "Allow residential proxy fallback",
            "type": "boolean",
            "description": "If LinkedIn blocks the direct and datacenter routes, retry through Apify residential proxy. Included in the price. All other sources are always requested directly.",
            "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
                  },
                  "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}