{
  "openapi": "3.0.1",
  "info": {
    "title": "$0.99💰Wellfound · Startup Jobs + Funding Stage Signals",
    "description": "[$0.99💰] Wellfound startup jobs scraper — paste any /jobs listing URL (with optional ?market/?industry/?location filter) and get flat rows with title, comp band, locations, remote flag, company size, market tags, and Wellfound's funding-stage signals. Listings-only, JSON/CSV out",
    "version": "0.0",
    "x-build-id": "3FJYnxyELmKyLUqdA"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/memo23~wellfound-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-memo23-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/memo23~wellfound-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-memo23-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/memo23~wellfound-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-memo23-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",
        "required": [
          "startUrls"
        ],
        "properties": {
          "startUrls": {
            "title": "Wellfound /jobs URLs",
            "type": "array",
            "description": "Paste one or more Wellfound `/jobs` listing URLs. Working shapes:\n• Plain listing — `https://wellfound.com/jobs`\n• Market filter — `https://wellfound.com/jobs?market=ai`\n• Industry filter — `https://wellfound.com/jobs?industry=fintech`\n• Location filter — `https://wellfound.com/jobs?location=san-francisco`\n• Specific page — `https://wellfound.com/jobs?page=5` (combinable with filters)\n\n⚠️ Detail URLs are NOT supported and will be rejected:\n• `/jobs/{id}-{slug}` (individual job pages)\n• `/company/{slug}` and `/company/{slug}/jobs`\n• `/role/r/{role}` and `/role/l/...`\n\nWellfound blocks these via DataDome on non-browser clients. Use a `/jobs?…` filter to reach the same jobs from the listing surface.\n\n**Leave empty to use the structured filter fields below instead.**",
            "items": {
              "type": "string"
            }
          },
          "market": {
            "title": "Market filter",
            "type": "string",
            "description": "Wellfound market slug. Examples: `ai`, `fintech`, `web3`, `saas`, `cyber-security`, `developer-tools`, `mobile`, `e-commerce`, `consumer`, `b2b`. The slug is what appears in the URL after `?market=` when you filter on Wellfound's website. Used to build `https://wellfound.com/jobs?market={value}` when no `startUrls` is provided. Combinable with `location` below."
          },
          "industry": {
            "title": "Industry filter",
            "type": "string",
            "description": "Wellfound industry slug. Examples: `real-estate-tech`, `cyber-security`, `blockchain-cryptocurrency`, `health-care`, `education`, `gaming`. Used to build `https://wellfound.com/jobs?industry={value}` when no `startUrls` is provided. Note: `market` and `industry` overlap; pick one."
          },
          "location": {
            "title": "Location filter",
            "type": "string",
            "description": "Wellfound location slug. Examples: `san-francisco`, `new-york`, `london`, `berlin`, `united-states`, `remote`, `europe`. Used to build `https://wellfound.com/jobs?location={value}` when no `startUrls` is provided. Can be combined with `market` or `industry` (e.g. `market: ai` + `location: san-francisco` → `https://wellfound.com/jobs?market=ai&location=san-francisco`)."
          },
          "keyword": {
            "title": "Keyword(s) — comma-separated for OR logic",
            "type": "string",
            "description": "Case-insensitive substring match across job title, role slug, company name, market tags, location tags, badge labels, and (when enrichment is on) job description. Rows that don't match get filtered out before being written to the dataset.\n\nExamples:\n• `rust` → keeps rows mentioning Rust\n• `rust, golang, scala` → keeps rows mentioning ANY of the three (OR logic)\n• `senior` → keeps senior-level roles\n• `remote` → keeps rows where 'remote' appears anywhere (title, location tags, etc.)\n\n**Cost behaviour**: filtering happens AFTER fetching, so Apify compute for the fetches is unchanged — but `additional-data` charges (and enrichment charges) only fire for rows that pass the filter. You don't pay for rows you filter out.\n\nLeave empty to disable filtering."
          },
          "maxItems": {
            "title": "Max jobs per listing URL",
            "minimum": 1,
            "type": "integer",
            "description": "Maximum job rows emitted **per startUrl**. Pass 3 listings with `maxItems: 200` → up to 600 total rows (200 each). Pass 1 listing with `maxItems: 5000` → up to 5000 rows from that listing. Each row is one paid `additional-data` event. Wellfound serves ~50 jobs per page; pagination has been verified clean to page 500. Default 1000. Free-tier users are additionally capped at 100 total rows across the whole run.",
            "default": 1000
          },
          "maxConcurrency": {
            "title": "Max parallel requests",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Parallel HTTP requests across listing URLs. Wellfound's listing surface is friendly; concurrency 3-5 is the sweet spot. Higher values risk rate-limiting on the residential proxy pool, not on Wellfound's edge.",
            "default": 4
          },
          "maxRequestRetries": {
            "title": "Max request retries",
            "minimum": 0,
            "type": "integer",
            "description": "Per-URL retry budget. Each retry rotates the proxy session with mild exponential backoff and re-races three HTTP stacks (impit Firefox / gotScraping / impers Chrome142). Default 10 — Wellfound's listing surface is reliable enough that ≤3 retries usually suffice, but the budget is there for proxy hiccups.",
            "default": 10
          },
          "enrichCompanyProfile": {
            "title": "Add company funding + founders + social URLs  (extra +$1.50 per 1,000 unique companies enriched)",
            "type": "boolean",
            "description": "💰 **Pricing**: ADDITIONAL $1.50 per 1,000 unique companies enriched — on top of the base $1.50/1k row charge. De-duplicated: a company with 56 jobs = 1 enrichment charge, not 56. Failed enrichments are NOT charged. So a 1,000-row run across 150 unique companies costs ~$1.50 (rows) + ~$0.18 (120 of 150 successfully enriched) = ~$1.68 total.\n\nEvery job row also includes the company's:\n\n• Total funding raised (e.g. Airbnb: $11.3B)\n• Funding-round history — Series A/B/C, IPO, dates\n• Founders — names, slugs, avatars (e.g. Brian Chesky, Joe Gebbia)\n• Social URLs — Twitter, LinkedIn, Facebook, blog, ProductHunt\n• Official company website\n• Y Combinator badge (when applicable)\n• Operating / incubator / shell flags + Wellfound's profile-completeness score\n\nBonus: for jobs whose company is successfully enriched, rows ALSO get job-type, equity, required years of experience, ATS source, and (when Wellfound exposes it) the recruiting contact's identity — all free with this toggle.\n\nReliability: typically 70-90% of unique companies enriched per run.",
            "default": false
          },
          "enrichJobDetail": {
            "title": "Add full job description + structured salary + experience required  (extra +$1.50 per 1,000 jobs enriched)",
            "type": "boolean",
            "description": "💰 **Pricing**: ADDITIONAL $1.50 per 1,000 jobs enriched — on top of the base $1.50/1k row charge. Per-job (not per-company). Failed enrichments are NOT charged. So a 1,000-row run with ~40% job-detail success rate costs ~$1.50 (rows) + ~$0.60 (400 enriched) = ~$2.10 total.\n\nEvery job row also includes:\n\n• Full job description (~4 KB of HTML, the same text Google shows in Jobs search)\n• Structured salary — min, max, currency, time unit (year/month/hour)\n• Employment type — full-time / part-time / contractor / intern\n• Required years of experience\n• Eligible-applicant countries (for remote roles)\n• Direct-apply flag (whether Wellfound hosts the application form)\n• Industry tag\n\nReliability today: ~30-60% on a good day, can drop to 0% during anti-bot surges. Wellfound's job-detail pages are the hardest to reach.",
            "default": false
          },
          "proxy": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Apify Residential US is the default. Wellfound is US-centric — direct connections from non-US IPs occasionally get rerouted to a localized version of the site; US residential always returns the canonical English listing with full Apollo state. EU exits also work in practice.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}