# Wellfound Jobs Search Scraper (`soft_alexist/wellfound-jobs-search-scraper`) Actor

Scrape job search results from Wellfound with precision. This scraper captures job titles, company names, sizes, high concepts, highlighted listings, logos, and IDs across tech and startup roles — perfect for recruiters, job aggregators, and labor market researchers.

- **URL**: https://apify.com/soft\_alexist/wellfound-jobs-search-scraper.md
- **Developed by:** [Soft Alexist](https://apify.com/soft_alexist) (community)
- **Categories:** Automation, Developer tools, Jobs
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-usage

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Wellfound Jobs Search Scraper: Extract Startup Job Listings Instantly
---

### What Is Wellfound?

Wellfound (formerly AngelList Talent) is the leading job platform for startup and early-stage company positions worldwide. It specializes in connecting entrepreneurs and investors with developers, designers, marketers, and other tech-focused roles. With thousands of active job listings filtered by location, skill level, and funding stage, it is a goldmine for tech talent research. The **Wellfound Jobs Search Scraper** automates data collection from Wellfound's search results, transforming listings into structured records ready for analysis or integration.

---

### Overview

The **Wellfound Jobs Search Scraper** extracts job search result pages from Wellfound, gathering key details about open positions and hiring companies. It is ideal for:

- **Startup recruiters** aggregating and analyzing job postings across locations
- **HR teams** benchmarking startup compensation and hiring trends
- **Job aggregator platforms** feeding Wellfound data into multi-source job boards
- **Researchers** studying startup hiring patterns and job market dynamics
- **Career analysts** tracking tech employment trends by geography and company stage

The scraper handles URL failures gracefully, supports high-volume collection per search page, and delivers clean, machine-readable data.

---

### Input Format

The scraper requires a simple JSON configuration:

```json
{
  "urls": [
    "https://wellfound.com/role/l/software-engineer/united-states"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 200
}
````

| Field | Type | Description |
|---|---|---|
| `urls` | Array | Wellfound job search result URLs (e.g., filtered by role, location, or keyword) |
| `max_items_per_url` | Integer | Maximum number of job listings to extract per URL (e.g., `20`, `200`) |
| `ignore_url_failures` | Boolean | If `true`, the scraper continues running even if some URLs fail; if `false`, it stops at the first error |

**URL structure example:**

- `https://wellfound.com/role/l/software-engineer/united-states` — Software Engineer roles in the US
- `https://wellfound.com/role/l/product-manager/united-kingdom` — Product Manager roles in the UK

You can use Wellfound's filter options to create URLs by role, location, experience level, or job type, then paste them into the `urls` array.

> **Tip:** Use `max_items_per_url: 200` for comprehensive data collection; reduce to `20–50` for quick test runs.

***

### Output Format

**Sample output record:**

```json
{
  "id": "4618110",
  "name": "Paperless Parts",
  "slug": "paperless-parts",
  "company_size": "SIZE_51_200",
  "high_concept": "The secure, ITAR compliant cloud-based platform revolutionizing the manufacturing industry",
  "highlighted_job_listings": [
    {
      "__typename": "JobListingSearchResult",
      "auto_posted": false,
      "ats_source": "AtsIntegration::Greenhouse::Listing",
      "description": "**About the Role**\n\nJoin our engineering team as a Software Engineer and help build the platform that powers modern manufacturing. You’ll work across the full stack, collaborating with engineers, designers, and product managers to ship end-to-end features that customers feel. Our teams are data-driven and outcome-focused, organized around clear user goals so they can own the success of the customers they serve. It’s a great role for an engineer who wants to grow quickly, work with a modern stack, and build practical fluency with AI-assisted development from day one.\n\n**Who You Are**\n\n- **Detail-Oriented Builder:** You care about the quality of your work because you know how it impacts our customers. You sweat the details and take pride in shipping features you can stand behind.\n- **Eager to Grow:** You understand what it takes to build robust, scalable, and secure software, and you're driven to keep getting better. You welcome feedback and learn quickly from the engineers around you.\n- **Collaborative Teammate:** You've worked in an agile environment and know how to collaborate with your team in an iterative fashion to achieve shared goals.\n- **Curious About AI:** You're excited to make AI tooling part of how you work, using it to move faster while still understanding and standing behind what you ship.\n\n**Why You’ll Love Working Here**\n\n- **Customer-Centric Focus:** We put our customers at the center of everything we do. Your work will directly contribute to their success.\n- **Modern Technology:** We work across a modern stack — Python (Django and FastAPI), TypeScript and React, PostgreSQL, and AWS — and we're actively investing in how AI can accelerate our software development lifecycle.\n- **Complex and Meaningful Challenges:** Our software is used in critical industries like aerospace and defense, requiring robust, secure, and scalable solutions. You’ll be solving problems that truly matter.\n- **Collaborative and Inclusive Culture:** We believe that diverse teams build better products. Our culture emphasizes collaboration, continuous learning, and mutual respect.\n- **Growth Opportunities:** You’ll learn from experienced engineers, take on increasing ownership, and build skills that compound over your career.\n\n**What You’ll Do**\n\n- **Build End-to-End Features:** Build and maintain flexible, scalable, and secure features across the backend and frontend.\n- **Develop APIs:** Build well-documented APIs that securely and efficiently serve data for internal and external use.\n- **Work With AI Tools:** Use AI coding assistants (such as Cursor and Claude Code) as part of your daily workflow to accelerate delivery, and experiment with new approaches — always reviewing, testing, and understanding what you ship.\n- **Improve Quality Continuously:** Make ongoing improvements to the quality of our core product, from tests and tooling to shared libraries and engineering practices.\n- **Collaborate Across Roles:** Work closely with engineers, designers, and product managers to build a product that makes our customers’ lives better.\n- **Write Code Others Can Build On:** Produce clear, well-typed, well-documented code that’s easy for teammates — and AI agents — to reason about.\n\n**What You’ll Bring**\n\n- Bachelor’s degree in Computer Science, Engineering, or a related field, or equivalent practical experience.\n- 2+ years of experience writing code in an object-oriented language.\n- Experience with a modern web application stack, e.g. Python/Django, Node/Express, or Java/Spring.\n- Experience with frontend development using TypeScript and React (or a similar modern framework).\n- Experience with API design, development, and documentation.\n- Familiarity with a cloud provider such as AWS, Azure, or GCP.\n- Solid understanding of SQL and relational databases.\n- Experience building applications with Docker and CI/CD tooling such as Jenkins.\n- Curiosity about applying AI tools to everyday engineering work, with good judgment about when to trust their output.\n- Excellent communication skills, both verbally and in writing.\n\n**Why Join Us?**\n\n- **Impactful Work:** Your contributions will power industries critical to our society and economy, making a real difference in the world.\n- **Continuous Learning:** We invest in our people and offer opportunities to learn, grow, and advance their careers.\n- **Supportive Culture:** Our team is our greatest asset, and we foster an environment where everyone can thrive.\n\nIf you’re a forward-thinking engineer eager to make a significant impact while working with a talented, driven team, we’d love to hear from you!\n\nSalary range: $124,000-$168,000  \n  \nThe job posting range is the lowest to highest salary we in good faith believe we would pay for this role at the time of this posting. We may ultimately pay more or less than the posted range, and the range may be modified in the future. An employee’s pay position within the salary range will be based on several factors including, but not limited to, relevant education, qualifications, certifications, experience, skills, performance, sales or revenue-based metrics, and business or organizational needs.\n\n",
      "job_type": "full-time",
      "live_start_at": 1783372803,
      "location_names": [
        "Boston"
      ],
      "primary_role_title": "Software Engineer",
      "remote": false,
      "remote_config": null,
      "accepted_remote_location_names": [],
      "slug": "software-engineer",
      "title": "Software Engineer",
      "compensation": "$124k – $168k",
      "years_experience_min": null,
      "years_experience_max": null,
      "id": "4435606",
      "is_bookmarked": false
    },
    {
      "__typename": "JobListingSearchResult",
      "auto_posted": false,
      "ats_source": "AtsIntegration::Greenhouse::Listing",
      "description": "**About the Role**\n\nJoin our engineering team as a Senior Software Engineer and play a crucial role in building the solutions that power manufacturing shops. You’ll work across the full stack — designing backend services and building rich, user-facing experiences — and take ownership of meaningful slices of the product. You’ll work with a modern tech stack, solve complex problems, mentor other engineers, and help shape how we adopt AI across our engineering workflow. This role is ideal for engineers who pair technical excellence with a drive for customer impact.\n\n**Who You Are**\n\n- **Technically Excellent:** You combine deep technical skill with a passion for delivering value to customers, and you build scalable, maintainable systems that meet real-world needs.\n- **Customer-Driven Innovator:** You thrive in environments that encourage innovation and you’re driven to build products that make a difference.\n- **AI-Fluent with Good Judgment:** You use AI tools to multiply your output while owning the quality, reliability, and security of what you ship, and you know when to lean on them and when not to.\n- **Lifts the Team:** You help the engineers around you get better, sharing what you know and raising the bar through code review and mentorship.\n\n**Why You’ll Love Working Here**\n\n- **Customer-Centric Focus:** We put our customers at the center of everything we do. Your work will directly contribute to their success.\n- **Modern Technology:** We work across a modern stack — Python (Django and FastAPI), TypeScript and React, PostgreSQL, and AWS — and we're actively investing in how AI can accelerate our software development lifecycle.\n- **Complex and Meaningful Challenges:** Our software is used in critical industries like aerospace and defense, requiring robust, secure, and scalable solutions. You’ll be solving problems that truly matter.\n- **Collaborative and Inclusive Culture:** We believe that diverse teams build better products. Our culture emphasizes collaboration, continuous learning, and mutual respect.\n- **Growth Opportunities:** You’ll mentor others, influence technical direction, and grow with us as we scale.\n\n**What You’ll Do**\n\n- **Build Across the Stack:** Design, implement, and maintain scalable, high-performance features spanning Python backends and React frontends.\n- **Design APIs:** Develop robust, secure, versioned APIs that enable seamless integration and data access.\n- **Apply AI Across the SDLC:** Use AI tools fluently across the software development lifecycle — planning, coding, testing, review, and documentation — develop effective patterns for AI-assisted work, and share what works with the team.\n- **Solve Complex Problems:** Tackle deeply technical challenges across the stack, balancing trade-offs to deliver secure, compliant solutions that meet our customers’ needs.\n- **Champion Engineering Excellence:** Advance our practices — testing, observability, code review, and context-first documentation — so our codebase stays high-quality, performant, and legible to both humans and AI agents.\n- **Mentor and Grow Talent:** Share your expertise with less experienced engineers, fostering a culture of continuous learning.\n- **Collaborate Across Teams:** Work closely with designers, product managers, and other engineers to deliver products that exceed customer expectations.\n\n**What You’ll Bring**\n\n- 5+ years of experience delivering impactful software, with strong object-oriented fundamentals.\n- Proficiency in a modern backend web stack, such as Python/Django or FastAPI, Node/Express, or Java/Spring.\n- Hands-on frontend experience with TypeScript and React, building and maintaining production user interfaces.\n- Hands-on experience with AWS, designing and deploying scalable, resilient cloud architectures.\n- Experience with relational and non-relational databases, with a clear sense of when to use each.\n- Strong experience with API design, development, documentation, and versioning.\n- Expertise building and deploying applications with Docker and CI/CD tooling like Jenkins.\n- Practical experience using AI coding tools in a real engineering workflow, with sound judgment about where they help and where they don’t.\n- Strong communication skills, conveying complex technical concepts to technical and non-technical stakeholders.\n\n**Why Join Us?**\n\n- **Impactful Work:** Your contributions will power industries critical to our society and economy, making a real difference in the world.\n- **Continuous Learning:** We invest in our people and offer opportunities to learn, grow, and advance their careers.\n- **Supportive Culture:** Our team is our greatest asset, and we foster an environment where everyone can thrive.\n\nIf you’re a forward-thinking engineer eager to make a significant impact while working with a talented, driven team, we’d love to hear from you!\n\n**Salary range:**  $142,000 - $192,000\n\nThe job posting range is the lowest to highest salary we in good faith believe we would pay for this role at the time of this posting. We may ultimately pay more or less than the posted range, and the range may be modified in the future. An employee’s pay position within the salary range will be based on several factors including, but not limited to, relevant education, qualifications, certifications, experience, skills, performance, sales or revenue-based metrics, and business or organizational needs.\n\n",
      "job_type": "full-time",
      "live_start_at": 1783372805,
      "location_names": [
        "Boston"
      ],
      "primary_role_title": "Software Engineer",
      "remote": false,
      "remote_config": null,
      "accepted_remote_location_names": [],
      "slug": "senior-software-engineer",
      "title": "Senior Software Engineer",
      "compensation": "$142k – $192k",
      "years_experience_min": null,
      "years_experience_max": null,
      "id": "4435607",
      "is_bookmarked": false
    },
    {
      "__typename": "JobListingSearchResult",
      "auto_posted": false,
      "ats_source": "AtsIntegration::Greenhouse::Listing",
      "description": "**About the Role** \n\nStep into the role of Technical Lead for our newly formed engineering pod, building the core manufacturing intelligence engine powering the future of Paperless Parts. In this high-leverage role, you will act as the bridge between the art of the possible and high-velocity engineering execution. You will translate cutting-edge models and algorithms into production-grade training pipelines and inference services.\n\nAs the technical anchor of a lean, ambitious team, you will drive R&D execution across our entire machine learning lifecycle—from data labeling strategies to low-latency model inference. You will ensure that our approach to computer vision, document intelligence, and predictive modeling is both mathematically rigorous and operationally sound.\n\n**Who You Are**\n\n- **Rigorous yet Pragmatic:** You possess a deep theoretical grounding in machine learning and artificial intelligence fundamentals, but you are driven by shipping code that solves real-world, industrial problems. You don’t just apply models; you understand the underlying mathematics, optimization functions, and architectural trade-offs.\n- **Mentor & Force Multiplier:** You are passionate about teaching and elevating early-career technical talent. You enjoy breaking down complex concepts and foster a culture of engineering discipline and curiosity.\n- **AI Strategist:** You understand the trade-offs inherent in technology decisions and think strategically about when to use frontier models, when to train our own, and when to use deterministic solutions.\n- **Collaborative Partner:** You seamlessly collaborate with researchers, other engineering teams, and business stakeholders, helping ensure we build the right technology, deploy it scalably, and bring it to market.\n\n**Why You'll Love Working Here**\n\n- **R&D Ownership:** You will lead the technical execution of a new, highly visible engineering pod tasked with solving some of the toughest geometric and document-processing challenges in tech.\n- **Complex Data & Unique Problems:** Our engineering team deals with rich data, including 2D drawings and 3D CAD models. Your work will change what’s possible in manufacturing.\n- **A Culture of Rigor and Velocity:** We value intentionality, persistence, and deep technical discipline. You will have the freedom to meld academic-level inquiry with the agility of a fast-scaling startup.\n- **High-Impact Mission:** Our platform powers manufacturing for critical industries like aerospace, defense, and medical devices. The models your team deploys directly impact the physical creation of products that move the world forward.\n\n**What You'll Do**\n\n- **Drive R&D Execution:** Own planning and execution of the AI/ML pod’s backlog. Partner closely with the Chief Scientist and other engineering pods to ensure the research pipeline aligns smoothly with border product timelines.\n- **Prototype and Transition:** Lead the hands-on prototyping of novel solutions and transition of successful proofs-of-concept into production-ready services. Guide the strategic migration of workloads, identifying opportunities to shift repetitive tasks from expensive frontier models to fine-tuned, open-source architectures.\n- **Operationalize ML Infrastructure:** Develop scalable, repeatable approaches to labeling data, training models, and deploying services that support our products with AI capabilities.\n- **Design Rigorous Benchmarks:** Define and track metrics that evaluate the effectiveness and costs of our AI-powered solutions, enabling key technology decisions to be data-driven.\n- **Mentor the Pod:** Act as the technical anchor and primary mentor for early-career ML engineers. Cultivate an engineering culture of deep theoretical and practical rigor through hands-on pairing and comprehensive design and code reviews.\n\n**What You'll Bring**\n\n- **8+ years of experience** in relevant R&D roles with a strong background in SaaS products at scale (start-up to scale-up transition experience preferred).\n- **Advanced Academic Foundation:** a technical degree in Computer Science, Applied Mathematics, or closely related field, with a strong understanding of the mathematics behind modern AI/ML techniques is essential. An advanced degree and track record of peer-reviewed publications is a strong plus when paired with proven software experience in industry.\n- **AI/ML Fundamentals:** A robust understanding of core machine learning and deep learning theory, including neural networks, statistical modeling and inference, and metric learning.\n- **MLOps:** Experience working with cloud-native patterns for ML pipelines, including platforms like AWS SageMaker.\n- **Communication Mastery:** Exceptional ability to communicate complex technical concepts to non-technical stakeholders and influence decisions without relying on authority. This may include technical talks and publications.\n\n**Why Join Us?**\n\n- **Impactful Work:** Your contributions will power industries critical to our society and economy, making a real difference.\n- **Continuous Learning:** We invest in our people and offer opportunities to learn, grow, and advance their careers.\n- **Supportive Culture:** Our team is our greatest asset, and we foster an environment where everyone can thrive.\n\nIf you’re a forward-thinking engineer eager to make a significant impact while working with a talented, driven team, we’d love to hear from you!\n\n**Salary range:**  $195,000 - $263,000\n\nThe job posting range is the lowest to highest salary we in good faith believe we would pay for this role at the time of this posting. We may ultimately pay more or less than the posted range, and the range may be modified in the future. An employee’s pay position within the salary range will be based on several factors including, but not limited to, relevant education, qualifications, certifications, experience, skills, performance, sales or revenue-based metrics, and business or organizational needs.\n\n",
      "job_type": "full-time",
      "live_start_at": 1783372807,
      "location_names": [
        "Boston"
      ],
      "primary_role_title": "Data Scientist",
      "remote": false,
      "remote_config": null,
      "accepted_remote_location_names": [],
      "slug": "staff-machine-learning-engineer-technical-lead",
      "title": "Staff Machine Learning Engineer, Technical Lead",
      "compensation": "$195k – $263k",
      "years_experience_min": null,
      "years_experience_max": null,
      "id": "4435608",
      "is_bookmarked": false
    }
  ],
  "logo_url": "https://photos.wellfound.com/startups/i/4618110-443b9682aec856a7696e874273a19218-medium_jpg.jpg?buster=1504812623",
  "from_url": "https://wellfound.com/role/l/software-engineer/united-states"
}
```

Each job listing returned contains the following fields:

#### Core Identification

| Field | Meaning |
|---|---|
| `id` | Unique Wellfound identifier for the job listing |
| `name` | Job title (e.g., "Senior Software Engineer") |
| `slug` | URL-friendly version of the job title |

#### Company Information

| Field | Meaning |
|---|---|
| `company_size` | Number of employees (e.g., "1-10", "50-100", "500+") — indicates startup stage and scale |
| `logo_url` | Direct URL to the company's logo image |

#### Job Details & Visibility

| Field | Meaning |
|---|---|
| `high_concept` | Brief one-line description of the company's mission or what it does (e.g., "AI-powered scheduling platform") |
| `highlighted_job_listings` | Flag or count indicating whether the job posting is featured/promoted on Wellfound's platform |

***

### How to Use

1. **Identify search criteria** — Visit Wellfound.com and use the search/filter interface to find roles matching your criteria (location, role, experience level).
2. **Copy the URL** — Once filtered, copy the resulting page URL from the browser address bar.
3. **Populate the input** — Paste the URL into the `urls` array. You can add multiple search result pages to collect data across different searches.
4. **Set collection limits** — Adjust `max_items_per_url` based on your needs (200 for bulk collection, 20–50 for testing).
5. **Enable robustness** — Set `ignore_url_failures: true` to skip problematic URLs without halting the entire run.
6. **Execute & export** — Run the scraper and download results in JSON, CSV, or Excel format.

**Best practices:**

- Test with a single URL and low `max_items_per_url` (e.g., `10`) before running large-scale scrapes.
- Use broad search filters to capture more results; narrow filters may return few listings per page.
- Check the exported data for completeness before using in production systems.

***

### Use Cases & Business Value

- **Job market intelligence:** Track startup hiring trends, salary competitiveness, and in-demand roles by location
- **Competitive analysis:** Monitor which startups are actively hiring and in which markets
- **Job board aggregation:** Integrate Wellfound listings into multi-source job search platforms
- **Startup research:** Analyze hiring patterns correlated with funding rounds, geographic expansion, or market sectors
- **Career planning:** Identify high-growth startup markets and hiring hotspots for job seekers

By automating data collection from Wellfound, teams save weeks of manual research while building datasets rich enough for statistical analysis, trend forecasting, and strategic planning.

***

### Conclusion

The **Wellfound Jobs Search Scraper** is a powerful tool for anyone analyzing startup hiring or aggregating tech job data. With a simple configuration and seven essential output fields, it turns Wellfound search results into actionable intelligence. Whether you're a recruiter, researcher, or platform builder, this scraper unlocks startup job data at scale — eliminating hours of manual work and enabling data-driven decision-making.

# Actor input Schema

## `urls` (type: `array`):

Add the URLs of the Jobs list urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.

## `ignore_url_failures` (type: `boolean`):

If true, the scraper will continue running even if some URLs fail to be scraped.

## `max_items_per_url` (type: `integer`):

The maximum number of items to scrape per URL.

## Actor input object example

```json
{
  "urls": [
    "https://wellfound.com/role/l/software-engineer/united-states"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "urls": [
        "https://wellfound.com/role/l/software-engineer/united-states"
    ],
    "ignore_url_failures": true,
    "max_items_per_url": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("soft_alexist/wellfound-jobs-search-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "urls": ["https://wellfound.com/role/l/software-engineer/united-states"],
    "ignore_url_failures": True,
    "max_items_per_url": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("soft_alexist/wellfound-jobs-search-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "urls": [
    "https://wellfound.com/role/l/software-engineer/united-states"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}' |
apify call soft_alexist/wellfound-jobs-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=soft_alexist/wellfound-jobs-search-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Wellfound Jobs Search Scraper",
        "description": "Scrape job search results from Wellfound with precision. This scraper captures job titles, company names, sizes, high concepts, highlighted listings, logos, and IDs across tech and startup roles — perfect for recruiters, job aggregators, and labor market researchers.",
        "version": "0.0",
        "x-build-id": "vavH7k3jeeyfsFRTR"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/soft_alexist~wellfound-jobs-search-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-soft_alexist-wellfound-jobs-search-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/soft_alexist~wellfound-jobs-search-scraper/runs": {
            "post": {
                "operationId": "runs-sync-soft_alexist-wellfound-jobs-search-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/soft_alexist~wellfound-jobs-search-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-soft_alexist-wellfound-jobs-search-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": {
                    "urls": {
                        "title": "URLs of the Jobs list urls to scrape",
                        "type": "array",
                        "description": "Add the URLs of the Jobs list urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "ignore_url_failures": {
                        "title": "Continue running even if some URLs fail to be scraped",
                        "type": "boolean",
                        "description": "If true, the scraper will continue running even if some URLs fail to be scraped."
                    },
                    "max_items_per_url": {
                        "title": "Max items per URL",
                        "type": "integer",
                        "description": "The maximum number of items to scrape per URL."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
