{
  "openapi": "3.0.1",
  "info": {
    "title": "LinkedIn Company Employees Scraper — New Hires & Departures",
    "description": "Scrape all employees of any LinkedIn company: names, job titles and verified current-employer profiles — no login, no cookies. Turn on free monitoring to track new hires, departures and title changes vs your previous run — built for weekly scheduled runs. Only verified profiles are charged.",
    "version": "2.2",
    "x-build-id": "aF5awgOEyUahHya9I"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/george.the.developer~linkedin-company-employees-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-george.the.developer-linkedin-company-employees-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/george.the.developer~linkedin-company-employees-scraper/runs": {
      "post": {
        "operationId": "runs-sync-george.the.developer-linkedin-company-employees-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/george.the.developer~linkedin-company-employees-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-george.the.developer-linkedin-company-employees-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",
        "required": [
          "companies"
        ],
        "properties": {
          "companies": {
            "title": "Company LinkedIn URLs or Names",
            "maxItems": 200,
            "type": "array",
            "description": "List of LinkedIn company URLs (e.g., https://www.linkedin.com/company/google/) or company names to search for employees. You can mix URLs and names. Maximum 200 companies per run to fit within the 60 minute actor timeout; split larger lists into multiple runs.",
            "items": {
              "type": "string"
            }
          },
          "searchQuery": {
            "title": "Extra Keyword Filter",
            "type": "string",
            "description": "Optional extra keyword phrase layered onto the base company discovery query (e.g., 'hiring', 'supply chain', 'import export'). Title targeting is controlled by targetTitles."
          },
          "targetTitles": {
            "title": "Target Titles",
            "maxItems": 30,
            "type": "array",
            "description": "Optional ICP title list. When missing or empty, the actor uses the default English/Spanish decision-maker set for runs of 50 companies or fewer. Larger runs skip implicit title expansion unless you pass targetTitles explicitly. Maximum 30 titles per run.",
            "items": {
              "type": "string"
            }
          },
          "location": {
            "title": "Location Filter",
            "type": "string",
            "description": "Filter employees by location (e.g., 'San Francisco', 'United States', 'Europe'). Leave empty for all locations."
          },
          "profileDepth": {
            "title": "Profile Extraction Depth",
            "enum": [
              "short"
            ],
            "type": "string",
            "description": "Current build supports short-profile extraction: name, title, location, LinkedIn URL, company match, and title match. Only LinkedIn-verified profiles are billed. When verification is off, discovery rows are free (confidence=low) and never charged per profile.",
            "default": "short"
          },
          "maxEmployees": {
            "title": "Max Employees Per Company",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Maximum number of employees to extract per company. Capped at 100 to keep discovery and verification cost bounded; split larger targets across multiple runs if needed.",
            "default": 25
          },
          "seniorityFilter": {
            "title": "Seniority Level",
            "type": "array",
            "description": "Filter by seniority level. Add multiple or leave empty for all levels. Supported values: owner, partner, cxo, vp, director, manager, senior, entry, training, unpaid. Unknown values are ignored with a warning.",
            "items": {
              "type": "string"
            }
          },
          "industryFilter": {
            "title": "Industry Filter",
            "type": "string",
            "description": "Filter by industry (e.g., 'Technology', 'Finance', 'Healthcare'). Leave empty for all."
          },
          "maxConcurrency": {
            "title": "Max Concurrency",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Maximum number of concurrent requests. Lower = safer but slower. Higher = faster but more likely to hit rate limits.",
            "default": 3
          },
          "maxResidentialMb": {
            "title": "Max Residential MB",
            "minimum": 1,
            "maximum": 50,
            "type": "number",
            "description": "Maximum residential proxy transfer allowed for LinkedIn profile verification before the run exits cleanly (diagnostics go to logs, not the dataset).",
            "default": 5
          },
          "proxyConfiguration": {
            "title": "Proxy Configuration",
            "type": "object",
            "description": "Phase A discovery proxy. This actor always uses the GOOGLE_SERP group for Google search discovery; custom proxy URLs and alternate groups are ignored."
          },
          "verificationProxyConfiguration": {
            "title": "LinkedIn Verification Proxy",
            "type": "object",
            "description": "Phase B verification proxy. Used only when price-aware verification is enabled. This actor normalizes it to Apify RESIDENTIAL, reuses the same session-bound IP for homepage warmup + profile fetch, and ignores custom proxy URLs or non-residential groups."
          },
          "acceptDiscoveryFallback": {
            "title": "Allow Low-Cost Discovery Fallback",
            "type": "boolean",
            "description": "If a verified run would be rejected by the margin guard, continue instead of failing before start. Unverified SERP discovery rows (if verification is off) are free and never billed per profile. When verification is on, only verified profiles are billed.",
            "default": true
          },
          "compareWithPreviousRun": {
            "title": "Monitor changes vs previous run (free)",
            "type": "boolean",
            "description": "Track this company over time: each run adds a free summary item per company with new hires, departures, and title changes since your previous run. Snapshots are stored in a named key-value store in your account ('linkedin-employees-snapshots') and are never charged. Ideal with a weekly schedule. For clean departure tracking, set Max employees above the company's headcount — a capped run reports new hires only, never guessed departures.",
            "default": 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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}