{
  "openapi": "3.0.1",
  "info": {
    "title": "Wellfound Startup Jobs Scraper with Salary, Equity, Full Text",
    "description": "Startup jobs from Wellfound with pay and equity as numbers. Full advert text, posting date and which applicant tracking system the job came from. A Wellfound role search returns every opening at the matching companies, so each row says whether it is the role you asked for.",
    "version": "0.2",
    "x-build-id": "KFKblkdjjbaqSm3RP"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/gubidonius~wellfound-jobs/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-gubidonius-wellfound-jobs",
        "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/gubidonius~wellfound-jobs/runs": {
      "post": {
        "operationId": "runs-sync-gubidonius-wellfound-jobs",
        "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/gubidonius~wellfound-jobs/run-sync": {
      "post": {
        "operationId": "run-sync-gubidonius-wellfound-jobs",
        "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": "Wellfound role slugs or plain names, for example software-engineer, product-manager, designer. Names are turned into slugs for you. Searching several roles is worth doing: Wellfound shows only some of each employer's openings on any one role page, so more roles means more of each employer.",
            "default": [
              "software-engineer"
            ],
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "City or country names, for example new-york, london, bangalore. Leave this empty to read each role's remote board instead.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "remoteOnly": {
            "title": "Remote roles only",
            "type": "boolean",
            "description": "Read only each role's remote board. This replaces the locations above rather than narrowing them.",
            "default": false
          },
          "searchUrls": {
            "title": "Wellfound search URLs",
            "type": "array",
            "description": "Paste Wellfound search pages to read as well, for example https://wellfound.com/role/l/data-scientist/berlin. Role pages, remote role pages, /location/<city> and /remote all work. A URL that is not one of those is named in the log and skipped rather than run.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "maxResults": {
            "title": "Maximum jobs",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Upper bound on jobs for the whole run, across every role and location together. You are never charged for more than this.",
            "default": 100
          },
          "maxPagesPerTarget": {
            "title": "Maximum pages per search",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "A ceiling on work rather than a target. Paging stops on its own when Wellfound runs out of pages, so raise this only for searches with thousands of results.",
            "default": 5
          },
          "includeDescription": {
            "title": "Include the full advert text",
            "type": "boolean",
            "description": "Adds the whole advert as markdown. It is around 4,600 characters per job, so turn it off if you only want the structured fields and want a smaller dataset.",
            "default": true
          },
          "roleTitleMatch": {
            "title": "Match the job's own role to the role you searched",
            "enum": [
              "off",
              "related",
              "exact"
            ],
            "type": "string",
            "description": "Wellfound's role search picks employers, not jobs, so a search for product managers also returns the office manager and the recruiter at those companies. Related keeps jobs whose own role label contains the one you searched or is contained by it, which is how DevOps is kept for a Devops Engineer search. Exact keeps only identical labels. Rows with nothing to compare, such as a location only search, are kept whatever you pick.",
            "default": "off"
          },
          "collapseDuplicateAdverts": {
            "title": "Collapse duplicate adverts",
            "type": "boolean",
            "description": "Wellfound sometimes carries one advert under two job ids: 8 of 245 postings measured. Off by default, because two postings with the same title at one company can also be two real openings. Every row tells you its group size in duplicateAdvertCount either way. Turn this on to keep only the newest of each group.",
            "default": false
          },
          "jobTypes": {
            "title": "Job types",
            "type": "array",
            "description": "Keep only these job types. Leave empty for all of them.",
            "items": {
              "type": "string",
              "enum": [
                "full-time",
                "part-time",
                "contract",
                "internship",
                "cofounder"
              ]
            },
            "default": []
          },
          "requireCompensation": {
            "title": "Only jobs that disclose pay or equity",
            "type": "boolean",
            "description": "Drops jobs that say nothing about pay and nothing about equity. About 40% of Wellfound postings show no pay at all.",
            "default": false
          },
          "postedWithinDays": {
            "title": "Posted within this many days",
            "minimum": 1,
            "maximum": 3650,
            "type": "integer",
            "description": "Keep only jobs live since then. Wellfound leaves old postings up, so this is the field to use if you want current openings. Jobs with no posting date are kept and counted separately, because a missing date is not an old job."
          },
          "minSalary": {
            "title": "Minimum salary",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only jobs whose top of band reaches this. Set the currency below as well: Wellfound quotes each job in its local currency, no exchange rate is applied anywhere in this Actor, and jobs in other currencies are skipped rather than converted."
          },
          "minSalaryCurrency": {
            "title": "Minimum salary currency",
            "enum": [
              "USD",
              "EUR",
              "GBP",
              "INR",
              "CAD",
              "AUD",
              "JPY",
              "KRW",
              "BRL"
            ],
            "type": "string",
            "description": "The currency the minimum salary above is written in. Nothing is filtered by salary unless this is set."
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Off by default and normally unnecessary: Wellfound answered 40 unpaced requests with no block when this was measured. Turn it on if a run reports a security check.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}