{
  "openapi": "3.0.1",
  "info": {
    "title": "🚀 Wellfound (AngelList) Jobs Scraper",
    "description": "Scrape job listings from Wellfound (formerly AngelList), including job titles, companies, locations, salaries, skills, remote status, descriptions, and application links. Ideal for job market research, lead generation, recruitment, and hiring analytics.",
    "version": "0.2",
    "x-build-id": "Yn7zhdxdvf6o7jHIU"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/api-empire~wellfound-angellist-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-api-empire-wellfound-angellist-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/api-empire~wellfound-angellist-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-api-empire-wellfound-angellist-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/api-empire~wellfound-angellist-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-api-empire-wellfound-angellist-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",
        "required": [
          "startUrls"
        ],
        "properties": {
          "startUrls": {
            "title": "🔗 Start URLs (bulk)",
            "type": "array",
            "description": "One or more Wellfound URLs. Use a role + location search page (e.g. https://wellfound.com/role/l/software-engineer/new-york) or a single job page (https://wellfound.com/jobs/<id>-<slug>). Supports bulk paste.",
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "🎯 Max Items",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Stop after collecting this many jobs (across all URLs). The scraper paginates automatically until this target or the last results page is reached.",
            "default": 10
          },
          "jobTitle": {
            "title": "💼 Job Title Contains",
            "type": "string",
            "description": "Keep only jobs whose title contains this text (case-insensitive). Leave blank to keep all.",
            "default": ""
          },
          "keyword": {
            "title": "🔑 Keyword",
            "type": "string",
            "description": "Free-text term matched against title, company name, and locations.",
            "default": ""
          },
          "location": {
            "title": "📍 Location Contains",
            "type": "string",
            "description": "Keep only jobs whose location list contains this text (e.g. New York, Austin, United States).",
            "default": ""
          },
          "remoteOnly": {
            "title": "🏠 Remote Only",
            "type": "boolean",
            "description": "Keep only jobs flagged as remote.",
            "default": false
          },
          "jobType": {
            "title": "🕒 Job Type",
            "enum": [
              "any",
              "FULLTIME",
              "PARTTIME",
              "CONTRACTOR",
              "INTERN"
            ],
            "type": "string",
            "description": "Filter by employment type. Best-effort — only drops cards that clearly state a different type.",
            "default": "any"
          },
          "experience": {
            "title": "📈 Experience Level",
            "enum": [
              "any",
              "junior",
              "mid",
              "senior",
              "executive"
            ],
            "type": "string",
            "description": "Filter by seniority inferred from the job title.",
            "default": "any"
          },
          "minSalary": {
            "title": "💵 Minimum Salary (USD/yr)",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only jobs whose top-of-range pay is at least this amount. 0 = no minimum.",
            "default": 0
          },
          "maxSalary": {
            "title": "💸 Maximum Salary (USD/yr)",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only jobs whose bottom-of-range pay is at most this amount. 0 = no maximum.",
            "default": 0
          },
          "includeNoSalary": {
            "title": "🤷 Include Jobs Without Salary",
            "type": "boolean",
            "description": "When salary filters are set, also keep jobs that do not publish a salary.",
            "default": true
          },
          "sort": {
            "title": "↕️ Sort",
            "enum": [
              "none",
              "newest",
              "oldest"
            ],
            "type": "string",
            "description": "Order results by posting date (applied per results page).",
            "default": "none"
          },
          "includeCompanies": {
            "title": "✅ Include Companies",
            "type": "array",
            "description": "Keep only jobs from companies whose name or slug matches one of these.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "excludeCompanies": {
            "title": "🚫 Exclude Companies",
            "type": "array",
            "description": "Drop jobs from companies whose name or slug matches one of these.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "companyCategories": {
            "title": "🏷️ Company Categories",
            "type": "array",
            "description": "Keep only jobs whose company name or slug matches one of these category keywords.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "countryName": {
            "title": "🌍 Proxy Country",
            "enum": [
              "United States",
              "United Kingdom",
              "Canada",
              "Australia",
              "Germany",
              "France",
              "India",
              "Netherlands",
              "Singapore",
              "Brazil"
            ],
            "type": "string",
            "description": "Country used to geo-target residential proxy traffic when anti-bot fallback kicks in.",
            "default": "United States"
          },
          "proxyConfiguration": {
            "title": "🛡️ Proxy Configuration",
            "type": "object",
            "description": "Wellfound's role/location and job pages are protected by DataDome, which blocks direct and datacenter IPs — Apify Residential (US) is required to load them reliably. This is enabled by default. You can switch groups/country or turn it off, but expect blocks without residential.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ],
              "apifyProxyCountry": "US"
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}