{
  "openapi": "3.0.1",
  "info": {
    "title": "Wellfound Jobs Scraper & API - AngelList Startup Jobs, Equity",
    "description": "Wellfound jobs scraper and API for wellfound.com, formerly AngelList Talent: startup jobs by role, place and remote, newest first, with salary, equity, company stage and size. Reads every page of a search, adds visa sponsorship and funding with details. No login.",
    "version": "1.0",
    "x-build-id": "wPv4Cu1rbnsHrnVUs"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/anshumanatrey~wellfound-jobs-search/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-anshumanatrey-wellfound-jobs-search",
        "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/anshumanatrey~wellfound-jobs-search/runs": {
      "post": {
        "operationId": "runs-sync-anshumanatrey-wellfound-jobs-search",
        "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/anshumanatrey~wellfound-jobs-search/run-sync": {
      "post": {
        "operationId": "run-sync-anshumanatrey-wellfound-jobs-search",
        "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": {
          "searchTerms": {
            "title": "Job titles to find (searchTerms)",
            "type": "array",
            "description": "Type the job titles or roles to find, one per line, for example software engineer or product designer. Wellfound's own role pages are read for them, and a job matches when its title has every word of a line: frontend also finds Front-End. A place typed with the title works too: software engineer in San Francisco. Leave it empty to get the newest jobs of every kind. A pasted Wellfound search link (wellfound.com/role/l/software-engineer/san-francisco) works too.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "location": {
            "title": "Where the job is (location)",
            "type": "array",
            "description": "Type where the jobs should be: cities, US states, countries or regions, one per line, for example San Francisco, New York City, Bangalore, Germany, Europe or EMEA. Wellfound's own place pages are read, so a country finds every town in it. Remote alone asks for remote jobs, Remote India for remote jobs open to India, Worldwide for jobs open anywhere. Leave it empty for anywhere.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "workType": {
            "title": "Remote or office (workType)",
            "type": "array",
            "description": "Pick remote, hybrid or onsite. Leave it empty for all three. Remote is what Wellfound marks remote: remote only, onsite or remote, or remote with no policy. Hybrid is in office with work-from-home flexibility, and onsite is in office. Typed words such as wfh or in office work too.",
            "items": {
              "type": "string",
              "enumSuggestedValues": [
                "remote",
                "hybrid",
                "onsite"
              ],
              "enumTitles": [
                "Remote, from anywhere it hires (remote)",
                "Hybrid, office with WFH days (hybrid)",
                "Onsite, in the office (onsite)"
              ]
            },
            "default": []
          },
          "employmentType": {
            "title": "Job type (employmentType)",
            "type": "array",
            "description": "Pick the job types to keep: full-time, contract, intern or cofounder (a cofounder role at a startup, usually with equity). Leave it empty for every type. Wellfound states one type per job and has no part-time or temporary type. Typed words such as internship, freelance or co-founder work too.",
            "items": {
              "type": "string",
              "enumSuggestedValues": [
                "full-time",
                "contract",
                "intern",
                "cofounder"
              ],
              "enumTitles": [
                "Full-time",
                "Contract",
                "Internship (intern)",
                "Cofounder role (cofounder)"
              ]
            },
            "default": []
          },
          "postedWithin": {
            "title": "Posted in the last (postedWithin)",
            "type": "string",
            "description": "Pick how new the jobs must be: posted in the last 24 hours, 3 days, 7 days or 30 days. 30 days, the default, keeps the last month's jobs, newest first, and any time keeps every open job: Wellfound keeps some up for years. A repost counts from the day it went up again. You can also type your own period, such as 48 hours or 2 weeks.",
            "default": "30 days"
          },
          "maxJobs": {
            "title": "Number of jobs (maxJobs)",
            "type": "integer",
            "description": "Type how many jobs to get, newest first: 100 by default. Type 0 to get every matching job. Each job is one charged row, so this sets the most a run can cost.",
            "default": 100
          },
          "includeDetails": {
            "title": "Full details (includeDetails)",
            "type": "boolean",
            "description": "Tick to add the full details of each job from its own page: the description as text and HTML, every place with its region and country, pay with its currency from the page's markup, visa sponsorship, relocation, preferred time zones, skills, the company's website, markets, headquarters and funding (amount raised, rounds and the newest round). The run reads each saved job's page once more.",
            "default": false
          },
          "excludeTerms": {
            "title": "Leave out words (excludeTerms)",
            "type": "array",
            "description": "Type words that leave a job out when its title has them, one per line, for example senior or intern. Leave it empty to keep every job.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "minSalary": {
            "title": "Lowest yearly pay (minSalary)",
            "type": "string",
            "description": "Type the lowest yearly pay to keep, with its currency: 150000 USD, 150k, 20L INR or 60000 EUR. A job is kept when the top of its pay range reaches it in that currency; a job with no pay shown or pay in another currency is left out. A number alone is US dollars. Leave it empty for any pay.",
            "default": ""
          },
          "companyStage": {
            "title": "Company stage (companyStage)",
            "type": "array",
            "description": "Pick the startup stages to keep, as Wellfound marks them: early (seed and first rounds), growth, scale or public. A company with no stage mark is left out when you pick one. Leave it empty for every company.",
            "items": {
              "type": "string",
              "enumSuggestedValues": [
                "early",
                "growth",
                "scale",
                "public"
              ],
              "enumTitles": [
                "Early stage (early)",
                "Growth stage (growth)",
                "Scale stage (scale)",
                "Public company (public)"
              ]
            },
            "default": []
          },
          "experienceYears": {
            "title": "Experience (experienceYears)",
            "type": "string",
            "description": "Type your years of experience: a number such as 3, a range such as 2-5, 5+ for 5 or more, or fresher for 0. Wellfound states the fewest years a job asks for, on about 6 jobs in 10, and a job is kept when that number is within your years or below them; a job that states none is left out. Leave it empty for any experience.",
            "default": ""
          },
          "searchDescriptions": {
            "title": "Descriptions too (searchDescriptions)",
            "type": "boolean",
            "description": "Tick to match your words in each job's description too (descriptions too), not only in its title: python then finds every job whose description mentions Python. Wellfound's search pages carry the description, so this costs no extra reading.",
            "default": false
          },
          "companies": {
            "title": "Only these startups (companies)",
            "type": "array",
            "description": "Type startup names to keep only their jobs, one per line, for example Calm, or paste a Wellfound company link (wellfound.com/company/calm). They are found among the jobs your other fields read, by name or slug; with nothing else typed, among every job on Wellfound. Leave it empty for every startup.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "jobUrls": {
            "title": "Job links to check (jobUrls)",
            "type": "array",
            "description": "Paste Wellfound job links to check whether they are still open, one per line, instead of searching. Each link comes back open with the job and its full page, closed (taken down), or not found. Old angel.co job links work too.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "proxyConfiguration": {
            "title": "Connection (proxyConfiguration)",
            "type": "object",
            "description": "Leave the connection as it is: Wellfound's search pages answer the run's own address. Turn on Apify Proxy when a run says Wellfound's Cloudflare check refused the address, or for full details of more than about 60 jobs (Wellfound slows one address down after about 60 job pages); the run then moves to a fresh proxy address after a refusal.",
            "default": {
              "useApifyProxy": 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
                  },
                  "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}