{
  "openapi": "3.0.1",
  "info": {
    "title": "Wellfound AI Job Scraper",
    "description": "Extract Wellfound startup jobs with pay, equity, locations and company info. Enable optional AI: skills, seniority, summaries, grit scores & match ranking via Candidate Profile. Filter by remote, salary and keywords. Uses public listings—no Wellfound login required for search.",
    "version": "1.1",
    "x-build-id": "lEfHTWQXBJLck3H6q"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/marklp~wellfound-ai-job-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-marklp-wellfound-ai-job-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/marklp~wellfound-ai-job-scraper/runs": {
      "post": {
        "operationId": "runs-sync-marklp-wellfound-ai-job-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/marklp~wellfound-ai-job-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-marklp-wellfound-ai-job-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": {
          "aiAnalysis": {
            "title": "Enable AI Analysis",
            "type": "boolean",
            "description": "Add AI summaries, inferred skills, seniority, role intensity, stability, authenticity, and red flags to each job. Results appear in the AI Analysis tab and in the dataset JSON (for API use).",
            "default": true
          },
          "candidateProfile": {
            "title": "Candidate Profile (for AI match scoring)",
            "type": "string",
            "description": "Optional. Your background in plain text. When AI Analysis is on, jobs are ranked by fit and include match score, reasons, and gaps. Example: 8 yrs Python/FastAPI, some React, AWS certified. Targeting remote-first roles paying $160k+, ideally AI infra or developer tools.",
            "default": ""
          },
          "jobTitle": {
            "title": "Job Title / Role",
            "type": "string",
            "description": "The job role to search for. Use Wellfound's URL slug format or plain text – slugified automatically.\n\nExamples: 'software-engineer', 'product-manager', 'data-scientist'.\n\nOptional if Job Location or Keyword Filter is set. Leave empty to search all jobs (Keyword Filter still applies).",
            "default": ""
          },
          "keywords": {
            "title": "Keyword Filter",
            "type": "array",
            "description": "Only keep jobs whose title or description contains at least one of these keywords (case-insensitive). Example: ['python', 'machine learning', 'backend'].\n\nCan be used alone (without Job Title or Location) to scan all Wellfound jobs at wellfound.com/jobs and filter results. Leave empty to keep all jobs from the search page.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "jobLocation": {
            "title": "Job Location",
            "type": "string",
            "description": "City, region, or country to filter by.\n\nExamples: 'new-york', 'san-francisco', 'united-states', 'london'. Leave blank to search globally.\n\nOptional if Job Title or Keyword Filter is set.",
            "default": ""
          },
          "maxItems": {
            "title": "Maximum Number of Jobs",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Maximum number of job listings to output (after all filters are applied).",
            "default": 100
          },
          "maxPages": {
            "title": "Maximum Pages to Scrape",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "Limit how many search-result pages to fetch. Each page returns ~40–50 jobs. Set to 1 for a quick test.",
            "default": 50
          },
          "fullyRemote": {
            "title": "Remote Jobs Only",
            "type": "boolean",
            "description": "If enabled, only return jobs with a remote work policy. Jobs marked 'In office' or 'Hybrid' are excluded.",
            "default": false
          },
          "jobType": {
            "title": "Job Type",
            "enum": [
              "all",
              "full-time",
              "part-time",
              "contract",
              "internship"
            ],
            "type": "string",
            "description": "Filter by employment type. 'all' returns every type.",
            "default": "all"
          },
          "lastXDays": {
            "title": "Posted Within (days)",
            "minimum": 0,
            "maximum": 3650,
            "type": "integer",
            "description": "Only include jobs posted within the last N days. Set to 0 to disable the date filter.",
            "default": 0
          },
          "minSalary": {
            "title": "Minimum Salary (USD/year)",
            "minimum": 0,
            "type": "integer",
            "description": "Only include jobs where the listed minimum salary is at or above this value. Set to 0 to disable.",
            "default": 0
          },
          "maxSalary": {
            "title": "Maximum Salary (USD/year)",
            "minimum": 0,
            "type": "integer",
            "description": "Only include jobs where the listed maximum salary is at or below this value. Set to 0 to disable.",
            "default": 0
          },
          "includeNoSalary": {
            "title": "Include Jobs Without Salary",
            "type": "boolean",
            "description": "When salary filters are active, also keep jobs that have no salary listed. Disable to show only jobs with explicit salary data.",
            "default": true
          },
          "includeCompany": {
            "title": "Include Companies (whitelist)",
            "type": "array",
            "description": "Only return jobs from these companies. Use the company slug as it appears in the Wellfound URL (e.g. 'openai', 'stripe'). Leave empty to include all companies.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "excludeCompany": {
            "title": "Exclude Companies (blacklist)",
            "type": "array",
            "description": "Skip jobs from these companies. Use the company slug as it appears in the Wellfound URL (e.g. 'openai', 'stripe').",
            "default": [],
            "items": {
              "type": "string"
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}