{
  "openapi": "3.0.1",
  "info": {
    "title": "People Search Scraper for LinkedIn - By Job Title",
    "description": "Find people on LinkedIn by job title without a company list and without a login. Searches every way a role is written, opens each profile to confirm who they are, then filters by real location, employer and seniority.",
    "version": "0.1",
    "x-build-id": "5GzppfFI1tSutFnSu"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapesage~linkedin-people-search-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapesage-linkedin-people-search-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/scrapesage~linkedin-people-search-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapesage-linkedin-people-search-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/scrapesage~linkedin-people-search-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapesage-linkedin-people-search-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",
            "type": "array",
            "description": "The roles you want, e.g. \"Head of Marketing\", \"Account Executive\", \"CFO\". Common titles work best. Each title is searched separately.",
            "items": {
              "type": "string"
            }
          },
          "expandTitleVariants": {
            "title": "Expand title variants (recommended)",
            "type": "boolean",
            "description": "Also search the equivalent ways the same role is written - \"Head of Marketing\" additionally finds VP Marketing, Marketing Director and CMO. This is where most of the volume comes from: a single phrasing returns roughly 20 people, eight variants returned 113 in testing. Turn it off if you want that exact wording only.",
            "default": true
          },
          "extraKeywords": {
            "title": "Extra context keywords",
            "type": "array",
            "description": "Optional words that must also appear, e.g. \"SaaS\", \"B2B\", \"fintech\". These add reach but are less precise than the title itself, so they are searched after the title variants.",
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "Locations (filter)",
            "type": "array",
            "description": "Keep only people whose PROFILE says they are in one of these places, e.g. \"London\", \"United States\". Matched against the person's own location field after their profile is opened - deliberately not folded into the search text, because putting a city in the query pulls in anyone whose page happens to mention it.",
            "items": {
              "type": "string"
            }
          },
          "companies": {
            "title": "Companies (filter)",
            "type": "array",
            "description": "Keep only people whose current employer matches one of these. Leave empty for any company. If you already know the companies and want everyone inside them, the Company Employees Scraper for LinkedIn is the better tool.",
            "items": {
              "type": "string"
            }
          },
          "seniorityLevels": {
            "title": "Seniority levels (filter)",
            "type": "array",
            "description": "Keep only these seniority levels, derived from each person's job title.",
            "items": {
              "type": "string",
              "enum": [
                "Owner/C-Level",
                "VP/Director",
                "Manager",
                "Senior",
                "Individual Contributor",
                "Entry"
              ]
            }
          },
          "verifyProfiles": {
            "title": "Verify profiles (recommended)",
            "type": "boolean",
            "description": "Open each person's public profile to confirm who they are and to collect location, current company, followers and education. This is also what the Locations, Companies and Seniority filters run on - with it off, those filters cannot be applied.",
            "default": true
          },
          "requireTitleMatch": {
            "title": "Require title match (recommended)",
            "type": "boolean",
            "description": "Only return people whose real title actually matches what you searched for - including the equivalent phrasings, so searching \"Head of Marketing\" still keeps a CMO. Turn it off to see everyone the search surfaced, on-title or not; each row carries titleMatchesSearch either way.",
            "default": true
          },
          "includeUnverified": {
            "title": "Include unverified people",
            "type": "boolean",
            "description": "Also return people whose public profile could not be opened - some members switch public profile visibility off entirely. They arrive with publicProfileAvailable false and only search-page fields.",
            "default": false
          },
          "maxPerTitle": {
            "title": "Max people per job title",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Cap per title, so one title cannot consume the whole run.",
            "default": 50
          },
          "maxResults": {
            "title": "Max results (whole run)",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Total cap across every title. Set 0 for no limit (explicit opt-in).",
            "default": 100
          },
          "searchPages": {
            "title": "Search pages per query",
            "minimum": 1,
            "maximum": 4,
            "type": "integer",
            "description": "How deep to page each query. Depth is limited at source - extra pages usually return nothing new, which is why title variants rather than pagination provide the volume.",
            "default": 1
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 15,
            "type": "integer",
            "description": "How many profiles to open in parallel.",
            "default": 6
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "LinkedIn needs residential proxies for reliable logged-out access. Keep the default.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ]
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}