{
  "openapi": "3.0.1",
  "info": {
    "title": "LinkedIn Job Scraper",
    "description": "Scrape public LinkedIn jobs with no login, cookies or API key. Get title, company, location, salary, workplace type, applicants, recruiter, skills and full description from search links, job links or titles. Bulk input, filters, auto proxy fallback. Export JSON, CSV or Excel.",
    "version": "1.0",
    "x-build-id": "lx8JVDF7QSEZkLjNz"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/data_minds~lnkedin-job-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-data_minds-lnkedin-job-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/data_minds~lnkedin-job-scraper/runs": {
      "post": {
        "operationId": "runs-sync-data_minds-lnkedin-job-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/data_minds~lnkedin-job-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-data_minds-lnkedin-job-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": {
          "urls": {
            "title": "🔗 LinkedIn links or job ids",
            "type": "array",
            "description": "Paste one or more LinkedIn job-search links, job links (linkedin.com/jobs/view/…), company links or plain job ids. Bulk input is supported and duplicates are removed. Search links keep their keywords, place and posted-date settings. Leave empty to search with the job titles and locations below.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "keywords": {
            "title": "💼 Job titles or keywords",
            "type": "array",
            "description": "Job titles or skills, one per line, e.g. python developer. Boolean search works, e.g. \"data engineer\" OR \"data scientist\" NOT intern. Each one is combined with every location below.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "🌍 Locations",
            "type": "array",
            "description": "City, region or country, e.g. Berlin, Germany. Leave empty to search worldwide. A place LinkedIn does not recognise is skipped with a warning instead of searching somewhere else.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "postedWithin": {
            "title": "⏰ Posted within",
            "type": "string",
            "description": "Only jobs posted within this time. Other values such as 36 (hours) or 2w can be typed in.",
            "default": "any"
          },
          "maxJobs": {
            "title": "📊 Max jobs",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Total number of jobs to save across all searches (0 = no cap; LinkedIn shows up to about 1,000 per search).",
            "default": 10
          },
          "fullDetails": {
            "title": "📄 Full job details",
            "type": "boolean",
            "description": "On: open every job for description, applicants, seniority, employment type, industry, recruiter and pay. Off: fast mode with title, company, location and date only (turned on automatically when a filter needs the job page).",
            "default": true
          },
          "extractInsights": {
            "title": "🧠 Description insights",
            "type": "boolean",
            "description": "Add skills, minimum years of experience, visa sponsorship and contact e-mails found in the job description.",
            "default": true
          },
          "companies": {
            "title": "🏢 Companies",
            "type": "array",
            "description": "Only jobs from these employers. Company names, LinkedIn company links or numeric company ids.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "excludeCompanies": {
            "title": "🚫 Skip companies",
            "type": "array",
            "description": "Drop jobs from these employers (company names).",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "jobTypes": {
            "title": "📝 Job types",
            "type": "array",
            "description": "Keep only these employment types. Each job is checked against its own page when that page can be read.",
            "items": {
              "type": "string",
              "enumSuggestedValues": [
                "Full-time",
                "Part-time",
                "Contract",
                "Temporary",
                "Internship",
                "Volunteer"
              ]
            },
            "default": []
          },
          "experienceLevels": {
            "title": "🪜 Experience levels",
            "type": "array",
            "description": "Keep only these seniority levels. Each job is checked against its own page when that page can be read.",
            "items": {
              "type": "string",
              "enumSuggestedValues": [
                "Internship",
                "Entry level",
                "Associate",
                "Mid-Senior level",
                "Director",
                "Executive"
              ]
            },
            "default": []
          },
          "workplaceTypes": {
            "title": "🏠 Workplace types",
            "type": "array",
            "description": "Keep only remote, hybrid or on-site jobs. The workplace type is worked out from the location, title and description, and the output says which one it came from.",
            "items": {
              "type": "string",
              "enumSuggestedValues": [
                "Remote",
                "Hybrid",
                "On-site"
              ]
            },
            "default": []
          },
          "industries": {
            "title": "🏭 Industries",
            "type": "array",
            "description": "Keep only jobs whose industry contains one of these words, e.g. Software Development.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "salaryMin": {
            "title": "💰 Minimum yearly salary",
            "minimum": 0,
            "type": "number",
            "description": "Keep only jobs paying at least this per year (hourly and monthly pay is converted). Jobs with no pay information are dropped when this is set."
          },
          "easyApply": {
            "title": "⚡ Easy Apply only",
            "type": "boolean",
            "description": "Only jobs you can apply to directly on LinkedIn.",
            "default": false
          },
          "under10Applicants": {
            "title": "🔥 Under 10 applicants",
            "type": "boolean",
            "description": "Only jobs with fewer than 10 applicants.",
            "default": false
          },
          "titleInclude": {
            "title": "✅ Title must contain",
            "type": "array",
            "description": "Keep a job only if its title contains at least one of these words or phrases.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "titleExclude": {
            "title": "⛔ Title must not contain",
            "type": "array",
            "description": "Drop a job if its title contains any of these words or phrases, e.g. intern.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "skipJobIds": {
            "title": "🆔 Skip job ids",
            "type": "array",
            "description": "Job ids you already have. Pass yesterday's ids to receive only new jobs.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "sortBy": {
            "title": "🔃 Sort order",
            "enum": [
              "relevance",
              "newest"
            ],
            "type": "string",
            "description": "Relevance keeps LinkedIn's order. Newest orders the jobs of each results page by posting date.",
            "default": "relevance"
          },
          "descriptionInclude": {
            "title": "🔍 Description must contain",
            "type": "array",
            "description": "Keep a job only if its description contains at least one of these words.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "descriptionExclude": {
            "title": "🙅 Description must not contain",
            "type": "array",
            "description": "Drop a job if its description contains any of these words.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "requireSalary": {
            "title": "💵 Only jobs with pay",
            "type": "boolean",
            "description": "Drop jobs that show no salary information.",
            "default": false
          },
          "salaryFromDescription": {
            "title": "🧾 Read pay from description",
            "type": "boolean",
            "description": "When LinkedIn shows no salary, look for a pay range written in the job description. The output says where each salary came from.",
            "default": true
          },
          "maxScanned": {
            "title": "🔭 Scan budget per search",
            "minimum": 1,
            "maximum": 20000,
            "type": "integer",
            "description": "With job type, level, workplace, industry, salary or description filters, stop a search after examining this many jobs.",
            "default": 3000
          },
          "concurrency": {
            "title": "🚀 Parallel connections",
            "minimum": 1,
            "maximum": 8,
            "type": "integer",
            "description": "How many job pages are opened at the same time (1-8). Higher is faster but more likely to be rate-limited.",
            "default": 4
          },
          "maxRetries": {
            "title": "🔁 Retries per request",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "How many times a failed request is retried before it is given up.",
            "default": 5
          },
          "requestGap": {
            "title": "⏳ Pause between requests",
            "minimum": 0,
            "maximum": 10,
            "type": "number",
            "description": "Seconds between requests, with random variation. The pause grows automatically when LinkedIn slows the run down.",
            "default": 0.6
          },
          "proxyConfiguration": {
            "title": "🌐 Proxy",
            "type": "object",
            "description": "Optional connection settings. Leave the default and the run adapts its connection automatically if LinkedIn limits requests.",
            "default": {
              "useApifyProxy": false
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}