{
  "data": {
    "id": "rD6tn8XiWSRuLZ90C",
    "actId": "H1emEWZWGH4OE7mUG",
    "userId": "IYgBDiXtHOijAaUel",
    "startedAt": "2026-11-01T13:34:51.920Z",
    "finishedAt": "2026-11-01T13:35:02.729Z",
    "status": "SUCCEEDED",
    "meta": {
      "origin": "CLI"
    },
    "stats": {
      "durationMillis": 10745,
      "runTimeSecs": 10.745,
      "computeUnits": 0.01193888888888889,
      "imageSizeBytes": 359367680
    },
    "options": {
      "useCache": true,
      "betaPackages": false,
      "memoryMbytes": 4096,
      "diskMbytes": 8192
    },
    "createdByOrganizationMemberUserId": "QYo53EZkJk0prePWY",
    "exitCode": 0,
    "inputSchema": "{\n  \"title\": \"Wellfound Jobs Scraper Input\",\n  \"type\": \"object\",\n  \"schemaVersion\": 1,\n  \"properties\": {\n    \"mode\": {\n      \"title\": \"Scraping Mode\",\n      \"type\": \"string\",\n      \"description\": \"Auto uses startUrls when provided, otherwise role/location search. Search ignores startUrls. Scrape URLs requires at least one start URL. Companies reads the /startups directory.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"auto\",\n        \"search\",\n        \"startUrls\",\n        \"companies\"\n      ],\n      \"enumTitles\": [\n        \"Auto\",\n        \"Search by role/location\",\n        \"Scrape URLs\",\n        \"Companies / startups\"\n      ],\n      \"default\": \"auto\",\n      \"prefill\": \"auto\"\n    },\n    \"startUrls\": {\n      \"title\": \"Start URLs\",\n      \"type\": \"array\",\n      \"description\": \"Jobs: /jobs, /role/{role}, /role/l/{role}/{location}, /role/r/{role}, /location/{location}, /remote, /jobs/{id}-{slug} and /job-collections/{slug}. Companies: /startups, /startups/location/{location} and /startups/industry/{industry}. Company profile and login URLs are rejected.\",\n      \"editor\": \"requestListSources\",\n      \"default\": [],\n      \"prefill\": [\n        {\n          \"url\": \"https://wellfound.com/jobs\"\n        }\n      ],\n      \"items\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"url\": {\n            \"title\": \"URL\",\n            \"type\": \"string\",\n            \"description\": \"Page URL to scrape.\"\n          }\n        }\n      }\n    },\n    \"role\": {\n      \"title\": \"Role\",\n      \"type\": \"string\",\n      \"description\": \"Wellfound role slug for search mode, for example software-engineer, product-manager, designer or machine-learning-engineer.\",\n      \"editor\": \"textfield\"\n    },\n    \"jobTitle\": {\n      \"title\": \"Job Title Filter\",\n      \"type\": \"string\",\n      \"description\": \"Only keep jobs whose title contains this phrase (case-insensitive).\",\n      \"editor\": \"textfield\"\n    },\n    \"keyword\": {\n      \"title\": \"Keyword\",\n      \"type\": \"string\",\n      \"description\": \"Only keep jobs matching this text across title, company, locations, compensation and description (case-insensitive).\",\n      \"editor\": \"textfield\"\n    },\n    \"location\": {\n      \"title\": \"Location\",\n      \"type\": \"string\",\n      \"description\": \"Used as a server-side /location/{location} or /role/l/{role}/{location} path when it is a clean city slug or name, and always as a case-insensitive client filter over locations and accepted remote locations.\",\n      \"editor\": \"textfield\"\n    },\n    \"remoteOnly\": {\n      \"title\": \"Remote Only\",\n      \"type\": \"boolean\",\n      \"description\": \"Search /remote or /role/r/{role} and keep only jobs flagged as remote.\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"jobType\": {\n      \"title\": \"Job Type\",\n      \"type\": \"string\",\n      \"description\": \"Exact structured job type from Wellfound. Jobs with a missing/unknown type are dropped when a specific type is selected.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"any\",\n        \"full-time\",\n        \"part-time\",\n        \"contract\",\n        \"internship\"\n      ],\n      \"enumTitles\": [\n        \"Any\",\n        \"Full-time\",\n        \"Part-time\",\n        \"Contract\",\n        \"Internship\"\n      ],\n      \"default\": \"any\"\n    },\n    \"experience\": {\n      \"title\": \"Experience Level\",\n      \"type\": \"string\",\n      \"description\": \"Best-effort filter: title keywords first, then yearsExperienceMin (0-2 junior, 3-4 mid, 5+ senior). Unknown jobs are kept and counted.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"any\",\n        \"junior\",\n        \"mid\",\n        \"senior\",\n        \"executive\"\n      ],\n      \"enumTitles\": [\n        \"Any\",\n        \"Junior / Entry\",\n        \"Mid\",\n        \"Senior\",\n        \"Executive\"\n      ],\n      \"default\": \"any\"\n    },\n    \"minSalary\": {\n      \"title\": \"Minimum Salary\",\n      \"type\": \"integer\",\n      \"description\": \"Keep jobs whose salary range top is at or above this amount. Currency is the job's listed currency; no FX conversion. 0 = off.\",\n      \"default\": 0,\n      \"minimum\": 0,\n      \"maximum\": 10000000,\n      \"editor\": \"number\"\n    },\n    \"maxSalary\": {\n      \"title\": \"Maximum Salary\",\n      \"type\": \"integer\",\n      \"description\": \"Keep jobs whose salary range bottom is at or below this amount. 0 = unlimited. This is the documented range-start semantics.\",\n      \"default\": 0,\n      \"minimum\": 0,\n      \"maximum\": 10000000,\n      \"editor\": \"number\"\n    },\n    \"salaryCurrency\": {\n      \"title\": \"Salary Currency\",\n      \"type\": \"string\",\n      \"description\": \"Filter parsed salaries by currency. No FX conversion is performed.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"any\",\n        \"USD\",\n        \"CAD\",\n        \"INR\"\n      ],\n      \"enumTitles\": [\n        \"Any currency\",\n        \"USD\",\n        \"CAD\",\n        \"INR\"\n      ],\n      \"default\": \"any\"\n    },\n    \"includeNoSalary\": {\n      \"title\": \"Include Jobs Without Salary Data\",\n      \"type\": \"boolean\",\n      \"description\": \"Only applies when minSalary or maxSalary is set. When false, jobs with no parsed salary are dropped.\",\n      \"default\": true,\n      \"prefill\": true\n    },\n    \"companyCategories\": {\n      \"title\": \"Company Categories\",\n      \"type\": \"array\",\n      \"description\": \"Match Wellfound market, industry and company-type tags or the company high concept. This is not a company-name filter; use includeCompanies for names. Requires enrichDetails=true.\",\n      \"editor\": \"stringList\"\n    },\n    \"includeCompanies\": {\n      \"title\": \"Include Companies\",\n      \"type\": \"array\",\n      \"description\": \"Only keep jobs whose company name or slug contains one of these values (case-insensitive).\",\n      \"editor\": \"stringList\"\n    },\n    \"excludeCompanies\": {\n      \"title\": \"Exclude Companies\",\n      \"type\": \"array\",\n      \"description\": \"Drop jobs whose company name or slug contains one of these values. Exclusions win over includeCompanies.\",\n      \"editor\": \"stringList\"\n    },\n    \"postedWithinDays\": {\n      \"title\": \"Posted Within Days\",\n      \"type\": \"integer\",\n      \"description\": \"Keep jobs posted within the last N days. Jobs without a parsed posted date are dropped and counted. 0 = off.\",\n      \"default\": 0,\n      \"minimum\": 0,\n      \"maximum\": 3650,\n      \"editor\": \"number\"\n    },\n    \"companySizes\": {\n      \"title\": \"Company Sizes\",\n      \"type\": \"array\",\n      \"description\": \"Keep jobs or companies whose company size matches one of these values, for example 11-50, 51-200 or SIZE_51_200. Rows without a size are dropped and counted.\",\n      \"editor\": \"stringList\"\n    },\n    \"companyStages\": {\n      \"title\": \"Company Stages\",\n      \"type\": \"array\",\n      \"description\": \"Keep jobs or companies whose stage matches one of these values, for example seed, early-stage, growth-stage or scale-stage. Rows without a stage are dropped and counted.\",\n      \"editor\": \"stringList\"\n    },\n    \"ycOnly\": {\n      \"title\": \"YC Funded Only\",\n      \"type\": \"boolean\",\n      \"description\": \"Keep rows where the YC Funded badge is present.\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"minCompanyFunding\": {\n      \"title\": \"Minimum Company Funding\",\n      \"type\": \"integer\",\n      \"description\": \"Keep jobs whose parsed total funding is at or above this amount. Requires detail enrichment; unknown funding is dropped. 0 = off.\",\n      \"default\": 0,\n      \"minimum\": 0,\n      \"maximum\": 10000000000,\n      \"editor\": \"number\"\n    },\n    \"minOpenJobs\": {\n      \"title\": \"Minimum Open Jobs\",\n      \"type\": \"integer\",\n      \"description\": \"Keep rows whose company open-job count is at or above this value. Requires detail enrichment for jobs; unknown counts are dropped. 0 = off.\",\n      \"default\": 0,\n      \"minimum\": 0,\n      \"maximum\": 100000,\n      \"editor\": \"number\"\n    },\n    \"visaSponsorshipOnly\": {\n      \"title\": \"Visa Sponsorship Only\",\n      \"type\": \"boolean\",\n      \"description\": \"Keep jobs whose detail page says visa sponsorship is available. Requires detail enrichment; unknown values are dropped.\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"minEquity\": {\n      \"title\": \"Minimum Equity\",\n      \"type\": \"number\",\n      \"description\": \"Keep jobs whose equity range top is at or above this percentage. Jobs without equity data are dropped. 0 = off.\",\n      \"default\": 0,\n      \"minimum\": 0,\n      \"maximum\": 100,\n      \"editor\": \"number\"\n    },\n    \"maxEquity\": {\n      \"title\": \"Maximum Equity\",\n      \"type\": \"number\",\n      \"description\": \"Keep jobs whose equity range bottom is at or below this percentage. 0 = unlimited.\",\n      \"default\": 0,\n      \"minimum\": 0,\n      \"maximum\": 100,\n      \"editor\": \"number\"\n    },\n    \"equityOnly\": {\n      \"title\": \"Equity Only\",\n      \"type\": \"boolean\",\n      \"description\": \"Keep jobs that explicitly offer equity; jobs that say No equity or do not mention equity are dropped.\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"remoteWfhFlexible\": {\n      \"title\": \"Remote / WFH Flexible\",\n      \"type\": \"boolean\",\n      \"description\": \"Keep jobs whose remote configuration explicitly reports work-from-home flexibility. Requires detail enrichment; unknown values are dropped.\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"sort\": {\n      \"title\": \"Sort Order\",\n      \"type\": \"string\",\n      \"description\": \"none keeps first-seen source order. newest/oldest sort the whole run by parsed posted date; jobs without a date are last.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"newest\",\n        \"oldest\",\n        \"none\"\n      ],\n      \"enumTitles\": [\n        \"Newest First\",\n        \"Oldest First\",\n        \"As Returned\"\n      ],\n      \"default\": \"none\"\n    },\n    \"pageLimit\": {\n      \"title\": \"Page Limit\",\n      \"type\": \"integer\",\n      \"description\": \"0 fetches every page up to pageCount. N fetches the first N pages. An explicit ?page=N start URL fetches only that page.\",\n      \"default\": 0,\n      \"minimum\": 0,\n      \"maximum\": 500,\n      \"editor\": \"number\"\n    },\n    \"enrichDetails\": {\n      \"title\": \"Enrich Job Details\",\n      \"type\": \"boolean\",\n      \"description\": \"Fetch plain and autoOpen detail pages for selected jobs to add description HTML, structured salary/equity, visa/relocation, skills, company funding, founders, socials and benefits. Direct job URLs are always enriched. Default true; the saved prefill turns it off to keep scheduled runs fast.\",\n      \"default\": true,\n      \"prefill\": false\n    },\n    \"maxItems\": {\n      \"title\": \"Max Items\",\n      \"type\": \"integer\",\n      \"description\": \"Maximum jobs or companies pushed after all filters and sorting.\",\n      \"default\": 50,\n      \"prefill\": 3,\n      \"minimum\": 1,\n      \"maximum\": 10000,\n      \"editor\": \"number\"\n    },\n    \"onlyNew\": {\n      \"title\": \"Only New Items\",\n      \"type\": \"boolean\",\n      \"description\": \"Push only jobs or companies whose IDs have not been seen for this stateKey. Requires stateKey.\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"stateKey\": {\n      \"title\": \"State Key\",\n      \"type\": \"string\",\n      \"description\": \"Persistent key in the wellfound-monitor key-value store used to remember seen job/company IDs between runs. Changing it starts a fresh history.\",\n      \"editor\": \"textfield\"\n    },\n    \"expandSimilar\": {\n      \"title\": \"Expand Similar Jobs\",\n      \"type\": \"boolean\",\n      \"description\": \"Add related jobs from the autoOpen detail page similarJobs edges, bounded by similarDepth and similarLimit. Only applies to job modes.\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"similarDepth\": {\n      \"title\": \"Similar Depth\",\n      \"type\": \"integer\",\n      \"description\": \"1 emits the similar jobs embedded in the enriched page. 2-3 follow additional autoOpen pages within similarLimit.\",\n      \"default\": 1,\n      \"minimum\": 1,\n      \"maximum\": 3,\n      \"editor\": \"number\"\n    },\n    \"similarLimit\": {\n      \"title\": \"Similar Limit\",\n      \"type\": \"integer\",\n      \"description\": \"Maximum additional similar jobs emitted per run, also bounded by maxItems.\",\n      \"default\": 10,\n      \"minimum\": 1,\n      \"maximum\": 100,\n      \"editor\": \"number\"\n    }\n  },\n  \"required\": [\n    \"mode\"\n  ]\n}",
    "readme": "# Wellfound Startup Jobs Finder with Pay & Remote Filters\n\nScrape live startup jobs and startup directory profiles from Wellfound (formerly AngelList Talent). Search by role, city or remote work, pull structured salary and equity ranges, visa and relocation details, and company signals such as size, stage, YC funding and open roles. Filter everything in one run, monitor new postings with a saved state key, and export clean job and company datasets.\n\n## What this actor does\n\n- **Jobs and companies:** search jobs by role, location or remote, or read startup directory pages for company profiles.\n- **Rich job records:** title, company, locations, remote details, structured salary and equity, description, skills, perks, visa/relocation data and application source.\n- **Company context:** size, stage, high concept, description, badges, YC/growing/actively-hiring/valuation signals, funding, founders, website and social links, industry and open job counts.\n- **Filter and monitor:** posting age, title/keyword, job type, experience, salary/currency, equity, company size/stage, YC, funding, open jobs, visa sponsorship and WFH flexibility; sort by newest or oldest, or emit only IDs not seen before for a saved state key.\n- **Empty fields are omitted** — records only include data Wellfound actually exposes, with no `null`, empty strings or placeholders.\n\n## Output per job\n\n- `type` — always `wellfound_job`.\n- `jobId`, `title`, `slug`, `jobUrl` — job identity and canonical Wellfound URL.\n- `description`, `descriptionHtml` — plain-text and full HTML job description.\n- `compensation` — raw compensation string exactly as Wellfound publishes it.\n- `salaryMin`, `salaryMax`, `salaryCurrency`, `salaryPeriod` — parsed salary range, currency (`USD`, `CAD` or `INR`) and period (usually annual).\n- `equityMin`, `equityMax`, `equityOffered` — equity percentage range; `equityOffered` is `false` only when the source says \"No equity\".\n- `remote`, `remoteKind`, `remoteWfhFlexible`, `acceptedRemoteLocations`, `locations` — remote flag, remote configuration and location lists.\n- `jobType`, `yearsExperienceMin`, `skills`, `primaryRoleTitle` — employment type, minimum experience and skill tags.\n- `visaSponsorship`, `relocationAllowed`, `relocationAssistance` — eligibility details.\n- `applyUrl`, `atsSource`, `source`, `directApply` — application URL and integration signals.\n- `companyId`, `companyName`, `companySlug`, `companyUrl`, `companyLogo` — company identity and logo.\n- `companyHighConcept`, `companyDescription`, `companySize`, `companySizeCode`, `companyStage`, `companyIndustry`, `companyIndustryTags`, `companyTypeTags`, `companyHq`, `companyAtGlance` — company profile and classification.\n- `badges`, `companyYcFunded`, `companyGrowingFast`, `companyActivelyHiring`, `companyValuation1B`, `companyTopInvestors` — hiring and maturity signals.\n- `companyFundingTotal`, `companyFundingText`, `companyFundingRounds`, `companyFounders`, `companyOpenJobsCount`, `companyJobCounts` — funding, people and open-role context.\n- `companyWebsite`, `companyLinkedIn`, `companyTwitter`, `companyFacebook`, `companyBlog`, `companyProductHunt` — company links.\n- `perks`, `benefits` — listed perks and benefits.\n- `postedAt`, `postedAtIso`, `reposted`, `lastRespondedAt`, `autoPosted` — posting and response timing.\n- `isNew`, `firstSeenAt`, `lastSeenAt` — monitoring timestamps, present only when `stateKey` is set.\n- `scrapedAt` — UTC collection timestamp.\n\n`companyJobCounts` is an object with `total` plus `roles`, `locations`, `jobTypes` and `jobSources` arrays of `{name, count}` entries when Wellfound exposes them.\n\n## Output per company\n\n- `type` — always `wellfound_company`.\n- `companyId`, `companyName`, `companySlug`, `companyUrl`, `companyLogo` — company identity and profile link.\n- `companyHighConcept`, `companyDescription` — one-line concept and plain-text description.\n- `companySize`, `companySizeCode`, `companyStage` — human-readable size, raw size code and stage.\n- `badges`, `companyYcFunded`, `companyGrowingFast`, `companyActivelyHiring`, `companyValuation1B`, `companyTopInvestors` — badge labels and company signals.\n- `companyJobCounts`, `companyOpenJobsCount` — open-role totals, including role, location, job-type and source breakdowns when available.\n- `companyIndustryTags`, `companyTypeTags`, `companyHq` — industry, company-type and headquarters tags.\n- `companyWebsite` — company website.\n- `isNew`, `firstSeenAt`, `lastSeenAt` — monitoring timestamps, present only when `stateKey` is set.\n- `scrapedAt` — UTC collection timestamp.\n\n## Input\n\n| Field | Type | Default | Description |\n|---|---|---|---|\n| `mode` | string | `auto` | `auto` uses `startUrls` when provided, otherwise role/location search. `search` builds a role/location/remote search. `startUrls` scrapes the supplied URLs. `companies` reads the startup directory. |\n| `startUrls` | array | `[]` | Wellfound URLs to scrape, including `/startups` directory URLs in companies mode. Supports an explicit `?page=N`. Example: `https://wellfound.com/jobs`. |\n| `role` | string | – | Role slug for search mode, e.g. `software-engineer`, `product-manager`, `designer`. |\n| `jobTitle` | string | – | Case-insensitive substring filter on the job title. |\n| `keyword` | string | – | Case-insensitive substring across title, company, locations, compensation and description. |\n| `location` | string | – | Used in the location path when it is a clean city slug/name, and always applied as a filter over locations plus accepted remote locations. |\n| `remoteOnly` | boolean | `false` | Search remote jobs and keep only jobs flagged as remote. |\n| `jobType` | string | `any` | Exact structured type: `any`, `full-time`, `part-time`, `contract` or `internship`. |\n| `experience` | string | `any` | Best-effort level: `junior`, `mid`, `senior`, `executive`. Title keywords first, then minimum years (0-2 junior, 3-4 mid, 5+ senior). Unknown jobs are kept and counted. |\n| `minSalary` | integer | `0` | Keep jobs whose salary range top is at or above this value in the job's listed currency. 0 = off. Range 0-10,000,000. |\n| `maxSalary` | integer | `0` | Keep jobs whose salary range bottom is at or below this value. 0 = unlimited. Range 0-10,000,000. |\n| `salaryCurrency` | string | `any` | `any`, `USD`, `CAD` or `INR`. No FX conversion; a different-currency salary is dropped. |\n| `includeNoSalary` | boolean | `true` | Only active when `minSalary` or `maxSalary` is set. `false` drops jobs with no parsed salary. |\n| `companyCategories` | array | – | Matches Wellfound market/industry/company-type tags and the company high concept. Not a company-name filter; requires `enrichDetails=true`. |\n| `includeCompanies` | array | – | Keep jobs whose company name or slug contains one of these values. |\n| `excludeCompanies` | array | – | Drop jobs whose company name or slug contains one of these values. Exclusions win. |\n| `postedWithinDays` | integer | `0` | Keep jobs posted within the last N days. Jobs without a parsed date are dropped and counted. 0 = off. Range 0-3650. |\n| `companySizes` | array | – | Keep rows matching company size values such as `11-50`, `51-200` or `SIZE_51_200`. Missing sizes are dropped and counted. |\n| `companyStages` | array | – | Keep rows matching stages such as `seed`, `early-stage`, `growth-stage` or `scale-stage`. Missing stages are dropped and counted. |\n| `ycOnly` | boolean | `false` | Keep rows with the YC Funded badge. |\n| `minCompanyFunding` | integer | `0` | Keep jobs with parsed total funding at or above this amount. Requires `enrichDetails=true`; missing funding is dropped. Range 0-10,000,000,000. |\n| `minOpenJobs` | integer | `0` | Keep rows with at least this many open company jobs. Requires `enrichDetails=true` for jobs; missing counts are dropped. Range 0-100,000. |\n| `visaSponsorshipOnly` | boolean | `false` | Keep jobs whose detail page says visa sponsorship is available. Requires `enrichDetails=true`. |\n| `minEquity` | number | `0` | Keep jobs whose equity range top is at or above this percentage. Jobs without equity data are dropped. Range 0-100. |\n| `maxEquity` | number | `0` | Keep jobs whose equity range bottom is at or below this percentage. 0 = unlimited. Range 0-100. |\n| `equityOnly` | boolean | `false` | Keep jobs that explicitly offer equity; jobs that say No equity or do not mention equity are dropped. |\n| `remoteWfhFlexible` | boolean | `false` | Keep jobs whose remote configuration explicitly reports WFH flexibility. Requires `enrichDetails=true`. |\n| `sort` | string | `none` | `none` keeps first-seen order; `newest`/`oldest` sort the whole run by posted date, missing dates last. |\n| `pageLimit` | integer | `0` | 0 = all pages up to the available page count; N = first N pages. An explicit `?page=N` fetches only that page. Range 0-500. |\n| `enrichDetails` | boolean | `true` | Fetch full detail pages for selected jobs to add description HTML, structured salary/equity, visa/relocation, skills, company funding, founders, socials and benefits. Direct job URLs are always enriched. |\n| `maxItems` | integer | `50` | Maximum jobs or companies pushed after filtering and sorting. Range 1-10,000. |\n| `onlyNew` | boolean | `false` | Push only IDs not seen before for `stateKey`; requires `stateKey`. |\n| `stateKey` | string | – | Persistent key that remembers seen job/company IDs between runs. Changing it starts a fresh history. |\n| `expandSimilar` | boolean | `false` | Add related jobs from the detail page, bounded by `similarDepth` and `similarLimit`. |\n| `similarDepth` | integer | `1` | `1` emits embedded similar jobs; `2`-`3` follow additional detail pages within `similarLimit`. Range 1-3. |\n| `similarLimit` | integer | `10` | Maximum additional similar jobs emitted, also bounded by `maxItems`. Range 1-100. |\n\n### Example: software engineering roles in San Francisco\n\n```json\n{\n  \"mode\": \"search\",\n  \"role\": \"software-engineer\",\n  \"location\": \"san-francisco\",\n  \"pageLimit\": 2,\n  \"maxItems\": 40\n}\n```\n\n### Example: remote design roles with a salary floor\n\n```json\n{\n  \"mode\": \"search\",\n  \"role\": \"designer\",\n  \"remoteOnly\": true,\n  \"minSalary\": 100000,\n  \"includeNoSalary\": false,\n  \"maxItems\": 50\n}\n```\n\n### Example: scrape a single job page\n\n```json\n{\n  \"mode\": \"startUrls\",\n  \"startUrls\": [\n    { \"url\": \"https://wellfound.com/jobs/4728540-software-engineer\" }\n  ],\n  \"enrichDetails\": true,\n  \"maxItems\": 1\n}\n```\n\n### Example: startup directory filtered by size and stage\n\n```json\n{\n  \"mode\": \"companies\",\n  \"startUrls\": [\n    { \"url\": \"https://wellfound.com/startups\" }\n  ],\n  \"companySizes\": [\"11-50\", \"51-200\"],\n  \"companyStages\": [\"seed\", \"early-stage\"],\n  \"maxItems\": 20\n}\n```\n\n## Use cases\n\n- **Recruiting and sourcing** — build a pipeline of startup roles by role, city and salary band.\n- **Job boards and aggregators** — refresh startup listings with structured salary, equity and remote data.\n- **Market research** — track startup hiring by company size, stage, YC status and funding.\n- **Sales and go-to-market** — find actively hiring startups and use team size and stage as buying signals.\n- **Career coaching and job seekers** — monitor new remote roles and filter by visa sponsorship or WFH flexibility.\n- **Startup ecosystem analysis** — export directory profiles for regional or industry research.\n\n## FAQ\n\n### Do I need a Wellfound account or cookies?\n\nNo. The actor reads public Wellfound pages without cookies or a login. The login-gated `/jobs/search` page is not used.\n\n### Why are results fewer than `maxItems`?\n\nWellfound search pages expose only 1-3 highlighted jobs per startup, so a role/location search reaches roughly 56-82% of Wellfound's claimed total. Use more specific role, location or remote sources, raise `pageLimit`, or relax filters to widen the pool.\n\n### Why is a location sometimes not used in the page path?\n\nOnly clean city slugs or city names are put in the path. Free text with commas or unsupported characters falls back to a role-only or `/jobs` source and is still applied as a filter over the returned locations.\n\n### How do salary and equity filters work?\n\n`minSalary` compares the **top** of the job's salary range to the floor; `maxSalary` compares the **bottom** of the range to the cap. No currency conversion is performed, so a job with a salary in another currency is dropped when `salaryCurrency` is set. `includeNoSalary` only covers jobs with no parsed salary. Equity percentages are stored as percentages (`0.01` means 0.01%).\n\n### Are company profile pages included?\n\nNo. Company profile pages (`/company/*`) return HTTP 403 to anonymous access, so the actor never fetches them. Company data comes from the startup directory and job detail pages.\n\n### Why are investor names or the full team missing?\n\nInvestor names and the full team are not exposed by Wellfound in structured form. `companyTopInvestors` is a boolean badge, not a list of names, and `companyFounders` is limited to founders shown on a job detail page. `yearsExperienceMax` is likewise never populated; only `yearsExperienceMin` is available.\n\n### Can I get every job at one company?\n\nNo. Company pages are unavailable and the startup directory only exposes counts, so the actor cannot enumerate every job at one company. Search pages show a subset of each startup's open roles.\n\n### Why are some fields missing from a record?\n\nWellfound does not expose every field for every job or company. Conditional fields such as skills, founders, funding, socials, perks and equity appear only when the source provides them. Empty fields are omitted and never replaced with `null` or a placeholder.\n\n### Is this affiliated with Wellfound?\n\nNo. This is an independent tool that reads Wellfound's public pages and is not affiliated with, endorsed by or sponsored by Wellfound or AngelList.\n",
    "actorDefinition": {
      "actorSpecification": 1,
      "name": "wellfound-startup-jobs-finder-with-pay-and-remote",
      "title": "Wellfound Startup Jobs Finder with Pay & Remote Filters",
      "description": "Search Wellfound startup jobs by role, location and remote, paginate results, enrich descriptions and structured salary/equity, and export company signals.",
      "version": "1.1",
      "buildTag": "latest",
      "input": {
        "title": "Wellfound Jobs Scraper Input",
        "type": "object",
        "schemaVersion": 1,
        "properties": {
          "mode": {
            "title": "Scraping Mode",
            "type": "string",
            "description": "Auto uses startUrls when provided, otherwise role/location search. Search ignores startUrls. Scrape URLs requires at least one start URL. Companies reads the /startups directory.",
            "editor": "select",
            "enum": [
              "auto",
              "search",
              "startUrls",
              "companies"
            ],
            "enumTitles": [
              "Auto",
              "Search by role/location",
              "Scrape URLs",
              "Companies / startups"
            ],
            "default": "auto",
            "prefill": "auto"
          },
          "startUrls": {
            "title": "Start URLs",
            "type": "array",
            "description": "Jobs: /jobs, /role/{role}, /role/l/{role}/{location}, /role/r/{role}, /location/{location}, /remote, /jobs/{id}-{slug} and /job-collections/{slug}. Companies: /startups, /startups/location/{location} and /startups/industry/{industry}. Company profile and login URLs are rejected.",
            "editor": "requestListSources",
            "default": [],
            "prefill": [
              {
                "url": "https://wellfound.com/jobs"
              }
            ],
            "items": {
              "type": "object",
              "properties": {
                "url": {
                  "title": "URL",
                  "type": "string",
                  "description": "Page URL to scrape."
                }
              }
            }
          },
          "role": {
            "title": "Role",
            "type": "string",
            "description": "Wellfound role slug for search mode, for example software-engineer, product-manager, designer or machine-learning-engineer.",
            "editor": "textfield"
          },
          "jobTitle": {
            "title": "Job Title Filter",
            "type": "string",
            "description": "Only keep jobs whose title contains this phrase (case-insensitive).",
            "editor": "textfield"
          },
          "keyword": {
            "title": "Keyword",
            "type": "string",
            "description": "Only keep jobs matching this text across title, company, locations, compensation and description (case-insensitive).",
            "editor": "textfield"
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "Used as a server-side /location/{location} or /role/l/{role}/{location} path when it is a clean city slug or name, and always as a case-insensitive client filter over locations and accepted remote locations.",
            "editor": "textfield"
          },
          "remoteOnly": {
            "title": "Remote Only",
            "type": "boolean",
            "description": "Search /remote or /role/r/{role} and keep only jobs flagged as remote.",
            "default": false,
            "prefill": false
          },
          "jobType": {
            "title": "Job Type",
            "type": "string",
            "description": "Exact structured job type from Wellfound. Jobs with a missing/unknown type are dropped when a specific type is selected.",
            "editor": "select",
            "enum": [
              "any",
              "full-time",
              "part-time",
              "contract",
              "internship"
            ],
            "enumTitles": [
              "Any",
              "Full-time",
              "Part-time",
              "Contract",
              "Internship"
            ],
            "default": "any"
          },
          "experience": {
            "title": "Experience Level",
            "type": "string",
            "description": "Best-effort filter: title keywords first, then yearsExperienceMin (0-2 junior, 3-4 mid, 5+ senior). Unknown jobs are kept and counted.",
            "editor": "select",
            "enum": [
              "any",
              "junior",
              "mid",
              "senior",
              "executive"
            ],
            "enumTitles": [
              "Any",
              "Junior / Entry",
              "Mid",
              "Senior",
              "Executive"
            ],
            "default": "any"
          },
          "minSalary": {
            "title": "Minimum Salary",
            "type": "integer",
            "description": "Keep jobs whose salary range top is at or above this amount. Currency is the job's listed currency; no FX conversion. 0 = off.",
            "default": 0,
            "minimum": 0,
            "maximum": 10000000,
            "editor": "number"
          },
          "maxSalary": {
            "title": "Maximum Salary",
            "type": "integer",
            "description": "Keep jobs whose salary range bottom is at or below this amount. 0 = unlimited. This is the documented range-start semantics.",
            "default": 0,
            "minimum": 0,
            "maximum": 10000000,
            "editor": "number"
          },
          "salaryCurrency": {
            "title": "Salary Currency",
            "type": "string",
            "description": "Filter parsed salaries by currency. No FX conversion is performed.",
            "editor": "select",
            "enum": [
              "any",
              "USD",
              "CAD",
              "INR"
            ],
            "enumTitles": [
              "Any currency",
              "USD",
              "CAD",
              "INR"
            ],
            "default": "any"
          },
          "includeNoSalary": {
            "title": "Include Jobs Without Salary Data",
            "type": "boolean",
            "description": "Only applies when minSalary or maxSalary is set. When false, jobs with no parsed salary are dropped.",
            "default": true,
            "prefill": true
          },
          "companyCategories": {
            "title": "Company Categories",
            "type": "array",
            "description": "Match Wellfound market, industry and company-type tags or the company high concept. This is not a company-name filter; use includeCompanies for names. Requires enrichDetails=true.",
            "editor": "stringList"
          },
          "includeCompanies": {
            "title": "Include Companies",
            "type": "array",
            "description": "Only keep jobs whose company name or slug contains one of these values (case-insensitive).",
            "editor": "stringList"
          },
          "excludeCompanies": {
            "title": "Exclude Companies",
            "type": "array",
            "description": "Drop jobs whose company name or slug contains one of these values. Exclusions win over includeCompanies.",
            "editor": "stringList"
          },
          "postedWithinDays": {
            "title": "Posted Within Days",
            "type": "integer",
            "description": "Keep jobs posted within the last N days. Jobs without a parsed posted date are dropped and counted. 0 = off.",
            "default": 0,
            "minimum": 0,
            "maximum": 3650,
            "editor": "number"
          },
          "companySizes": {
            "title": "Company Sizes",
            "type": "array",
            "description": "Keep jobs or companies whose company size matches one of these values, for example 11-50, 51-200 or SIZE_51_200. Rows without a size are dropped and counted.",
            "editor": "stringList"
          },
          "companyStages": {
            "title": "Company Stages",
            "type": "array",
            "description": "Keep jobs or companies whose stage matches one of these values, for example seed, early-stage, growth-stage or scale-stage. Rows without a stage are dropped and counted.",
            "editor": "stringList"
          },
          "ycOnly": {
            "title": "YC Funded Only",
            "type": "boolean",
            "description": "Keep rows where the YC Funded badge is present.",
            "default": false,
            "prefill": false
          },
          "minCompanyFunding": {
            "title": "Minimum Company Funding",
            "type": "integer",
            "description": "Keep jobs whose parsed total funding is at or above this amount. Requires detail enrichment; unknown funding is dropped. 0 = off.",
            "default": 0,
            "minimum": 0,
            "maximum": 10000000000,
            "editor": "number"
          },
          "minOpenJobs": {
            "title": "Minimum Open Jobs",
            "type": "integer",
            "description": "Keep rows whose company open-job count is at or above this value. Requires detail enrichment for jobs; unknown counts are dropped. 0 = off.",
            "default": 0,
            "minimum": 0,
            "maximum": 100000,
            "editor": "number"
          },
          "visaSponsorshipOnly": {
            "title": "Visa Sponsorship Only",
            "type": "boolean",
            "description": "Keep jobs whose detail page says visa sponsorship is available. Requires detail enrichment; unknown values are dropped.",
            "default": false,
            "prefill": false
          },
          "minEquity": {
            "title": "Minimum Equity",
            "type": "number",
            "description": "Keep jobs whose equity range top is at or above this percentage. Jobs without equity data are dropped. 0 = off.",
            "default": 0,
            "minimum": 0,
            "maximum": 100,
            "editor": "number"
          },
          "maxEquity": {
            "title": "Maximum Equity",
            "type": "number",
            "description": "Keep jobs whose equity range bottom is at or below this percentage. 0 = unlimited.",
            "default": 0,
            "minimum": 0,
            "maximum": 100,
            "editor": "number"
          },
          "equityOnly": {
            "title": "Equity Only",
            "type": "boolean",
            "description": "Keep jobs that explicitly offer equity; jobs that say No equity or do not mention equity are dropped.",
            "default": false,
            "prefill": false
          },
          "remoteWfhFlexible": {
            "title": "Remote / WFH Flexible",
            "type": "boolean",
            "description": "Keep jobs whose remote configuration explicitly reports work-from-home flexibility. Requires detail enrichment; unknown values are dropped.",
            "default": false,
            "prefill": false
          },
          "sort": {
            "title": "Sort Order",
            "type": "string",
            "description": "none keeps first-seen source order. newest/oldest sort the whole run by parsed posted date; jobs without a date are last.",
            "editor": "select",
            "enum": [
              "newest",
              "oldest",
              "none"
            ],
            "enumTitles": [
              "Newest First",
              "Oldest First",
              "As Returned"
            ],
            "default": "none"
          },
          "pageLimit": {
            "title": "Page Limit",
            "type": "integer",
            "description": "0 fetches every page up to pageCount. N fetches the first N pages. An explicit ?page=N start URL fetches only that page.",
            "default": 0,
            "minimum": 0,
            "maximum": 500,
            "editor": "number"
          },
          "enrichDetails": {
            "title": "Enrich Job Details",
            "type": "boolean",
            "description": "Fetch plain and autoOpen detail pages for selected jobs to add description HTML, structured salary/equity, visa/relocation, skills, company funding, founders, socials and benefits. Direct job URLs are always enriched. Default true; the saved prefill turns it off to keep scheduled runs fast.",
            "default": true,
            "prefill": false
          },
          "maxItems": {
            "title": "Max Items",
            "type": "integer",
            "description": "Maximum jobs or companies pushed after all filters and sorting.",
            "default": 50,
            "prefill": 3,
            "minimum": 1,
            "maximum": 10000,
            "editor": "number"
          },
          "onlyNew": {
            "title": "Only New Items",
            "type": "boolean",
            "description": "Push only jobs or companies whose IDs have not been seen for this stateKey. Requires stateKey.",
            "default": false,
            "prefill": false
          },
          "stateKey": {
            "title": "State Key",
            "type": "string",
            "description": "Persistent key in the wellfound-monitor key-value store used to remember seen job/company IDs between runs. Changing it starts a fresh history.",
            "editor": "textfield"
          },
          "expandSimilar": {
            "title": "Expand Similar Jobs",
            "type": "boolean",
            "description": "Add related jobs from the autoOpen detail page similarJobs edges, bounded by similarDepth and similarLimit. Only applies to job modes.",
            "default": false,
            "prefill": false
          },
          "similarDepth": {
            "title": "Similar Depth",
            "type": "integer",
            "description": "1 emits the similar jobs embedded in the enriched page. 2-3 follow additional autoOpen pages within similarLimit.",
            "default": 1,
            "minimum": 1,
            "maximum": 3,
            "editor": "number"
          },
          "similarLimit": {
            "title": "Similar Limit",
            "type": "integer",
            "description": "Maximum additional similar jobs emitted per run, also bounded by maxItems.",
            "default": 10,
            "minimum": 1,
            "maximum": 100,
            "editor": "number"
          }
        },
        "required": [
          "mode"
        ]
      },
      "output": {
        "actorOutputSchemaVersion": 1,
        "title": "Wellfound Startup Jobs and Companies with Pay & Remote Filters Output",
        "description": "Wellfound startup jobs plus startup-directory company records with descriptions, structured salary and equity, remote data, visa/relocation, ATS source, company signals, client-side filters and optional only-new monitoring.",
        "properties": {
          "dataset": {
            "type": "string",
            "title": "All Wellfound items",
            "description": "Default dataset with one row per job or company.",
            "template": "{{links.apiDefaultDatasetUrl}}/items"
          },
          "jobs": {
            "type": "string",
            "title": "Jobs",
            "description": "Job, location, remote, salary and company-summary view.",
            "template": "{{links.apiDefaultDatasetUrl}}/items?view=jobs"
          },
          "salary": {
            "type": "string",
            "title": "Salary and equity",
            "description": "Compensation, salary and equity view.",
            "template": "{{links.apiDefaultDatasetUrl}}/items?view=salary"
          },
          "companies": {
            "type": "string",
            "title": "Company profiles",
            "description": "Company size, stage, funding, badges, founders, socials and perks view.",
            "template": "{{links.apiDefaultDatasetUrl}}/items?view=companies"
          },
          "startups": {
            "type": "string",
            "title": "Startup directory",
            "description": "Company records from companies mode with descriptions, size, stage, badges, job counts and HQ.",
            "template": "{{links.apiDefaultDatasetUrl}}/items?view=startups"
          },
          "remote": {
            "type": "string",
            "title": "Remote jobs",
            "description": "Remote jobs with accepted remote locations and salary.",
            "template": "{{links.apiDefaultDatasetUrl}}/items?view=remote"
          }
        }
      },
      "storages": {
        "dataset": {
          "actorSpecification": 1,
          "title": "Wellfound startup jobs and companies",
          "description": "One row per Wellfound job or startup-directory company with search metadata, structured compensation, remote details, detail-page enrichment, company signals and optional monitoring timestamps.",
          "fields": {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "description": "Always wellfound_job."
              },
              "jobId": {
                "type": "string",
                "description": "Wellfound job listing ID."
              },
              "title": {
                "type": "string",
                "description": "Job title."
              },
              "slug": {
                "type": "string",
                "description": "Job URL slug."
              },
              "jobUrl": {
                "type": "string",
                "description": "Canonical Wellfound job URL."
              },
              "description": {
                "type": "string",
                "description": "Job description text or markdown from the listing, with detail fallback."
              },
              "descriptionHtml": {
                "type": "string",
                "description": "Full HTML job description from the detail page."
              },
              "compensation": {
                "type": "string",
                "description": "Raw compensation string as published by Wellfound."
              },
              "salaryMin": {
                "type": "integer",
                "description": "Parsed minimum annual salary in the listed currency."
              },
              "salaryMax": {
                "type": "integer",
                "description": "Parsed maximum annual salary in the listed currency."
              },
              "salaryCurrency": {
                "type": "string",
                "description": "Salary currency: USD, CAD or INR."
              },
              "salaryPeriod": {
                "type": "string",
                "description": "Salary period, usually YEAR."
              },
              "equityMin": {
                "type": "number",
                "description": "Minimum equity percentage."
              },
              "equityMax": {
                "type": "number",
                "description": "Maximum equity percentage."
              },
              "equityOffered": {
                "type": "boolean",
                "description": "True when an equity percentage is present, false when the source says No equity."
              },
              "remote": {
                "type": "boolean",
                "description": "Wellfound remote flag, authoritative over remoteKind."
              },
              "remoteKind": {
                "type": "string",
                "description": "Remote configuration kind, such as REMOTE, ONSITE or ONSITE_OR_REMOTE."
              },
              "remoteWfhFlexible": {
                "type": "boolean",
                "description": "Whether the remote configuration explicitly reports WFH flexibility."
              },
              "locations": {
                "type": "array",
                "description": "Job location names."
              },
              "acceptedRemoteLocations": {
                "type": "array",
                "description": "Locations from which remote work is accepted."
              },
              "jobType": {
                "type": "string",
                "description": "Normalized employment type, such as full-time or internship."
              },
              "yearsExperienceMin": {
                "type": "integer",
                "description": "Minimum years of experience when exposed."
              },
              "skills": {
                "type": "array",
                "description": "Skill tags from the autoOpen detail page."
              },
              "visaSponsorship": {
                "type": "boolean",
                "description": "Whether visa sponsorship is available."
              },
              "relocationAllowed": {
                "type": "boolean",
                "description": "Whether relocation is allowed."
              },
              "relocationAssistance": {
                "type": "boolean",
                "description": "Whether relocation assistance is provided."
              },
              "atsSource": {
                "type": "string",
                "description": "Raw ATS integration string when exposed."
              },
              "source": {
                "type": "string",
                "description": "Application source: ATS or PLATFORM."
              },
              "applyUrl": {
                "type": "string",
                "description": "Wellfound job URL used for applying; no external ATS URL is exposed."
              },
              "directApply": {
                "type": "boolean",
                "description": "Whether the application is direct on Wellfound."
              },
              "companyId": {
                "type": "string",
                "description": "Wellfound startup ID."
              },
              "companyName": {
                "type": "string",
                "description": "Startup name."
              },
              "companySlug": {
                "type": "string",
                "description": "Startup URL slug."
              },
              "companyUrl": {
                "type": "string",
                "description": "Wellfound company profile URL (not fetched by the actor)."
              },
              "companyLogo": {
                "type": "string",
                "description": "Startup logo URL."
              },
              "companyHighConcept": {
                "type": "string",
                "description": "Startup one-line high concept."
              },
              "companyDescription": {
                "type": "string",
                "description": "Plain-text startup description from the /startups directory when available."
              },
              "companySize": {
                "type": "string",
                "description": "Human-readable company size, such as 51-200."
              },
              "companySizeCode": {
                "type": "string",
                "description": "Raw Wellfound company size code."
              },
              "companyStage": {
                "type": "string",
                "description": "Company stage from badges or the detail company section."
              },
              "badges": {
                "type": "array",
                "description": "Additional Wellfound company badge labels."
              },
              "companyYcFunded": {
                "type": "boolean",
                "description": "YC Funded badge flag."
              },
              "companyGrowingFast": {
                "type": "boolean",
                "description": "Growing fast badge flag."
              },
              "companyActivelyHiring": {
                "type": "boolean",
                "description": "Actively Hiring badge flag."
              },
              "companyValuation1B": {
                "type": "boolean",
                "description": "Valuation $1B+ badge flag."
              },
              "companyTopInvestors": {
                "type": "boolean",
                "description": "Top Investors badge flag. This is a boolean, not investor names."
              },
              "companyFundingTotal": {
                "type": "number",
                "description": "Numeric total raised amount when exposed."
              },
              "companyFundingText": {
                "type": "string",
                "description": "Raw funding amount text from the detail company section."
              },
              "companyFundingRounds": {
                "type": "integer",
                "description": "Number of funding rounds."
              },
              "companyFounders": {
                "type": "array",
                "description": "Founder names with titles and locations when shown on the job detail page."
              },
              "companyWebsite": {
                "type": "string",
                "description": "Company website URL."
              },
              "companyLinkedIn": {
                "type": "string",
                "description": "Company LinkedIn URL."
              },
              "companyTwitter": {
                "type": "string",
                "description": "Company Twitter/X URL."
              },
              "companyFacebook": {
                "type": "string",
                "description": "Company Facebook URL."
              },
              "companyBlog": {
                "type": "string",
                "description": "Company blog URL."
              },
              "companyProductHunt": {
                "type": "string",
                "description": "Company Product Hunt URL."
              },
              "companyIndustry": {
                "type": "string",
                "description": "Industry string from JSON-LD."
              },
              "companyIndustryTags": {
                "type": "array",
                "description": "Market/industry tags from autoOpen detail."
              },
              "companyTypeTags": {
                "type": "array",
                "description": "Company-type tags from autoOpen detail."
              },
              "companyHq": {
                "type": "string",
                "description": "Company headquarters when exposed."
              },
              "companyOpenJobsCount": {
                "type": "integer",
                "description": "Number of open jobs listed by the company."
              },
              "companyJobCounts": {
                "type": "object",
                "description": "Open-job counts by role, location, job type and source, with a total when exposed."
              },
              "companyAtGlance": {
                "type": "string",
                "description": "Plain-text company summary from autoOpen detail."
              },
              "perks": {
                "type": "array",
                "description": "Company perks and culture benefits."
              },
              "benefits": {
                "type": "array",
                "description": "Job benefits from JSON-LD."
              },
              "postedAt": {
                "type": "string",
                "description": "Legacy raw posting value, usually epoch seconds as a string."
              },
              "postedAtIso": {
                "type": "string",
                "description": "ISO-8601 posting date."
              },
              "reposted": {
                "type": "boolean",
                "description": "Whether the job was reposted."
              },
              "lastRespondedAt": {
                "type": "string",
                "description": "ISO-8601 timestamp of the recruiter's latest response activity."
              },
              "primaryRoleTitle": {
                "type": "string",
                "description": "Wellfound primary role title."
              },
              "autoPosted": {
                "type": "boolean",
                "description": "Whether the job was automatically posted."
              },
              "scrapedAt": {
                "type": "string",
                "description": "ISO-8601 timestamp when the record was built."
              },
              "isNew": {
                "type": "boolean",
                "description": "True when the job or company ID was absent from the stateKey history before this run."
              },
              "firstSeenAt": {
                "type": "string",
                "description": "ISO-8601 timestamp when the job or company ID was first recorded for this stateKey."
              },
              "lastSeenAt": {
                "type": "string",
                "description": "ISO-8601 timestamp when the job or company ID was last matched for this stateKey."
              }
            }
          },
          "views": {
            "jobs": {
              "title": "Jobs",
              "description": "Core job, location, remote, salary and company summary.",
              "transformation": {
                "fields": [
                  "jobId",
                  "title",
                  "companyName",
                  "jobUrl",
                  "jobType",
                  "remote",
                  "remoteKind",
                  "locations",
                  "salaryMin",
                  "salaryMax",
                  "salaryCurrency",
                  "salaryPeriod",
                  "equityMin",
                  "equityMax",
                  "postedAtIso",
                  "companyStage",
                  "companySize",
                  "companyYcFunded"
                ]
              },
              "display": {
                "component": "table",
                "properties": {
                  "jobId": {
                    "label": "Job ID",
                    "format": "text"
                  },
                  "title": {
                    "label": "Title",
                    "format": "text"
                  },
                  "companyName": {
                    "label": "Company",
                    "format": "text"
                  },
                  "jobUrl": {
                    "label": "Job URL",
                    "format": "link"
                  },
                  "jobType": {
                    "label": "Job type",
                    "format": "text"
                  },
                  "remote": {
                    "label": "Remote",
                    "format": "boolean"
                  },
                  "remoteKind": {
                    "label": "Remote kind",
                    "format": "text"
                  },
                  "locations": {
                    "label": "Locations",
                    "format": "array"
                  },
                  "salaryMin": {
                    "label": "Salary min",
                    "format": "number"
                  },
                  "salaryMax": {
                    "label": "Salary max",
                    "format": "number"
                  },
                  "salaryCurrency": {
                    "label": "Currency",
                    "format": "text"
                  },
                  "salaryPeriod": {
                    "label": "Period",
                    "format": "text"
                  },
                  "equityMin": {
                    "label": "Equity min",
                    "format": "number"
                  },
                  "equityMax": {
                    "label": "Equity max",
                    "format": "number"
                  },
                  "postedAtIso": {
                    "label": "Posted",
                    "format": "text"
                  },
                  "companyStage": {
                    "label": "Stage",
                    "format": "text"
                  },
                  "companySize": {
                    "label": "Company size",
                    "format": "text"
                  },
                  "companyYcFunded": {
                    "label": "YC funded",
                    "format": "boolean"
                  }
                }
              }
            },
            "salary": {
              "title": "Salary and equity",
              "description": "Raw and structured compensation.",
              "transformation": {
                "fields": [
                  "jobId",
                  "title",
                  "companyName",
                  "jobUrl",
                  "compensation",
                  "salaryMin",
                  "salaryMax",
                  "salaryCurrency",
                  "salaryPeriod",
                  "equityMin",
                  "equityMax",
                  "equityOffered",
                  "postedAtIso"
                ]
              },
              "display": {
                "component": "table",
                "properties": {
                  "jobId": {
                    "label": "Job ID",
                    "format": "text"
                  },
                  "title": {
                    "label": "Title",
                    "format": "text"
                  },
                  "companyName": {
                    "label": "Company",
                    "format": "text"
                  },
                  "jobUrl": {
                    "label": "Job URL",
                    "format": "link"
                  },
                  "compensation": {
                    "label": "Compensation",
                    "format": "text"
                  },
                  "salaryMin": {
                    "label": "Salary min",
                    "format": "number"
                  },
                  "salaryMax": {
                    "label": "Salary max",
                    "format": "number"
                  },
                  "salaryCurrency": {
                    "label": "Currency",
                    "format": "text"
                  },
                  "salaryPeriod": {
                    "label": "Period",
                    "format": "text"
                  },
                  "equityMin": {
                    "label": "Equity min",
                    "format": "number"
                  },
                  "equityMax": {
                    "label": "Equity max",
                    "format": "number"
                  },
                  "equityOffered": {
                    "label": "Equity offered",
                    "format": "boolean"
                  },
                  "postedAtIso": {
                    "label": "Posted",
                    "format": "text"
                  }
                }
              }
            },
            "companies": {
              "title": "Company profiles",
              "description": "Company identity, funding, badges, founders, socials and perks.",
              "transformation": {
                "fields": [
                  "type",
                  "companyId",
                  "companyName",
                  "companySlug",
                  "companyUrl",
                  "companyLogo",
                  "companyHighConcept",
                  "companyDescription",
                  "companySize",
                  "companySizeCode",
                  "companyStage",
                  "companyFundingTotal",
                  "companyFundingText",
                  "companyFundingRounds",
                  "companyYcFunded",
                  "companyGrowingFast",
                  "companyActivelyHiring",
                  "companyValuation1B",
                  "companyTopInvestors",
                  "companyJobCounts",
                  "companyIndustry",
                  "companyIndustryTags",
                  "companyTypeTags",
                  "companyHq",
                  "companyWebsite",
                  "companyLinkedIn",
                  "companyTwitter",
                  "companyFacebook",
                  "companyBlog",
                  "companyProductHunt",
                  "companyOpenJobsCount",
                  "companyAtGlance",
                  "companyFounders",
                  "perks"
                ]
              },
              "display": {
                "component": "table",
                "properties": {
                  "companyId": {
                    "label": "Company ID",
                    "format": "text"
                  },
                  "companyName": {
                    "label": "Company",
                    "format": "text"
                  },
                  "companySlug": {
                    "label": "Slug",
                    "format": "text"
                  },
                  "companyUrl": {
                    "label": "Wellfound URL",
                    "format": "link"
                  },
                  "companyLogo": {
                    "label": "Logo",
                    "format": "link"
                  },
                  "companyHighConcept": {
                    "label": "High concept",
                    "format": "text"
                  },
                  "companySize": {
                    "label": "Size",
                    "format": "text"
                  },
                  "companySizeCode": {
                    "label": "Size code",
                    "format": "text"
                  },
                  "companyStage": {
                    "label": "Stage",
                    "format": "text"
                  },
                  "companyFundingTotal": {
                    "label": "Funding total",
                    "format": "number"
                  },
                  "companyFundingText": {
                    "label": "Funding text",
                    "format": "text"
                  },
                  "companyFundingRounds": {
                    "label": "Rounds",
                    "format": "number"
                  },
                  "companyYcFunded": {
                    "label": "YC funded",
                    "format": "boolean"
                  },
                  "companyGrowingFast": {
                    "label": "Growing fast",
                    "format": "boolean"
                  },
                  "companyActivelyHiring": {
                    "label": "Actively hiring",
                    "format": "boolean"
                  },
                  "companyValuation1B": {
                    "label": "Valuation $1B+",
                    "format": "boolean"
                  },
                  "companyTopInvestors": {
                    "label": "Top investors",
                    "format": "boolean"
                  },
                  "companyIndustry": {
                    "label": "Industry",
                    "format": "text"
                  },
                  "companyIndustryTags": {
                    "label": "Industry tags",
                    "format": "array"
                  },
                  "companyTypeTags": {
                    "label": "Type tags",
                    "format": "array"
                  },
                  "companyHq": {
                    "label": "HQ",
                    "format": "text"
                  },
                  "companyWebsite": {
                    "label": "Website",
                    "format": "link"
                  },
                  "companyLinkedIn": {
                    "label": "LinkedIn",
                    "format": "link"
                  },
                  "companyTwitter": {
                    "label": "Twitter",
                    "format": "link"
                  },
                  "companyFacebook": {
                    "label": "Facebook",
                    "format": "link"
                  },
                  "companyBlog": {
                    "label": "Blog",
                    "format": "link"
                  },
                  "companyProductHunt": {
                    "label": "Product Hunt",
                    "format": "link"
                  },
                  "companyOpenJobsCount": {
                    "label": "Open jobs",
                    "format": "number"
                  },
                  "companyAtGlance": {
                    "label": "At a glance",
                    "format": "text"
                  },
                  "companyFounders": {
                    "label": "Founders",
                    "format": "array"
                  },
                  "perks": {
                    "label": "Perks",
                    "format": "array"
                  }
                }
              }
            },
            "startups": {
              "title": "Startup directory",
              "description": "Company records from /startups with size, stage, description, badges, job counts, industry tags and HQ.",
              "transformation": {
                "fields": [
                  "type",
                  "companyId",
                  "companyName",
                  "companySlug",
                  "companyUrl",
                  "companyLogo",
                  "companyHighConcept",
                  "companyDescription",
                  "companySize",
                  "companySizeCode",
                  "companyStage",
                  "badges",
                  "companyYcFunded",
                  "companyGrowingFast",
                  "companyActivelyHiring",
                  "companyValuation1B",
                  "companyTopInvestors",
                  "companyJobCounts",
                  "companyOpenJobsCount",
                  "companyIndustryTags",
                  "companyTypeTags",
                  "companyHq",
                  "companyWebsite",
                  "firstSeenAt",
                  "lastSeenAt",
                  "scrapedAt"
                ]
              },
              "display": {
                "component": "table",
                "properties": {
                  "type": {
                    "label": "Record type",
                    "format": "text"
                  },
                  "companyId": {
                    "label": "Company ID",
                    "format": "text"
                  },
                  "companyName": {
                    "label": "Company",
                    "format": "text"
                  },
                  "companySlug": {
                    "label": "Slug",
                    "format": "text"
                  },
                  "companyUrl": {
                    "label": "Wellfound URL",
                    "format": "link"
                  },
                  "companyLogo": {
                    "label": "Logo",
                    "format": "link"
                  },
                  "companyHighConcept": {
                    "label": "High concept",
                    "format": "text"
                  },
                  "companyDescription": {
                    "label": "Description",
                    "format": "text"
                  },
                  "companySize": {
                    "label": "Size",
                    "format": "text"
                  },
                  "companyStage": {
                    "label": "Stage",
                    "format": "text"
                  },
                  "companyYcFunded": {
                    "label": "YC funded",
                    "format": "boolean"
                  },
                  "companyGrowingFast": {
                    "label": "Growing fast",
                    "format": "boolean"
                  },
                  "companyActivelyHiring": {
                    "label": "Actively hiring",
                    "format": "boolean"
                  },
                  "companyJobCounts": {
                    "label": "Job counts",
                    "format": "text"
                  },
                  "companyOpenJobsCount": {
                    "label": "Open jobs",
                    "format": "number"
                  },
                  "companyIndustryTags": {
                    "label": "Industry tags",
                    "format": "array"
                  },
                  "companyHq": {
                    "label": "HQ",
                    "format": "text"
                  },
                  "companyWebsite": {
                    "label": "Website",
                    "format": "link"
                  },
                  "firstSeenAt": {
                    "label": "First seen",
                    "format": "text"
                  },
                  "lastSeenAt": {
                    "label": "Last seen",
                    "format": "text"
                  }
                }
              }
            },
            "remote": {
              "title": "Remote jobs",
              "description": "Remote jobs and accepted remote locations.",
              "transformation": {
                "fields": [
                  "jobId",
                  "title",
                  "companyName",
                  "jobUrl",
                  "remote",
                  "remoteKind",
                  "locations",
                  "acceptedRemoteLocations",
                  "salaryMin",
                  "salaryMax",
                  "salaryCurrency",
                  "postedAtIso"
                ]
              },
              "display": {
                "component": "table",
                "properties": {
                  "jobId": {
                    "label": "Job ID",
                    "format": "text"
                  },
                  "title": {
                    "label": "Title",
                    "format": "text"
                  },
                  "companyName": {
                    "label": "Company",
                    "format": "text"
                  },
                  "jobUrl": {
                    "label": "Job URL",
                    "format": "link"
                  },
                  "remote": {
                    "label": "Remote",
                    "format": "boolean"
                  },
                  "remoteKind": {
                    "label": "Remote kind",
                    "format": "text"
                  },
                  "locations": {
                    "label": "Locations",
                    "format": "array"
                  },
                  "acceptedRemoteLocations": {
                    "label": "Accepted remote locations",
                    "format": "array"
                  },
                  "salaryMin": {
                    "label": "Salary min",
                    "format": "number"
                  },
                  "salaryMax": {
                    "label": "Salary max",
                    "format": "number"
                  },
                  "salaryCurrency": {
                    "label": "Currency",
                    "format": "text"
                  },
                  "postedAtIso": {
                    "label": "Posted",
                    "format": "text"
                  }
                }
              }
            }
          }
        }
      },
      "dockerfile": "../Dockerfile",
      "readme": "# Wellfound Startup Jobs Finder with Pay & Remote Filters\n\nScrape live startup jobs and startup directory profiles from Wellfound (formerly AngelList Talent). Search by role, city or remote work, pull structured salary and equity ranges, visa and relocation details, and company signals such as size, stage, YC funding and open roles. Filter everything in one run, monitor new postings with a saved state key, and export clean job and company datasets.\n\n## What this actor does\n\n- **Jobs and companies:** search jobs by role, location or remote, or read startup directory pages for company profiles.\n- **Rich job records:** title, company, locations, remote details, structured salary and equity, description, skills, perks, visa/relocation data and application source.\n- **Company context:** size, stage, high concept, description, badges, YC/growing/actively-hiring/valuation signals, funding, founders, website and social links, industry and open job counts.\n- **Filter and monitor:** posting age, title/keyword, job type, experience, salary/currency, equity, company size/stage, YC, funding, open jobs, visa sponsorship and WFH flexibility; sort by newest or oldest, or emit only IDs not seen before for a saved state key.\n- **Empty fields are omitted** — records only include data Wellfound actually exposes, with no `null`, empty strings or placeholders.\n\n## Output per job\n\n- `type` — always `wellfound_job`.\n- `jobId`, `title`, `slug`, `jobUrl` — job identity and canonical Wellfound URL.\n- `description`, `descriptionHtml` — plain-text and full HTML job description.\n- `compensation` — raw compensation string exactly as Wellfound publishes it.\n- `salaryMin`, `salaryMax`, `salaryCurrency`, `salaryPeriod` — parsed salary range, currency (`USD`, `CAD` or `INR`) and period (usually annual).\n- `equityMin`, `equityMax`, `equityOffered` — equity percentage range; `equityOffered` is `false` only when the source says \"No equity\".\n- `remote`, `remoteKind`, `remoteWfhFlexible`, `acceptedRemoteLocations`, `locations` — remote flag, remote configuration and location lists.\n- `jobType`, `yearsExperienceMin`, `skills`, `primaryRoleTitle` — employment type, minimum experience and skill tags.\n- `visaSponsorship`, `relocationAllowed`, `relocationAssistance` — eligibility details.\n- `applyUrl`, `atsSource`, `source`, `directApply` — application URL and integration signals.\n- `companyId`, `companyName`, `companySlug`, `companyUrl`, `companyLogo` — company identity and logo.\n- `companyHighConcept`, `companyDescription`, `companySize`, `companySizeCode`, `companyStage`, `companyIndustry`, `companyIndustryTags`, `companyTypeTags`, `companyHq`, `companyAtGlance` — company profile and classification.\n- `badges`, `companyYcFunded`, `companyGrowingFast`, `companyActivelyHiring`, `companyValuation1B`, `companyTopInvestors` — hiring and maturity signals.\n- `companyFundingTotal`, `companyFundingText`, `companyFundingRounds`, `companyFounders`, `companyOpenJobsCount`, `companyJobCounts` — funding, people and open-role context.\n- `companyWebsite`, `companyLinkedIn`, `companyTwitter`, `companyFacebook`, `companyBlog`, `companyProductHunt` — company links.\n- `perks`, `benefits` — listed perks and benefits.\n- `postedAt`, `postedAtIso`, `reposted`, `lastRespondedAt`, `autoPosted` — posting and response timing.\n- `isNew`, `firstSeenAt`, `lastSeenAt` — monitoring timestamps, present only when `stateKey` is set.\n- `scrapedAt` — UTC collection timestamp.\n\n`companyJobCounts` is an object with `total` plus `roles`, `locations`, `jobTypes` and `jobSources` arrays of `{name, count}` entries when Wellfound exposes them.\n\n## Output per company\n\n- `type` — always `wellfound_company`.\n- `companyId`, `companyName`, `companySlug`, `companyUrl`, `companyLogo` — company identity and profile link.\n- `companyHighConcept`, `companyDescription` — one-line concept and plain-text description.\n- `companySize`, `companySizeCode`, `companyStage` — human-readable size, raw size code and stage.\n- `badges`, `companyYcFunded`, `companyGrowingFast`, `companyActivelyHiring`, `companyValuation1B`, `companyTopInvestors` — badge labels and company signals.\n- `companyJobCounts`, `companyOpenJobsCount` — open-role totals, including role, location, job-type and source breakdowns when available.\n- `companyIndustryTags`, `companyTypeTags`, `companyHq` — industry, company-type and headquarters tags.\n- `companyWebsite` — company website.\n- `isNew`, `firstSeenAt`, `lastSeenAt` — monitoring timestamps, present only when `stateKey` is set.\n- `scrapedAt` — UTC collection timestamp.\n\n## Input\n\n| Field | Type | Default | Description |\n|---|---|---|---|\n| `mode` | string | `auto` | `auto` uses `startUrls` when provided, otherwise role/location search. `search` builds a role/location/remote search. `startUrls` scrapes the supplied URLs. `companies` reads the startup directory. |\n| `startUrls` | array | `[]` | Wellfound URLs to scrape, including `/startups` directory URLs in companies mode. Supports an explicit `?page=N`. Example: `https://wellfound.com/jobs`. |\n| `role` | string | – | Role slug for search mode, e.g. `software-engineer`, `product-manager`, `designer`. |\n| `jobTitle` | string | – | Case-insensitive substring filter on the job title. |\n| `keyword` | string | – | Case-insensitive substring across title, company, locations, compensation and description. |\n| `location` | string | – | Used in the location path when it is a clean city slug/name, and always applied as a filter over locations plus accepted remote locations. |\n| `remoteOnly` | boolean | `false` | Search remote jobs and keep only jobs flagged as remote. |\n| `jobType` | string | `any` | Exact structured type: `any`, `full-time`, `part-time`, `contract` or `internship`. |\n| `experience` | string | `any` | Best-effort level: `junior`, `mid`, `senior`, `executive`. Title keywords first, then minimum years (0-2 junior, 3-4 mid, 5+ senior). Unknown jobs are kept and counted. |\n| `minSalary` | integer | `0` | Keep jobs whose salary range top is at or above this value in the job's listed currency. 0 = off. Range 0-10,000,000. |\n| `maxSalary` | integer | `0` | Keep jobs whose salary range bottom is at or below this value. 0 = unlimited. Range 0-10,000,000. |\n| `salaryCurrency` | string | `any` | `any`, `USD`, `CAD` or `INR`. No FX conversion; a different-currency salary is dropped. |\n| `includeNoSalary` | boolean | `true` | Only active when `minSalary` or `maxSalary` is set. `false` drops jobs with no parsed salary. |\n| `companyCategories` | array | – | Matches Wellfound market/industry/company-type tags and the company high concept. Not a company-name filter; requires `enrichDetails=true`. |\n| `includeCompanies` | array | – | Keep jobs whose company name or slug contains one of these values. |\n| `excludeCompanies` | array | – | Drop jobs whose company name or slug contains one of these values. Exclusions win. |\n| `postedWithinDays` | integer | `0` | Keep jobs posted within the last N days. Jobs without a parsed date are dropped and counted. 0 = off. Range 0-3650. |\n| `companySizes` | array | – | Keep rows matching company size values such as `11-50`, `51-200` or `SIZE_51_200`. Missing sizes are dropped and counted. |\n| `companyStages` | array | – | Keep rows matching stages such as `seed`, `early-stage`, `growth-stage` or `scale-stage`. Missing stages are dropped and counted. |\n| `ycOnly` | boolean | `false` | Keep rows with the YC Funded badge. |\n| `minCompanyFunding` | integer | `0` | Keep jobs with parsed total funding at or above this amount. Requires `enrichDetails=true`; missing funding is dropped. Range 0-10,000,000,000. |\n| `minOpenJobs` | integer | `0` | Keep rows with at least this many open company jobs. Requires `enrichDetails=true` for jobs; missing counts are dropped. Range 0-100,000. |\n| `visaSponsorshipOnly` | boolean | `false` | Keep jobs whose detail page says visa sponsorship is available. Requires `enrichDetails=true`. |\n| `minEquity` | number | `0` | Keep jobs whose equity range top is at or above this percentage. Jobs without equity data are dropped. Range 0-100. |\n| `maxEquity` | number | `0` | Keep jobs whose equity range bottom is at or below this percentage. 0 = unlimited. Range 0-100. |\n| `equityOnly` | boolean | `false` | Keep jobs that explicitly offer equity; jobs that say No equity or do not mention equity are dropped. |\n| `remoteWfhFlexible` | boolean | `false` | Keep jobs whose remote configuration explicitly reports WFH flexibility. Requires `enrichDetails=true`. |\n| `sort` | string | `none` | `none` keeps first-seen order; `newest`/`oldest` sort the whole run by posted date, missing dates last. |\n| `pageLimit` | integer | `0` | 0 = all pages up to the available page count; N = first N pages. An explicit `?page=N` fetches only that page. Range 0-500. |\n| `enrichDetails` | boolean | `true` | Fetch full detail pages for selected jobs to add description HTML, structured salary/equity, visa/relocation, skills, company funding, founders, socials and benefits. Direct job URLs are always enriched. |\n| `maxItems` | integer | `50` | Maximum jobs or companies pushed after filtering and sorting. Range 1-10,000. |\n| `onlyNew` | boolean | `false` | Push only IDs not seen before for `stateKey`; requires `stateKey`. |\n| `stateKey` | string | – | Persistent key that remembers seen job/company IDs between runs. Changing it starts a fresh history. |\n| `expandSimilar` | boolean | `false` | Add related jobs from the detail page, bounded by `similarDepth` and `similarLimit`. |\n| `similarDepth` | integer | `1` | `1` emits embedded similar jobs; `2`-`3` follow additional detail pages within `similarLimit`. Range 1-3. |\n| `similarLimit` | integer | `10` | Maximum additional similar jobs emitted, also bounded by `maxItems`. Range 1-100. |\n\n### Example: software engineering roles in San Francisco\n\n```json\n{\n  \"mode\": \"search\",\n  \"role\": \"software-engineer\",\n  \"location\": \"san-francisco\",\n  \"pageLimit\": 2,\n  \"maxItems\": 40\n}\n```\n\n### Example: remote design roles with a salary floor\n\n```json\n{\n  \"mode\": \"search\",\n  \"role\": \"designer\",\n  \"remoteOnly\": true,\n  \"minSalary\": 100000,\n  \"includeNoSalary\": false,\n  \"maxItems\": 50\n}\n```\n\n### Example: scrape a single job page\n\n```json\n{\n  \"mode\": \"startUrls\",\n  \"startUrls\": [\n    { \"url\": \"https://wellfound.com/jobs/4728540-software-engineer\" }\n  ],\n  \"enrichDetails\": true,\n  \"maxItems\": 1\n}\n```\n\n### Example: startup directory filtered by size and stage\n\n```json\n{\n  \"mode\": \"companies\",\n  \"startUrls\": [\n    { \"url\": \"https://wellfound.com/startups\" }\n  ],\n  \"companySizes\": [\"11-50\", \"51-200\"],\n  \"companyStages\": [\"seed\", \"early-stage\"],\n  \"maxItems\": 20\n}\n```\n\n## Use cases\n\n- **Recruiting and sourcing** — build a pipeline of startup roles by role, city and salary band.\n- **Job boards and aggregators** — refresh startup listings with structured salary, equity and remote data.\n- **Market research** — track startup hiring by company size, stage, YC status and funding.\n- **Sales and go-to-market** — find actively hiring startups and use team size and stage as buying signals.\n- **Career coaching and job seekers** — monitor new remote roles and filter by visa sponsorship or WFH flexibility.\n- **Startup ecosystem analysis** — export directory profiles for regional or industry research.\n\n## FAQ\n\n### Do I need a Wellfound account or cookies?\n\nNo. The actor reads public Wellfound pages without cookies or a login. The login-gated `/jobs/search` page is not used.\n\n### Why are results fewer than `maxItems`?\n\nWellfound search pages expose only 1-3 highlighted jobs per startup, so a role/location search reaches roughly 56-82% of Wellfound's claimed total. Use more specific role, location or remote sources, raise `pageLimit`, or relax filters to widen the pool.\n\n### Why is a location sometimes not used in the page path?\n\nOnly clean city slugs or city names are put in the path. Free text with commas or unsupported characters falls back to a role-only or `/jobs` source and is still applied as a filter over the returned locations.\n\n### How do salary and equity filters work?\n\n`minSalary` compares the **top** of the job's salary range to the floor; `maxSalary` compares the **bottom** of the range to the cap. No currency conversion is performed, so a job with a salary in another currency is dropped when `salaryCurrency` is set. `includeNoSalary` only covers jobs with no parsed salary. Equity percentages are stored as percentages (`0.01` means 0.01%).\n\n### Are company profile pages included?\n\nNo. Company profile pages (`/company/*`) return HTTP 403 to anonymous access, so the actor never fetches them. Company data comes from the startup directory and job detail pages.\n\n### Why are investor names or the full team missing?\n\nInvestor names and the full team are not exposed by Wellfound in structured form. `companyTopInvestors` is a boolean badge, not a list of names, and `companyFounders` is limited to founders shown on a job detail page. `yearsExperienceMax` is likewise never populated; only `yearsExperienceMin` is available.\n\n### Can I get every job at one company?\n\nNo. Company pages are unavailable and the startup directory only exposes counts, so the actor cannot enumerate every job at one company. Search pages show a subset of each startup's open roles.\n\n### Why are some fields missing from a record?\n\nWellfound does not expose every field for every job or company. Conditional fields such as skills, founders, funding, socials, perks and equity appear only when the source provides them. Empty fields are omitted and never replaced with `null` or a placeholder.\n\n### Is this affiliated with Wellfound?\n\nNo. This is an independent tool that reads Wellfound's public pages and is not affiliated with, endorsed by or sponsored by Wellfound or AngelList.\n"
    },
    "buildNumber": "1.1.1",
    "imageDigest": "2a5b04fc89cf1402d968185173df8e5e5b3c45db117dd6e449868540badf717c",
    "actVersion": {
      "sourceType": "SOURCE_FILES",
      "buildTag": "latest",
      "versionNumber": "1.1"
    },
    "usage": {
      "ACTOR_COMPUTE_UNITS": 0.01193888888888889
    }
  }
}