{
  "openapi": "3.0.1",
  "info": {
    "title": "LinkedIn Jobs Scraper - Company Data On Every Job",
    "description": "Scrape LinkedIn jobs with the employer's full company profile on every row, at no extra charge. Exact posting dates, applicant counts as numbers, and salary with its stated source. No login needed, and it splits the search to pass LinkedIn's 1,000-job limit.",
    "version": "0.0",
    "x-build-id": "WgMUkI0z01gS0eTOg"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/clearpath~linkedin-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-clearpath-linkedin-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/clearpath~linkedin-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-clearpath-linkedin-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/clearpath~linkedin-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-clearpath-linkedin-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": {
          "keywords": {
            "title": "Job title or keywords",
            "type": "string",
            "description": "What you are looking for, the way you would type it into LinkedIn. For example \"data engineer\" or \"remote python contract\"."
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "A city, region or country, in plain English. Matched against LinkedIn's own place list, so \"Berlin\", \"Bavaria\" and \"Germany\" all work and give different result sets."
          },
          "geoId": {
            "title": "LinkedIn location ID",
            "type": "string",
            "description": "Optional. Pins the search to one exact LinkedIn place and overrides the location above. Copy it from a LinkedIn jobs search address in your browser: it is the <code>geoId=</code> number. Use <code>92000000</code> for worldwide or <code>91000000</code> for the European Union.<br><b>Check it before you run:</b> LinkedIn does not reject an ID that does not exist, it just stops filtering by place, so a mistyped ID quietly returns jobs from anywhere. If you are not copying an ID, leave this empty and use the location field, which is checked against LinkedIn's place list for you."
          },
          "datePosted": {
            "title": "Posted within",
            "enum": [
              "anyTime",
              "pastMonth",
              "pastWeek",
              "past24Hours",
              "pastHour"
            ],
            "type": "string",
            "description": "Only return jobs posted inside this window.",
            "default": "anyTime"
          },
          "maxItems": {
            "title": "Maximum jobs",
            "minimum": 0,
            "type": "integer",
            "description": "How many jobs to return. LinkedIn serves at most 1,000 for any one search; ask for more and the search is split by location and posting date to reach past that.<br><b>0 means no limit</b>, so the run keeps going until the search is exhausted or your run budget stops it. Set a number here if you want a predictable cost."
          },
          "expandSearch": {
            "title": "Reach past LinkedIn's 1,000-job limit",
            "type": "boolean",
            "description": "LinkedIn returns at most 1,000 jobs for one search. When you ask for more, the search is split by location and then by posting date until it has enough. Results always start with LinkedIn's own top matches, so turning this off simply stops at 1,000.",
            "default": true
          },
          "companies": {
            "title": "Only these companies",
            "type": "array",
            "description": "Company names or LinkedIn company IDs. Names are matched against LinkedIn's own company list, so \"Google\" is enough. Leave empty for every employer.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "postedWithinMinutes": {
            "title": "Posted within (exact minutes)",
            "minimum": 1,
            "type": "integer",
            "description": "Optional, and finer than the choices above. Set 15 to catch jobs in the quarter hour since your last run. Overrides the window above."
          },
          "postedAfter": {
            "title": "Posted on or after",
            "type": "string",
            "description": "Drop anything posted before this date, written as 2026-09-01. Useful for a scheduled run that should only ever return what is new."
          },
          "easyApplyOnly": {
            "title": "Easy Apply jobs only",
            "type": "boolean",
            "description": "Only jobs you can apply to without leaving LinkedIn. Reduces the number of results.",
            "default": false
          },
          "under10ApplicantsOnly": {
            "title": "Under 10 applicants only",
            "type": "boolean",
            "description": "Only jobs with fewer than ten applicants so far. Reduces the number of results, often sharply.",
            "default": false
          },
          "titleInclude": {
            "title": "Job title must contain",
            "type": "array",
            "description": "Keep only jobs whose title contains at least one of these words. Leave empty to keep every title.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "titleExclude": {
            "title": "Job title must not contain",
            "type": "array",
            "description": "Drop jobs whose title contains any of these words, for example \"intern\" or \"senior\".",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "skipJobIds": {
            "title": "Skip these job IDs",
            "type": "array",
            "description": "Job IDs you already have. Useful for a scheduled run that should only return what is new.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "searchUrls": {
            "title": "LinkedIn search addresses",
            "type": "array",
            "description": "Paste one or more LinkedIn job search addresses instead of filling the fields above. When you use this, the keyword, location, posting-date window and company settings are taken from the address itself, so those fields are ignored. The title filters, \"Posted on or after\", the skip list and the output settings still apply.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "maxItemsPerSearch": {
            "title": "Maximum jobs per search",
            "minimum": 1,
            "type": "integer",
            "description": "When you paste several addresses, caps how many each one contributes so a single busy search cannot use up the whole run. Leave empty to let them compete."
          },
          "companyDetails": {
            "title": "Include the employer's company profile",
            "type": "boolean",
            "description": "Adds the employer's industry, size, headquarters, founding year, website, follower count and description to every row. Included at no extra charge. Turn it off only if you want the run to finish slightly sooner.",
            "default": true
          },
          "outputLanguage": {
            "title": "Output language",
            "enum": [
              "en-US",
              "de-DE",
              "fr-FR",
              "es-ES",
              "it-IT",
              "nl-NL",
              "pt-BR",
              "pl-PL"
            ],
            "type": "string",
            "description": "The language LinkedIn returns job text in. Affects wording such as posting dates, hiring labels and the seniority, employment type, job function and industry values. Job descriptions stay in whatever language the employer wrote them in.",
            "default": "en-US"
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}