{
  "openapi": "3.0.1",
  "info": {
    "title": "Career Site Jobs Scraper: Teamtailor, Greenhouse, Lever",
    "description": "Get open jobs from company career pages in one clean format. Use your own company list or search our directory of over 10,000 companies, 2,100 in the Nordics. Works with Teamtailor, Greenhouse, Lever, Ashby, Recruitee, Personio, Varbi, ReachMee, HR-manager and EasyCruit. $5 per 1,000 jobs.",
    "version": "0.1",
    "x-build-id": "xxkw8TDuMA5nO1PY7"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/vindr~eu-career-site-jobs/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-vindr-eu-career-site-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/vindr~eu-career-site-jobs/runs": {
      "post": {
        "operationId": "runs-sync-vindr-eu-career-site-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/vindr~eu-career-site-jobs/run-sync": {
      "post": {
        "operationId": "run-sync-vindr-eu-career-site-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": "Company career sites",
            "type": "array",
            "description": "Career pages you want jobs from, one per line. Links to the job board itself work (<code>https://jobs.lever.co/spotify</code>, <code>https://ki.varbi.com</code>), and so do career pages on a company's own domain (<code>https://careers.voi.com</code>). You can also write <code>greenhouse:stripe</code>, <code>varbi:su</code>, <code>hrmanager:kreftforeningen</code>, <code>easycruit:molde</code> and so on. Leave empty if you only want to use the company directory below.",
            "items": {
              "type": "string"
            }
          },
          "useDirectory": {
            "title": "Search the company directory",
            "type": "boolean",
            "description": "Also look for jobs at thousands of companies in our built-in directory, so you don't need your own company list. Use the Countries filter to pick a region, for example <code>NORDICS</code>. The directory is refreshed regularly from public data.",
            "default": false
          },
          "directoryPlatforms": {
            "title": "Only these job board systems",
            "type": "array",
            "description": "Limit the directory to some systems. Leave empty to use all of them.",
            "items": {
              "type": "string",
              "enum": [
                "teamtailor",
                "greenhouse",
                "lever",
                "ashby",
                "recruitee",
                "personio",
                "varbi",
                "reachmee",
                "hrmanager",
                "easycruit"
              ],
              "enumTitles": [
                "Teamtailor",
                "Greenhouse",
                "Lever",
                "Ashby",
                "Recruitee",
                "Personio",
                "Varbi",
                "ReachMee",
                "HR-manager",
                "EasyCruit"
              ]
            }
          },
          "companyNameContains": {
            "title": "Company name contains",
            "type": "array",
            "description": "Only use directory companies whose name contains one of these, for example \"bank\" or \"health\".",
            "items": {
              "type": "string"
            }
          },
          "maxCompanies": {
            "title": "Max companies from the directory",
            "minimum": 0,
            "type": "integer",
            "description": "Check at most this many directory companies, starting with the ones that have the most open jobs. Use 0 for no limit.",
            "default": 0
          },
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "Only keep jobs with at least one of these words in the title. Not case sensitive. Leave empty to get all jobs.",
            "items": {
              "type": "string"
            }
          },
          "searchInDescription": {
            "title": "Look for keywords in the description too",
            "type": "boolean",
            "description": "Off by default, so keywords are only matched against the job title.",
            "default": false
          },
          "excludeKeywords": {
            "title": "Exclude keywords",
            "type": "array",
            "description": "Skip jobs with any of these words in the title, for example \"intern\" or \"senior\".",
            "items": {
              "type": "string"
            }
          },
          "countries": {
            "title": "Countries",
            "type": "array",
            "description": "Country codes to keep, like NO, SE, DE or GB. Use <code>EU</code> for all EU and EEA countries, or <code>NORDICS</code> for Norway, Sweden, Denmark, Finland and Iceland. Jobs without a clear country are skipped when you use this filter.",
            "items": {
              "type": "string"
            }
          },
          "locationContains": {
            "title": "Location contains",
            "type": "array",
            "description": "Only keep jobs where the location mentions one of these, for example \"Oslo\" or \"Berlin\".",
            "items": {
              "type": "string"
            }
          },
          "workplaceTypes": {
            "title": "Workplace type",
            "type": "array",
            "description": "Only keep remote, hybrid or on-site jobs. Leave empty to keep all of them.",
            "items": {
              "type": "string",
              "enum": [
                "remote",
                "hybrid",
                "onsite",
                "unknown"
              ],
              "enumTitles": [
                "Remote",
                "Hybrid",
                "On-site",
                "Not stated"
              ]
            }
          },
          "departments": {
            "title": "Department contains",
            "type": "array",
            "description": "Only keep jobs where the department or team contains one of these, for example \"engineering\" or \"sales\".",
            "items": {
              "type": "string"
            }
          },
          "postedWithinDays": {
            "title": "Posted within (days)",
            "minimum": 0,
            "type": "integer",
            "description": "Only keep jobs posted in the last N days. Use 0 for no limit.",
            "default": 0
          },
          "maxJobsPerCompany": {
            "title": "Max jobs per company",
            "minimum": 0,
            "type": "integer",
            "description": "Use 0 for no limit.",
            "default": 0
          },
          "maxJobs": {
            "title": "Max jobs in total",
            "minimum": 0,
            "type": "integer",
            "description": "The run stops after saving this many jobs. Use 0 for no limit.",
            "default": 0
          },
          "includeDescription": {
            "title": "Include job descriptions",
            "type": "boolean",
            "description": "Includes the full job description as HTML and plain text. Turn it off if you only need the basics and want smaller files.",
            "default": true
          },
          "redactContactDetails": {
            "title": "Remove contact details",
            "type": "boolean",
            "description": "Removes email addresses and phone numbers from job descriptions, so you don't end up storing personal contact data. We recommend leaving this on.",
            "default": true
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 32,
            "type": "integer",
            "description": "How many companies to fetch at the same time. Each site is still rate limited, so raising this mostly helps with long lists.",
            "default": 16
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}