{
  "openapi": "3.0.1",
  "info": {
    "title": "LinkedIn Jobs Scraper - Salary, Skills & Applicants",
    "description": "Scrape LinkedIn job postings by keyword, location and date posted, no login. 31 fields per job: company, salary min and max, applicant count, benefits, full description, skills, seniority, employment type, job function and industry. Each job ID once per run.",
    "version": "1.0",
    "x-build-id": "XdA0yohFJD3h6bzAC"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/parseforge~linkedin-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-parseforge-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/parseforge~linkedin-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-parseforge-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/parseforge~linkedin-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-parseforge-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": {
          "searchQuery": {
            "title": "Job title or keyword",
            "type": "string",
            "description": "Job title or keywords to search for. A company name here is treated as a keyword; use Company ID to get one company's jobs only."
          },
          "location": {
            "title": "City, state, or region",
            "type": "string",
            "description": "City, state, country, or 'Remote'"
          },
          "companyId": {
            "title": "Company ID (optional)",
            "type": "array",
            "description": "LinkedIn numeric company IDs. Returns only jobs posted by these companies. To find an ID, filter by company on linkedin.com/jobs and copy the number after f_C= in the address bar, for example 1441 for Google. Can be combined with a search query.",
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "Maximum jobs",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "How many jobs to collect per run."
          },
          "datePosted": {
            "title": "Date Posted",
            "enum": [
              "anyTime",
              "pastDay",
              "pastWeek",
              "pastMonth"
            ],
            "type": "string",
            "description": "Filter jobs by when they were posted",
            "default": "anyTime"
          },
          "jobType": {
            "title": "Job Type",
            "type": "array",
            "description": "Keep only these employment types. Applied by the Actor after it reads each job page (LinkedIn's logged-out search ignores this filter). Jobs whose page does not state an employment type are dropped when this is set.",
            "items": {
              "type": "string",
              "enum": [
                "fullTime",
                "partTime",
                "contract",
                "temporary",
                "internship",
                "volunteer",
                "other"
              ],
              "enumTitles": [
                "Full-time",
                "Part-time",
                "Contract",
                "Temporary",
                "Internship",
                "Volunteer",
                "Other"
              ]
            },
            "default": []
          },
          "experienceLevel": {
            "title": "Experience Level",
            "type": "array",
            "description": "Keep only these seniority levels. Applied by the Actor after it reads each job page (LinkedIn's logged-out search ignores this filter). Jobs listed as 'Not Applicable' or with no level are dropped when this is set.",
            "items": {
              "type": "string",
              "enum": [
                "internship",
                "entryLevel",
                "associate",
                "midSenior",
                "director",
                "executive"
              ],
              "enumTitles": [
                "Internship",
                "Entry level",
                "Associate",
                "Mid-Senior level",
                "Director",
                "Executive"
              ]
            },
            "default": []
          },
          "workplaceType": {
            "title": "Workplace Type",
            "type": "array",
            "description": "Keep only on-site, remote or hybrid jobs. Applied by the Actor after it reads each job page, using the workplace wording on the page (LinkedIn's logged-out search ignores this filter). Jobs with no workplace wording are dropped when this is set.",
            "items": {
              "type": "string",
              "enum": [
                "onSite",
                "remote",
                "hybrid"
              ],
              "enumTitles": [
                "On-site",
                "Remote",
                "Hybrid"
              ]
            },
            "default": []
          },
          "easyApplyOnly": {
            "title": "Easy Apply Only",
            "type": "boolean",
            "description": "Only return jobs with LinkedIn Easy Apply",
            "default": false
          },
          "salary": {
            "title": "Minimum Salary",
            "enum": [
              "",
              "40000",
              "60000",
              "80000",
              "100000",
              "120000",
              "140000",
              "160000",
              "180000",
              "200000"
            ],
            "type": "string",
            "description": "Keep only jobs whose published USD salary (lower end of the range, hourly and monthly pay converted to yearly) is at least this amount. Applied by the Actor after it reads each job page. Jobs with no published USD salary are dropped when this is set."
          },
          "sortBy": {
            "title": "Sort By",
            "enum": [
              "relevant",
              "recent"
            ],
            "type": "string",
            "description": "Most recent sorts the final results by posted date, newest first. The Actor does this itself, because LinkedIn's logged-out search ignores the sort order. With Most recent, results are written at the end of the run.",
            "default": "relevant"
          },
          "scrapeJobDetails": {
            "title": "Scrape Full Job Details",
            "type": "boolean",
            "description": "Open each job page to fill all 31 fields: description, salary, skills, seniority, employment type, company details. Keep this on. When off, the run skips the job pages and currently returns only the job ID and link for each job. It is turned on automatically when you use the job type, experience, workplace or salary filters.",
            "default": true
          },
          "extractSkills": {
            "title": "Extract Skills",
            "type": "boolean",
            "description": "Parse skills from job descriptions"
          },
          "includeBlockedJobs": {
            "title": "Include Blocked Jobs",
            "type": "boolean",
            "description": "Include jobs where full details could not be retrieved. Returns basic info with isBlocked=true flag."
          },
          "includeRawHtml": {
            "title": "Include Raw HTML",
            "type": "boolean",
            "description": "Include the raw HTML of the job detail page in the output for custom parsing."
          },
          "maxConcurrency": {
            "title": "Max Concurrency",
            "minimum": 1,
            "maximum": 70,
            "type": "integer",
            "description": "Maximum number of parallel requests. Lower if you experience blocks.",
            "default": 10
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}