{
  "openapi": "3.0.1",
  "info": {
    "title": "Advanced LinkedIn Jobs Scraper — No Cookies, Bulk, Company Data",
    "description": "Scrape LinkedIn jobs in bulk by title, location, company, seniority, salary, industry and posting date. Every job: full description, company card (website, size, industry, funding) and recruiter. No cookies, no 1,000-job cap, 1,000 jobs in ~30 s, free count first. $0.80 per 1,000 jobs.",
    "version": "0.1",
    "x-build-id": "G6gUtk3zedaAJ0cxa"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/b2bsearch~linkedin-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-b2bsearch-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/b2bsearch~linkedin-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-b2bsearch-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/b2bsearch~linkedin-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-b2bsearch-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",
            "maxItems": 10,
            "type": "array",
            "description": "Job titles to look for, one per line; a job whose title contains any line is kept. Whole words, any case. A line may use boolean search: AND, OR, NOT, \"exact phrase\", parentheses (for example: (backend OR platform) engineer NOT intern). Up to 10 lines. Example values: software engineer, data engineer.",
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "Where the job is: countries by name or two-letter code (United States, Germany, gb, UK), US states (California), cities (Berlin; Austin, Texas). Any of them. A search needs at least one country or a company; a city or a title alone is not enough. Up to 60.",
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "Max jobs",
            "minimum": 0,
            "maximum": 10000,
            "type": "integer",
            "description": "How many jobs to deliver in this run, across all titles and locations together (default 100; 0 = up to 10,000). This is your spend cap: $0.80 per 1,000 jobs delivered. Free Apify plan: up to 100.",
            "default": 100
          },
          "previewOnly": {
            "title": "Preview only: count and breakdown, free",
            "type": "boolean",
            "description": "Returns how many jobs match and their breakdown by country, seniority, employment type, industry, top employers, titles and cities. No job rows, no charge. Run it first to size a search, then turn it off to get the jobs.",
            "default": false
          },
          "compact": {
            "title": "Compact rows (for AI agents)",
            "type": "boolean",
            "description": "Returns a short row: every plain column, long text (the description) cut to 300 characters, nested blocks left out. Made for AI agents and LLM pipelines with a context limit. Same price. Off by default.",
            "default": false
          },
          "company": {
            "title": "Companies",
            "maxItems": 100,
            "type": "array",
            "description": "Only jobs at these employers: company page URL, page slug, website domain (stripe.com), numeric id or a company name (matched as part of the name). A company list alone is a complete search. Up to 100.",
            "items": {
              "type": "string"
            }
          },
          "postedLimit": {
            "title": "Posted in the last",
            "enum": [
              "any",
              "1h",
              "24h",
              "week",
              "month",
              "3months",
              "6months"
            ],
            "type": "string",
            "description": "Only jobs posted within this window, counted from the start of the run. The database keeps 180 days of postings and is reloaded after each data update; every row says what date the data runs to.",
            "default": "any"
          },
          "experienceLevel": {
            "title": "Seniority level",
            "uniqueItems": true,
            "type": "array",
            "description": "Keep these seniority levels, as the posting states them. Any of them.",
            "items": {
              "type": "string",
              "enum": [
                "internship",
                "entry",
                "associate",
                "mid-senior",
                "director",
                "executive",
                "not-applicable"
              ],
              "enumTitles": [
                "Internship",
                "Entry level",
                "Associate",
                "Mid-Senior level",
                "Director",
                "Executive",
                "Not applicable"
              ]
            }
          },
          "employmentType": {
            "title": "Employment type",
            "uniqueItems": true,
            "type": "array",
            "description": "Keep these employment types. Any of them.",
            "items": {
              "type": "string",
              "enum": [
                "full-time",
                "part-time",
                "contract",
                "internship",
                "temporary",
                "volunteer",
                "other"
              ],
              "enumTitles": [
                "Full-time",
                "Part-time",
                "Contract",
                "Internship",
                "Temporary",
                "Volunteer",
                "Other"
              ]
            }
          },
          "industryIds": {
            "title": "Industries",
            "type": "array",
            "description": "Only jobs in these industries, by name (Software Development, Hospitals and Health Care) or by numeric industry id (4 for Software Development). An industry covers its sub-industries. Up to 30.",
            "items": {
              "type": "string"
            }
          },
          "salary": {
            "title": "Salary ranges (per year)",
            "type": "array",
            "description": "Yearly salary ranges, one per line: 100k+, 60k-80k or 100000-150000. Keeps postings whose stated pay reaches the lowest floor (and stays under the highest ceiling when every line has one). Postings without a stated salary never match: about one in seven states one.",
            "items": {
              "type": "string"
            }
          },
          "salaryCurrency": {
            "title": "Salary currency",
            "type": "string",
            "description": "Three-letter code the salary ranges are in (default USD). A posting is compared in its own currency.",
            "default": "USD"
          },
          "salaryOnly": {
            "title": "Only jobs with a salary",
            "type": "boolean",
            "description": "Keep only postings that state a salary (about one in seven overall; half in the Netherlands, two in five in China).",
            "default": false
          },
          "under10Applicants": {
            "title": "Few applicants",
            "type": "boolean",
            "description": "Keep postings in the lowest applicant bucket, fewer than 25 applicants. The data keeps applicant counts in buckets of 25, so this is the closest honest answer to \"under 10\".",
            "default": false
          },
          "excludeAgencies": {
            "title": "Leave out agencies and job boards",
            "type": "boolean",
            "description": "Drops postings by staffing and recruiting firms and job-board aggregators (by the posting's industry and by the employer's own card), and employers with far more postings than employees (at least 200 open, or 100 posted in 30 days, and more than two per employee). Off by default so the search reads like the source.",
            "default": false
          },
          "postedLimitDate": {
            "title": "Posted on or after",
            "type": "string",
            "description": "Only jobs posted on or after this date (YYYY-MM-DD). With \"Posted in the last\" too, the later of the two wins. Set it to your last run's date for a daily feed."
          },
          "recruiter": {
            "title": "Recruiter / hiring manager",
            "enum": [
              "card",
              "profile",
              "none"
            ],
            "type": "string",
            "description": "\"card\" (default, free): name, headline and profile URL of the recruiter when the posting names one (about one posting in nine; 28% in India, 17% in the UK, 7% in the US). \"profile\": their full career profile, $3.20 per 1,000 jobs that carry one. \"none\": leave the recruiter out.",
            "default": "card"
          },
          "employerHiring": {
            "title": "Add the employer's hiring pace (free)",
            "type": "boolean",
            "description": "Adds the employer's hiring signal to each job row, free: open postings now, postings in the last 7, 30 and 90 days, the date of its latest posting and its top titles of the last 30 days (employerOpenJobs, employerJobs7d/30d/90d, employerLastPostedAt, employerTopTitles30d). Tells a company scaling a team from one that posted once.",
            "default": false
          },
          "decisionMakers": {
            "title": "Add the employer's decision makers",
            "type": "boolean",
            "description": "After each job, adds the founders, C-level, VPs and directors of its employer as separate rows (each employer once per run): name, title, seniority, headline, profile URL, location, and the email on record when the contact tier is on. $3.20 per 1,000 people delivered; employers with nobody on record are free.",
            "default": false
          },
          "decisionMakerRoles": {
            "title": "Decision maker roles",
            "uniqueItems": true,
            "type": "array",
            "description": "Which levels count as a decision maker. Rows are ordered founder + CEO first, then other founders and CEOs, the rest of the C-level, VPs, directors. Default: all four.",
            "items": {
              "type": "string",
              "enum": [
                "founder",
                "cxo",
                "vp",
                "director"
              ],
              "enumTitles": [
                "Founders and owners",
                "C-level",
                "VPs",
                "Directors"
              ]
            }
          },
          "decisionMakersPerCompany": {
            "title": "Decision makers per employer",
            "minimum": 1,
            "maximum": 25,
            "type": "integer",
            "description": "How many people to add per employer, in rank order (default 3, maximum 25). Your spend cap per employer: $0.0032 per person.",
            "default": 3
          },
          "decisionMakerTitleKeywords": {
            "title": "Decision maker title keywords",
            "type": "array",
            "description": "Keep only decision makers whose job title contains any of these words, for example sales, engineering, talent (3-64 characters each, up to 10).",
            "items": {
              "type": "string"
            }
          },
          "descriptionType": {
            "title": "Job description",
            "enum": [
              "both",
              "text",
              "html",
              "none"
            ],
            "type": "string",
            "description": "What the description column carries: plain text and HTML (default), text only, HTML only, or none for small rows. Same price.",
            "default": "both"
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "date",
              "relevance"
            ],
            "type": "string",
            "description": "Accepted for compatibility with other job scrapers' saved inputs; jobs are always delivered newest first."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}