{
  "openapi": "3.0.1",
  "info": {
    "title": "Linkedin Jobs Scraper",
    "description": "Scrape LinkedIn job listings without API keys, login, or browser. Extract titles, companies, locations, salaries, descriptions, and more from public job search pages. Fast HTTP-based scraping with rich filters.",
    "version": "0.0",
    "x-build-id": "SHQubIvlzgIX2pLNw"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/labrat011~linkedin-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-labrat011-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/labrat011~linkedin-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-labrat011-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/labrat011~linkedin-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-labrat011-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": "🔍 Keywords",
            "type": "string",
            "description": "Job search keywords (e.g. 'python developer', 'data engineer', 'sales manager'). For a single search. Use Keywords List below for batch mode."
          },
          "location": {
            "title": "📍 Location",
            "type": "string",
            "description": "Location to search (e.g. 'United States', 'London, UK', 'Remote'). For a single search. Use Locations List below for batch mode."
          },
          "keywordsList": {
            "title": "📋 Keywords List (Batch Mode)",
            "type": "array",
            "description": "Run multiple keyword searches in one go. Each keyword is combined with every location in Locations List — e.g. ['python developer', 'data engineer'] x ['New York', 'Remote'] = 4 searches. Overrides the single Keywords field when provided.",
            "items": {
              "type": "string"
            }
          },
          "locationsList": {
            "title": "🗺️ Locations List (Batch Mode)",
            "type": "array",
            "description": "List of locations to search across in batch mode. Combined with every entry in Keywords List. Overrides the single Location field when provided.",
            "items": {
              "type": "string"
            }
          },
          "geoId": {
            "title": "🌐 Geo ID (optional)",
            "type": "string",
            "description": "LinkedIn geographic ID for precise location targeting (e.g. 103644278 for United States). Overrides text location when provided."
          },
          "companyFilter": {
            "title": "🏢 Company Filter",
            "type": "array",
            "description": "Only return jobs from specific companies. Enter company names or LinkedIn URL slugs (e.g. 'google', 'stripe', 'openai'). Leave empty to return jobs from all companies.",
            "items": {
              "type": "string"
            }
          },
          "datePosted": {
            "title": "📅 Date Posted",
            "enum": [
              "",
              "past_24_hours",
              "past_week",
              "past_month"
            ],
            "type": "string",
            "description": "Filter jobs by how recently they were posted.",
            "default": ""
          },
          "jobType": {
            "title": "💼 Job Type",
            "enum": [
              "",
              "F",
              "P",
              "C",
              "T",
              "V",
              "I",
              "O"
            ],
            "type": "string",
            "description": "Filter by employment type.",
            "default": ""
          },
          "experienceLevel": {
            "title": "🎓 Experience Level",
            "enum": [
              "",
              "1",
              "2",
              "3",
              "4",
              "5",
              "6"
            ],
            "type": "string",
            "description": "Filter by seniority level.",
            "default": ""
          },
          "workType": {
            "title": "🏠 Work Arrangement",
            "enum": [
              "",
              "1",
              "2",
              "3"
            ],
            "type": "string",
            "description": "Filter by on-site, remote, or hybrid.",
            "default": ""
          },
          "salary": {
            "title": "💰 Minimum Salary (USD)",
            "enum": [
              "",
              "1",
              "2",
              "3",
              "4",
              "5",
              "6",
              "7",
              "8",
              "9"
            ],
            "type": "string",
            "description": "Filter by minimum annual salary. Only applies to jobs where LinkedIn shows salary data.",
            "default": ""
          },
          "fetchJobDetails": {
            "title": "📄 Fetch Full Job Details",
            "type": "boolean",
            "description": "Loads each job's detail page to extract: full description (text + HTML), seniority level, employment type, job function, industry, applicant count, and salary when LinkedIn shows it. Adds one request per job — higher cost and runtime, so enable only when you need these fields.",
            "default": false
          },
          "fetchCompanyDetails": {
            "title": "🏢 Fetch Company Details (Employee Count)",
            "type": "boolean",
            "description": "Also opens each company's LinkedIn page to extract the registered employee count (companyEmployeeCount). Requires Fetch Full Job Details. Results are cached per company within the run to minimize extra requests. Note: company website, description, and leadership/founders are not available to guests and are not returned.",
            "default": false
          },
          "titleOnly": {
            "title": "🔤 Match Keywords in Title Only",
            "type": "boolean",
            "description": "When enabled, only returns jobs where the search keyword appears in the job title. By default, LinkedIn searches the full posting (title + description + other fields), which can return jobs where your keyword only appears in the description. Enable this to get results strictly matching your keyword in the title.",
            "default": false
          },
          "maxResults": {
            "title": "📊 Max Results",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Maximum total job listings to return. LinkedIn caps search results at 1,000 per query. Free users are limited to 25 per run.",
            "default": 100
          },
          "maxResultsPerSearch": {
            "title": "🔢 Max Results Per Search (Batch Mode)",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "In batch mode (Keywords List x Locations List), this limits results per combination. Example: 3 keywords x 2 locations x 50 per search = up to 300 total results.",
            "default": 100
          },
          "proxyConfiguration": {
            "title": "🔒 Proxy Configuration",
            "type": "object",
            "description": "Proxy settings. Residential proxies give the best success rate. Without proxies, LinkedIn may block requests."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}