{
  "openapi": "3.0.1",
  "info": {
    "title": "LinkedIn Jobs Scraper By Multiple Keywords & Locations",
    "description": "LinkedIn Jobs Scraper: Find job listings using multiple keywords and locations. Extract job titles, companies, locations, descriptions, salaries, employment types, posting dates, and URLs for recruitment research, talent sourcing, job market analysis, and hiring intelligence.",
    "version": "0.1",
    "x-build-id": "fyu5k9RmCsm6CeyLt"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/api-empire~linkedin-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-api-empire-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/api-empire~linkedin-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-api-empire-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/api-empire~linkedin-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-api-empire-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": {
          "jobTitles": {
            "title": "💼 Job titles to search",
            "type": "array",
            "description": "One job title per line — each is searched against every location below.\n\nExamples:\n• Software Engineer\n• Data Analyst\n• Product Manager\n\n📋 Bulk paste supported. Duplicates and blank lines are ignored.",
            "items": {
              "type": "string"
            }
          },
          "searchLocations": {
            "title": "🗺️ Locations to search",
            "type": "array",
            "description": "One location per line — each is paired with every job title above.\n\nExamples:\n• Austin, Texas, United States\n• Chicago, Illinois, United States\n• London, England, United Kingdom\n\n🎯 City-level values work best with the search radius below; country-level values ignore it in practice.",
            "items": {
              "type": "string"
            }
          },
          "searchRadiusMiles": {
            "title": "📏 Search radius (miles)",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "How far around each location to look, 1–100 miles. LinkedIn genuinely honours this — verified: the same query at 10 miles and at 100 miles returned result sets that shared 0 of 20 jobs, while repeating the identical query twice shared 10 of 11.\n\nLeave at 0 to let LinkedIn choose its own default radius.",
            "default": 0
          },
          "maxJobsPerSearch": {
            "title": "🎯 Jobs per search",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Budget for EACH title × location pair, not for the whole run. With 3 titles × 2 cities and a budget of 50, the run collects up to 300 jobs before cross-search duplicates are removed.\n\n⚠️ LinkedIn's public endpoint stops paginating near 1,000 results per individual search, so 1,000 is the real per-search ceiling.",
            "default": 20
          },
          "titleIncludes": {
            "title": "✅ Title must contain (any of)",
            "type": "array",
            "description": "Keep only jobs whose title contains at least one of these words.\n\nExample: `engineer`, `developer` keeps \"Software Engineer\" and \"Backend Developer\" but drops \"Marketing Lead\".\n\nLeave empty to keep every title.",
            "items": {
              "type": "string"
            }
          },
          "titleExcludes": {
            "title": "🚫 Title must not contain (any of)",
            "type": "array",
            "description": "Drop any job whose title contains one of these words. Exclusions win over the include list above.\n\nExample: `senior`, `principal`, `manager` strips seniority you are not hiring for.\n\nLeave empty to exclude nothing.",
            "items": {
              "type": "string"
            }
          },
          "companyInput": {
            "title": "🏢 Companies to scrape",
            "type": "array",
            "description": "Which employers do you want jobs from? Mix and match:\n• Name — e.g. Google\n• URL — e.g. https://www.linkedin.com/company/google/\n• ID — e.g. 1441\n\n📋 Bulk list supported. Leave empty to run the title × location matrix instead.",
            "items": {
              "type": "string"
            }
          },
          "publishedAt": {
            "title": "🕐 Date posted",
            "enum": [
              "",
              "r86400",
              "r604800",
              "r2592000"
            ],
            "type": "string",
            "description": "Only return jobs posted within this time window. This filter IS honored by LinkedIn. Choose Any time to disable it.",
            "default": ""
          },
          "workType": {
            "title": "🏠 On-site / Remote",
            "enum": [
              "",
              "1",
              "2",
              "3"
            ],
            "type": "string",
            "description": "Restrict by work arrangement. Choose Any to skip this filter.",
            "default": ""
          },
          "contractType": {
            "title": "📋 Job type",
            "enum": [
              "",
              "F",
              "P",
              "C",
              "T",
              "I",
              "V"
            ],
            "type": "string",
            "description": "Restrict by employment type. Choose Any to skip this filter.",
            "default": ""
          },
          "experienceLevel": {
            "title": "📈 Experience level",
            "enum": [
              "",
              "1",
              "2",
              "3",
              "4",
              "5",
              "6"
            ],
            "type": "string",
            "description": "Restrict by required seniority. Choose Any to skip this filter.",
            "default": ""
          },
          "geoId": {
            "title": "🌐 Geographic region (geoId)",
            "type": "string",
            "description": "Optional LinkedIn location geoId sent with every search (numeric ID).\n\n⚠️ A geoId applies to ALL locations in the matrix, so it is usually best left empty when you are searching several cities — the location text alone is more precise per pair.\n\n🏙️ To get a custom geoId, run the search on LinkedIn and copy the number from the URL bar. Custom values are supported.",
            "default": ""
          },
          "keywords": {
            "title": "🔎 Job keywords (single)",
            "type": "string",
            "description": "One keyword string. Used only when the Job titles list above is empty.",
            "default": "Software Engineer"
          },
          "location": {
            "title": "📍 Location (single)",
            "type": "string",
            "description": "One location string. Used only when the Locations list above is empty.",
            "default": "United States"
          },
          "maxJobs": {
            "title": "🔢 Maximum jobs (legacy single search)",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Total cap for the legacy single search and for company runs (1–1,000). When the title × location matrix is active, the per-search budget above governs instead and this value is not used as a global cap.",
            "default": 20
          },
          "sortOrder": {
            "title": "📊 Sort order (not honored by LinkedIn)",
            "enum": [
              "",
              "relevance",
              "date"
            ],
            "type": "string",
            "description": "⚠️ Kept for backward compatibility only. LinkedIn's public job endpoint IGNORES sorting — verified: the result sets for Default, Most relevant and Most recent are identical. Any value is accepted and the run logs a notice; results come back in LinkedIn's own order. Use the Date posted filter to restrict to recent jobs instead.",
            "default": ""
          },
          "proxyConfiguration": {
            "title": "🛡️🔌 Apify Proxy controls",
            "type": "object",
            "description": "Enable Apify Proxy and pick proxy groups if LinkedIn blocks or throttles you. Leave off to run direct."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}