{
  "openapi": "3.0.1",
  "info": {
    "title": "Wellfound Jobs Scraper With ATS Vendor & Hiring Velocity",
    "description": "Wellfound Jobs Scraper extracts public job listings from Wellfound, including job titles, company names, locations, salary ranges, skills, job descriptions, employment types, and application URLs. Ideal for recruitment, job market research, salary analysis, and hiring insights.",
    "version": "0.1",
    "x-build-id": "Ld3hn2juzhvkOpcZW"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/simpleapi~wellfound-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-simpleapi-wellfound-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/simpleapi~wellfound-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-simpleapi-wellfound-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/simpleapi~wellfound-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-simpleapi-wellfound-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",
        "properties": {
          "jobSearchUrls": {
            "title": "🔗 Wellfound URLs to map",
            "type": "array",
            "description": "Wellfound search/listing URLs (e.g. https://wellfound.com/location/new-york, https://wellfound.com/role/r/software-engineer) or single job pages (https://wellfound.com/jobs/123456-role). Takes priority over the market filters below. The base key `startUrls` is still accepted.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "talentMarketLocation": {
            "title": "📍 Talent market",
            "type": "string",
            "description": "City or region whose hiring you want to profile (e.g. New York, San Francisco, Remote). Used to build the Wellfound URL when no URLs are supplied. Base key `locationName` is still accepted.",
            "default": "New York"
          },
          "roleKeyword": {
            "title": "🔑 Role or stack keyword",
            "type": "string",
            "description": "Narrow the map to one role family or technology (e.g. \"software engineer\", \"recruiter\", \"python\"). Base key `includeKeyword` is still accepted.",
            "default": ""
          },
          "employerName": {
            "title": "🏢 Single employer (optional)",
            "type": "string",
            "description": "Profile one startup's hiring instead of a whole market. Cards whose company name loosely matches are kept. Base key `companyName` is still accepted.",
            "default": ""
          },
          "resultPages": {
            "title": "📄 Result pages per URL",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "How many result pages to walk per URL. A wider sweep gives velocity and ATS-share a bigger sample — a one-page run is a small sample and is labelled as such in the output. Base key `pagesToFetch` is still accepted.",
            "default": 1
          },
          "atsVendorInclude": {
            "title": "🧩 Keep only these ATS vendors",
            "type": "array",
            "description": "Optional allow-list, e.g. Greenhouse, Lever, Ashby. Leave empty to keep every listing. Listings whose ATS vendor is unknown (~15-20% publish no atsSource) are excluded when this filter is set — unknown is never treated as a match.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "resolveCompanyWebsite": {
            "title": "🌐 Resolve each company's website",
            "type": "boolean",
            "description": "Opens ONE job page per company to read the employer's own domain from its schema.org hiringOrganization.sameAs block. Costs one extra page load per company (never per job) and is rate-limited, so keep the budget below modest. Default off.",
            "default": false
          },
          "maxCompanyWebsiteLookups": {
            "title": "🔢 Company-website lookup budget",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Hard cap on those extra page loads for the whole run. Wellfound throttles bursts of job-page hits, so this stays small on purpose. Example: 10 = at most 10 companies get a website. Default is 10.",
            "default": 10
          },
          "includeHiringVelocityRollup": {
            "title": "📈 Add hiring-velocity & ATS-share rows",
            "type": "boolean",
            "description": "Appends uncharged summary rows: one per company (roles posted in this run, median/newest/oldest job age, roles per week) and one per ATS vendor (share of the run). Every figure carries its sampleSize; anything rate-shaped over a single observation is null. Default on.",
            "default": true
          },
          "employmentType": {
            "title": "💼 Employment type",
            "enum": [
              "",
              "FULLTIME",
              "PARTTIME",
              "CONTRACTOR",
              "INTERN"
            ],
            "type": "string",
            "description": "Restrict to one employment type. Base key `jobType` is still accepted.",
            "default": ""
          },
          "freshnessWindow": {
            "title": "📅 Posting freshness",
            "enum": [
              "all",
              "today",
              "3days",
              "week",
              "month"
            ],
            "type": "string",
            "description": "How recently the role went live. Job age itself is always reported exactly, in days, from Wellfound's own posting timestamp. Base key `datePosted` is still accepted.",
            "default": "all"
          },
          "captureJobDescriptions": {
            "title": "📝 Capture job descriptions",
            "type": "boolean",
            "description": "Keep the full description text. Descriptions ship with the listing payload, so this normally costs no extra request. Base key `fetchDescriptions` is still accepted.",
            "default": true
          },
          "proxyGeoCountry": {
            "title": "🌍 Proxy exit country",
            "enum": [
              "Afghanistan",
              "Albania",
              "Algeria",
              "American Samoa",
              "Andorra",
              "Angola",
              "Anguilla",
              "Antarctica",
              "Antigua and Barbuda",
              "Argentina",
              "Armenia",
              "Aruba",
              "Australia",
              "Austria",
              "Azerbaijan",
              "Bahamas",
              "Bahrain",
              "Bangladesh",
              "Barbados",
              "Belarus",
              "Belgium",
              "Belize",
              "Benin",
              "Bermuda",
              "Bhutan",
              "Bolivia, Plurinational State of",
              "Bonaire, Sint Eustatius and Saba",
              "Bosnia and Herzegovina",
              "Botswana",
              "Bouvet Island",
              "Brazil",
              "British Indian Ocean Territory",
              "Brunei Darussalam",
              "Bulgaria",
              "Burkina Faso",
              "Burundi",
              "Cabo Verde",
              "Cambodia",
              "Cameroon",
              "Canada",
              "Cayman Islands",
              "Central African Republic",
              "Chad",
              "Chile",
              "China",
              "Christmas Island",
              "Cocos (Keeling) Islands",
              "Colombia",
              "Comoros",
              "Congo",
              "Congo, The Democratic Republic of the",
              "Cook Islands",
              "Costa Rica",
              "Croatia",
              "Cuba",
              "Curaçao",
              "Cyprus",
              "Czechia",
              "Côte d'Ivoire",
              "Denmark",
              "Djibouti",
              "Dominica",
              "Dominican Republic",
              "Ecuador",
              "Egypt",
              "El Salvador",
              "Equatorial Guinea",
              "Eritrea",
              "Estonia",
              "Eswatini",
              "Ethiopia",
              "Falkland Islands (Malvinas)",
              "Faroe Islands",
              "Fiji",
              "Finland",
              "France",
              "French Guiana",
              "French Polynesia",
              "French Southern Territories",
              "Gabon",
              "Gambia",
              "Georgia",
              "Germany",
              "Ghana",
              "Gibraltar",
              "Greece",
              "Greenland",
              "Grenada",
              "Guadeloupe",
              "Guam",
              "Guatemala",
              "Guernsey",
              "Guinea",
              "Guinea-Bissau",
              "Guyana",
              "Haiti",
              "Heard Island and McDonald Islands",
              "Holy See (Vatican City State)",
              "Honduras",
              "Hong Kong",
              "Hungary",
              "Iceland",
              "India",
              "Indonesia",
              "Iran, Islamic Republic of",
              "Iraq",
              "Ireland",
              "Isle of Man",
              "Israel",
              "Italy",
              "Jamaica",
              "Japan",
              "Jersey",
              "Jordan",
              "Kazakhstan",
              "Kenya",
              "Kiribati",
              "Korea, Democratic People's Republic of",
              "Korea, Republic of",
              "Kuwait",
              "Kyrgyzstan",
              "Lao People's Democratic Republic",
              "Latvia",
              "Lebanon",
              "Lesotho",
              "Liberia",
              "Libya",
              "Liechtenstein",
              "Lithuania",
              "Luxembourg",
              "Macao",
              "Madagascar",
              "Malawi",
              "Malaysia",
              "Maldives",
              "Mali",
              "Malta",
              "Marshall Islands",
              "Martinique",
              "Mauritania",
              "Mauritius",
              "Mayotte",
              "Mexico",
              "Micronesia, Federated States of",
              "Moldova, Republic of",
              "Monaco",
              "Mongolia",
              "Montenegro",
              "Montserrat",
              "Morocco",
              "Mozambique",
              "Myanmar",
              "Namibia",
              "Nauru",
              "Nepal",
              "Netherlands",
              "New Caledonia",
              "New Zealand",
              "Nicaragua",
              "Niger",
              "Nigeria",
              "Niue",
              "Norfolk Island",
              "North Macedonia",
              "Northern Mariana Islands",
              "Norway",
              "Oman",
              "Pakistan",
              "Palau",
              "Palestine, State of",
              "Panama",
              "Papua New Guinea",
              "Paraguay",
              "Peru",
              "Philippines",
              "Pitcairn",
              "Poland",
              "Portugal",
              "Puerto Rico",
              "Qatar",
              "Romania",
              "Russian Federation",
              "Rwanda",
              "Réunion",
              "Saint Barthélemy",
              "Saint Helena, Ascension and Tristan da Cunha",
              "Saint Kitts and Nevis",
              "Saint Lucia",
              "Saint Martin (French part)",
              "Saint Pierre and Miquelon",
              "Saint Vincent and the Grenadines",
              "Samoa",
              "San Marino",
              "Sao Tome and Principe",
              "Saudi Arabia",
              "Senegal",
              "Serbia",
              "Seychelles",
              "Sierra Leone",
              "Singapore",
              "Sint Maarten (Dutch part)",
              "Slovakia",
              "Slovenia",
              "Solomon Islands",
              "Somalia",
              "South Africa",
              "South Georgia and the South Sandwich Islands",
              "South Sudan",
              "Spain",
              "Sri Lanka",
              "Sudan",
              "Suriname",
              "Svalbard and Jan Mayen",
              "Sweden",
              "Switzerland",
              "Syrian Arab Republic",
              "Taiwan, Province of China",
              "Tajikistan",
              "Tanzania, United Republic of",
              "Thailand",
              "Timor-Leste",
              "Togo",
              "Tokelau",
              "Tonga",
              "Trinidad and Tobago",
              "Tunisia",
              "Turkmenistan",
              "Turks and Caicos Islands",
              "Tuvalu",
              "Türkiye",
              "Uganda",
              "Ukraine",
              "United Arab Emirates",
              "United Kingdom",
              "United States",
              "United States Minor Outlying Islands",
              "Uruguay",
              "Uzbekistan",
              "Vanuatu",
              "Venezuela, Bolivarian Republic of",
              "Viet Nam",
              "Virgin Islands, British",
              "Virgin Islands, U.S.",
              "Wallis and Futuna",
              "Western Sahara",
              "Yemen",
              "Zambia",
              "Zimbabwe",
              "Åland Islands"
            ],
            "type": "string",
            "description": "Country the proxy exit nodes should appear in. This geo-targets the PROXY only — it does not filter which jobs are returned. Base key `countryName` is still accepted.",
            "default": "United States"
          },
          "requestDelay": {
            "title": "⏱️ Delay between page loads (seconds)",
            "minimum": 0,
            "maximum": 60,
            "type": "number",
            "description": "Pause before each page load. Raising it lowers the chance of anti-bot throttling on long sweeps. Default is 1.",
            "default": 1
          },
          "headless": {
            "title": "🖥️ Run the browser headless",
            "type": "boolean",
            "description": "Leave on. Turn off only when debugging locally with a display attached. Default is true.",
            "default": true
          },
          "proxyConfiguration": {
            "title": "🛡️ Proxy configuration",
            "type": "object",
            "description": "Optional. Default = no proxy; on an anti-bot block the Actor falls back to datacenter and then residential sessions on its own.",
            "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}