{
  "openapi": "3.0.1",
  "info": {
    "title": "LinkedIn Jobs Scraper – Job Postings by Keyword & Place",
    "description": "Scrape public LinkedIn job postings for any keyword and place: title, company, location, posted date, link, full description, seniority, employment type, industries, applicants and salary. Filter by date posted, company, Easy Apply and under-10 applicants. No login, no key, no browser. Unofficial.",
    "version": "0.1",
    "x-build-id": "3tgcJOmXASSdmoITG"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/simple.actor~linkedin-jobs/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-simple.actor-linkedin-jobs",
        "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/simple.actor~linkedin-jobs/runs": {
      "post": {
        "operationId": "runs-sync-simple.actor-linkedin-jobs",
        "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/simple.actor~linkedin-jobs/run-sync": {
      "post": {
        "operationId": "run-sync-simple.actor-linkedin-jobs",
        "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 (one search per line)",
            "type": "array",
            "description": "What to search for, exactly as you would type it into LinkedIn's job search — \"software engineer\", \"registered nurse\", \"marketing manager\". Each line is searched in each place below. Leave it empty to list every job in a place. Note that LinkedIn's search matches loosely: \"nurse\" returns nursing jobs of every kind, and a quoted phrase or NOT is not honoured — use the title filters below to narrow the rows.",
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "Places (one per line)",
            "type": "array",
            "description": "Where to search — a city, region or country as LinkedIn names it (\"United States\", \"London, England, United Kingdom\", \"Texas, United States\"), or a LinkedIn geoId. Each place is resolved through LinkedIn's own place lookup and echoed on every row as searchLocation and searchGeoId, so you can see exactly what was searched; a place LinkedIn does not know is an error row, never a silent fallback. Leave it empty to search worldwide.",
            "items": {
              "type": "string"
            }
          },
          "maxJobs": {
            "title": "Jobs per search",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "How many jobs to return for each keyword-and-place search. LinkedIn shows at most 1,000 jobs for any search, so that is the ceiling; narrow the search (a city instead of a country, a shorter \"posted within\") to get different jobs rather than more of them. The jobs come in LinkedIn's own order.",
            "default": 100
          },
          "includeDescription": {
            "title": "Read each job's description",
            "type": "boolean",
            "description": "On, every job is read in full — description as text and HTML, seniority level, employment type, industries, applicant count, salary when stated, whether it applies on LinkedIn or on the employer's site, and whether it has closed. Off, the rows carry only what the search list shows (title, company, location, posted date, link), which is about ten times fewer requests and a faster run. The price per job is the same either way.",
            "default": true
          },
          "postedWithin": {
            "title": "Posted within",
            "type": "string",
            "description": "Only jobs posted within this long: \"24 hours\", \"3 days\", \"2 weeks\", \"90 minutes\". Any length works, down to a minute. Leave empty for any time."
          },
          "companies": {
            "title": "Only these companies",
            "type": "array",
            "description": "Limit the search to jobs posted by these companies — names (\"Google\", \"General Motors\") or LinkedIn's numeric company ids. A name is resolved through LinkedIn's own company lookup, and one it cannot resolve is an error row rather than a silently widened search.",
            "items": {
              "type": "string"
            }
          },
          "easyApplyOnly": {
            "title": "Easy Apply jobs only",
            "type": "boolean",
            "description": "Only jobs that take applications on LinkedIn itself.",
            "default": false
          },
          "underTenApplicantsOnly": {
            "title": "Under 10 applicants only",
            "type": "boolean",
            "description": "Only jobs LinkedIn marks as having fewer than ten applicants so far.",
            "default": false
          },
          "distanceMiles": {
            "title": "Distance from the place (miles)",
            "minimum": 5,
            "maximum": 100,
            "type": "integer",
            "description": "How far around a city to search, 5 to 100 miles. Leave empty for LinkedIn's default (about 25 miles). Has no effect on a region or a country."
          },
          "titleMustInclude": {
            "title": "Job title must include one of",
            "type": "array",
            "description": "Keep a job only if its title contains at least one of these words or phrases (case does not matter): [\"senior\", \"staff\", \"principal\"].",
            "items": {
              "type": "string"
            }
          },
          "titleMustNotInclude": {
            "title": "Job title must not include",
            "type": "array",
            "description": "Drop a job if its title contains any of these words or phrases (case does not matter): [\"intern\", \"manager\"].",
            "items": {
              "type": "string"
            }
          },
          "skipJobIds": {
            "title": "Skip these jobs",
            "type": "array",
            "description": "Job ids or job links you already have. They are left out before anything is read, so a run that repeats a search delivers and charges only what is new.",
            "items": {
              "type": "string"
            }
          },
          "jobUrls": {
            "title": "Specific jobs (links or ids)",
            "type": "array",
            "description": "Read these jobs directly, with no search — a LinkedIn job link (https://www.linkedin.com/jobs/view/4419969671) or the id on its own, one per line. Each becomes one row with the full description. A job LinkedIn no longer has is an error row.",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}