{
  "openapi": "3.0.1",
  "info": {
    "title": "Linkedin Jobs Scraper",
    "description": "Scrape LinkedIn job listings to extract job titles, companies, locations, descriptions, salary details, employment types, posting dates, and job URLs. Track hiring trends, research companies, discover opportunities, analyze demand, and build targeted recruitment or sales lists.",
    "version": "0.1",
    "x-build-id": "1kLPoieagZI340Ig1"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapier~linkedin-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapier-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/scrapier~linkedin-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapier-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/scrapier~linkedin-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapier-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": {
          "companyInput": {
            "title": "🏢 Companies to scrape",
            "type": "array",
            "description": "Which employers do you want jobs from? Mix and match:\n• Name — e.g. Google\n• URL — e.g. https://www.linkedin.com/company/google/\n• ID — e.g. 1441\n\n📋 Bulk list supported. Leave empty to run a plain keyword + location search.",
            "items": {
              "type": "string"
            }
          },
          "keywords": {
            "title": "🔎 Job keywords",
            "type": "string",
            "description": "Match roles like Software Engineer, Data Analyst, or Product Manager. Leave empty to cast a wider net and collect more listings.",
            "default": "Software Engineer"
          },
          "location": {
            "title": "📍 Location",
            "type": "string",
            "description": "Where should jobs be based? Examples: United States, London, Berlin — anything LinkedIn's job search understands.",
            "default": "United States"
          },
          "maxJobs": {
            "title": "🎯 Maximum jobs",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Cap how many jobs to collect per run (1–1,000). LinkedIn's public job endpoint stops paginating at roughly 1,000 results per search, so 1,000 is the real ceiling for a single keyword + location combination. Lower = faster and cheaper.",
            "default": 20
          },
          "sortOrder": {
            "title": "📊 Sort order (not honored by LinkedIn)",
            "enum": [
              "",
              "relevance",
              "date"
            ],
            "type": "string",
            "description": "⚠️ Kept for backward compatibility only. LinkedIn's public job endpoint IGNORES sorting — verified: the result sets for Default, Most relevant and Most recent are identical. Any value is accepted and the run logs a notice; results come back in LinkedIn's own order. Use the Date posted filter to restrict to recent jobs instead.",
            "default": ""
          },
          "publishedAt": {
            "title": "🕐 Date posted",
            "enum": [
              "",
              "r86400",
              "r604800",
              "r2592000"
            ],
            "type": "string",
            "description": "Only return jobs posted within this time window. This filter IS honored by LinkedIn. Choose Any time to disable it.",
            "default": ""
          },
          "workType": {
            "title": "🏠 On-site / Remote",
            "enum": [
              "",
              "1",
              "2",
              "3"
            ],
            "type": "string",
            "description": "Restrict by work arrangement. Choose Any to skip this filter.",
            "default": ""
          },
          "contractType": {
            "title": "📋 Job type",
            "enum": [
              "",
              "F",
              "P",
              "C",
              "T",
              "I",
              "V"
            ],
            "type": "string",
            "description": "Restrict by employment type. Choose Any to skip this filter.",
            "default": ""
          },
          "experienceLevel": {
            "title": "📈 Experience level",
            "enum": [
              "",
              "1",
              "2",
              "3",
              "4",
              "5",
              "6"
            ],
            "type": "string",
            "description": "Restrict by required seniority. Choose Any to skip this filter.",
            "default": ""
          },
          "geoId": {
            "title": "🌐 Geographic region (geoId)",
            "type": "string",
            "description": "Optional LinkedIn location geoId sent with your search (numeric ID). Pick a country from the suggestions for consistent results with the Location field, or leave empty to let LinkedIn infer from Location only.\n\n🏙️ Want a city or any other geoId? Run a search on LinkedIn with that location and copy the geoId number from the URL bar — paste it here. Custom values are supported.",
            "default": ""
          },
          "proxyConfiguration": {
            "title": "🛡️🔌 Apify Proxy controls",
            "type": "object",
            "description": "Enable Apify Proxy and pick proxy groups if LinkedIn blocks or throttles you. Leave off to run direct."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}