{
  "openapi": "3.0.1",
  "info": {
    "title": "Wellfound Scraper — Startup Jobs, Salaries & Companies",
    "description": "Export Wellfound (AngelList Talent) startup jobs by role and location: parsed salary and equity, remote policy, experience and full description, plus company size, stage, funding, founders, website and LinkedIn. Thousands of jobs per run, no login. Not affiliated with Wellfound.",
    "version": "1.0",
    "x-build-id": "b4aTis7By9iJqynWk"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/logiover~wellfound-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-logiover-wellfound-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/logiover~wellfound-scraper/runs": {
      "post": {
        "operationId": "runs-sync-logiover-wellfound-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/logiover~wellfound-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-logiover-wellfound-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": {
          "roles": {
            "title": "Roles",
            "type": "array",
            "description": "Job roles in plain words, e.g. \"software engineer\", \"product manager\", \"data scientist\", \"sales\", \"full stack developer\", \"ux designer\". Common spellings and abbreviations are mapped to Wellfound's role pages (swe, pm, ml engineer, frontend, devops …). Every role is searched in every location. Enter \"all\" to search every role page Wellfound has (10,000+ jobs per run). Leave empty to list all jobs in the locations.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "Cities, states or countries as Wellfound writes them, e.g. \"new york\", \"san francisco\", \"london\", \"berlin\", \"bangalore\", \"united states\", or \"remote\" for remote jobs. NYC, SF, LA, DC, UK, USA and similar shortcuts are understood. Leave empty to search the role everywhere.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Wellfound URLs",
            "type": "array",
            "description": "Optional. Paste Wellfound pages directly: search pages (wellfound.com/role/l/software-engineer/new-york, /role/r/designer, /location/london, /remote), job pages (wellfound.com/jobs/123-title) or company pages (wellfound.com/company/notion — exports all its open jobs).",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "mode": {
            "title": "Output",
            "enum": [
              "jobs",
              "companies"
            ],
            "type": "string",
            "description": "Jobs mode gives one row per job. Companies mode gives one row per startup that is hiring for your search — the list for sales prospecting and deal flow — with its matching jobs summarised.",
            "default": "jobs"
          },
          "maxItems": {
            "title": "Max results",
            "minimum": 0,
            "maximum": 1000000,
            "type": "integer",
            "description": "Stop after this many unique jobs (or companies in Companies mode). 0 means no limit. The limit is shared fairly between your role × location searches.",
            "default": 1000
          },
          "postedWithinDays": {
            "title": "Posted within (days)",
            "minimum": 0,
            "maximum": 365,
            "type": "integer",
            "description": "Keep only jobs that went live in the last N days, e.g. 1 for a daily scheduled run, 7 for a weekly one. 0 keeps every open job.",
            "default": 0
          },
          "jobType": {
            "title": "Job type",
            "enum": [
              "any",
              "full-time",
              "contract",
              "internship",
              "cofounder"
            ],
            "type": "string",
            "description": "Keep only this kind of job.",
            "default": "any"
          },
          "withSalaryOnly": {
            "title": "Only jobs that show a salary",
            "type": "boolean",
            "description": "Skip jobs without a published salary range — useful for salary benchmarking.",
            "default": false
          },
          "includeJobDetails": {
            "title": "Open every job page (visa, skills, hiring contact, company funding)",
            "type": "boolean",
            "description": "Adds visa sponsorship, relocation, skills, remote policy, countries the job hires remotely in, hiring contact, industry and exact salary currency/period — plus the company's website, HQ, industries, total raised, latest round and founders. One extra page per job: about 2-3× slower.",
            "default": false
          },
          "includeCompanyDetails": {
            "title": "Company profile (website, HQ, funding, founders)",
            "type": "boolean",
            "description": "Adds each company's website, headquarters, company type, industries, total raised, number of rounds, latest round (type, date, amount), founders with profile links and the companies its team came from. Read from one job page per company, so it stays fast.",
            "default": false
          },
          "includeCompanyLinks": {
            "title": "Company links (LinkedIn, X/Twitter, Facebook, blog, Product Hunt)",
            "type": "boolean",
            "description": "Adds LinkedIn, X/Twitter, Facebook, blog and Product Hunt URLs, the company description, markets, office locations and the number of open jobs. Wellfound serves company pages only through Apify's unblocking proxy, which takes 10-40 s per company — expect slower runs.",
            "default": false
          },
          "allCompanyJobs": {
            "title": "All open jobs of every company found",
            "type": "boolean",
            "description": "Search pages show up to 3 matching jobs per startup. Turn this on to also export every other open job of each startup found (from its company page, up to 400 per company). Includes the company links above. Slower: uses the unblocking proxy.",
            "default": false
          },
          "maxPagesPerSearch": {
            "title": "Max pages per search",
            "minimum": 0,
            "maximum": 1000,
            "type": "integer",
            "description": "Cap on result pages (20 startups, ~40 jobs each) per role × location search. 0 means every page Wellfound has.",
            "default": 0
          },
          "concurrency": {
            "title": "Parallel requests",
            "minimum": 1,
            "maximum": 64,
            "type": "integer",
            "description": "How many Wellfound pages to load at once. Slow pages are re-requested automatically (hedged), and the run stops the moment Max results is reached.",
            "default": 32
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Keep the RESIDENTIAL group: Wellfound refuses datacenter IPs. Company pages (links / all company jobs) automatically use Apify's UNBLOCKER group.",
            "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
                  },
                  "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}