πŸš€ Wellfound Jobs Scraper avatar

πŸš€ Wellfound Jobs Scraper

Pricing

from $3.99 / 1,000 results

Go to Apify Store
πŸš€ Wellfound Jobs Scraper

πŸš€ Wellfound Jobs Scraper

Scrape job listings from Wellfound (formerly AngelList Talent) at scale. Search by location, company, keyword, or paste raw URLs.

Pricing

from $3.99 / 1,000 results

Rating

0.0

(0)

Developer

ScrapeMesh

ScrapeMesh

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

13 hours ago

Last modified

Share

Extract real‑time job listings from Wellfound (formerly AngelList Talent) at scale β€” straight into a structured Apify dataset.

Search by location, company, keyword, or paste bulk Wellfound URLs. Each job is enriched with title, company, salary range, employment type, posting date, location, and the full job description.


🌟 Why Choose This Actor?

βœ…What you get
πŸ›‘οΈSmart anti-bot fallback β€” starts with no proxy, automatically escalates to Datacenter β†’ Residential when Wellfound's protections kick in
πŸ’ΎLive dataset writes β€” each job is pushed the moment it's parsed, so a long run never loses progress
🌍70+ country geo-targeting for residential proxy sessions
🧭Two ways to search β€” bulk URLs or friendly filters (location / keyword / company)
πŸŽ›οΈFilters out the noise β€” by date posted, job type, or company match
πŸ“Full job descriptions β€” opens each detail page and grabs the complete description
πŸ“ŠBeautiful Console table β€” overview and full-detail views, ready to export

⚑ Key Features

  • πŸ”— Bulk URL input via startUrls β€” paste up to thousands of Wellfound URLs
  • πŸ“ Search-by-filter when you don't have URLs: locationName, companyName, includeKeyword
  • πŸ“„ Multi-page pagination with automatic lazy-scroll handling
  • πŸ“… Date filter: today / past 3 days / past week / past month / all
  • πŸ’Ό Job-type filter: Full-time / Part-time / Contract / Internship / any
  • 🌐 UTM-tagged URLs ready for click attribution
  • πŸ›‘οΈ Tiered proxy fallback with sticky residential sessions
  • πŸ’³ Pay-per-event monetization β€” you pay only for results that actually land in your dataset

πŸ“₯ Input

All fields are optional individually, but you must provide at least one of: startUrls, locationName, companyName, or includeKeyword.

{
"startUrls": [
{ "url": "https://wellfound.com/jobs?location=new-york" }
],
"countryName": "United States",
"locationName": "New York",
"companyName": "",
"includeKeyword": "python engineer",
"pagesToFetch": 5,
"jobType": "FULLTIME",
"datePosted": "week",
"fetchDescriptions": true,
"requestDelay": 1.0,
"proxyConfiguration": { "useApifyProxy": false }
}

Field reference

FieldTypeDescription
startUrlsarrayBulk Wellfound URLs (search pages or job-detail pages).
countryNamestringISO 3166-1 country name (dropdown in the console) for residential proxy geo-targeting.
locationNamestringCity/region built into the search URL (e.g. San Francisco).
companyNamestringFilters cards by company name (loose match).
includeKeywordstringExtra search term β€” role, skill, technology, etc.
pagesToFetchintegerResult pages to walk per seed URL (1–100).
jobTypeenumFULLTIME, PARTTIME, CONTRACTOR, INTERN, or empty.
datePostedenumtoday, 3days, week, month, all.
fetchDescriptionsbooleanOpen each detail page for the full description (slower, richer).
requestDelaynumberSeconds (float). Random jitter is layered in code.
proxyConfigurationobjectApify proxy config. Default = no proxy; auto-escalates on block.

πŸ“€ Output

Each dataset row has this shape:

{
"job_title": "Founding Product Manager",
"company_name": "Sardine",
"location": "San Francisco",
"posted_via": "Wellfound",
"salary": "150K–185K a year",
"job_type": "Contract",
"date": "today",
"URL": "https://wellfound.com/jobs/4235686-founding-product-manager?utm_campaign=google_jobs_apply&utm_source=google_jobs_apply&utm_medium=organic",
"description": "We are starting an office in San Francisco …"
}
FieldDescription
job_titleThe role title as shown on the card.
company_nameHiring company.
locationComma-joined locations, or "Remote" for remote roles.
posted_viaAlways Wellfound.
salaryNormalized range, e.g. 150K–185K a year.
job_typeFull-time, Part-time, Contract, Internship, or empty.
dateRelative posting date (e.g. today, yesterday, 3 days ago).
URLDirect link to the job with UTM tracking appended.
descriptionFull description (when fetchDescriptions=true).

The dataset ships with two ready-made views:

  • πŸ“‹ Overview β€” title, company, salary, job type, date, location, link
  • πŸ“ Full Details β€” adds the description column

πŸš€ How to Use (Apify Console)

  1. Sign in at console.apify.com β†’ Actors.
  2. Open Wellfound Jobs Scraper.
  3. Configure your input:
    • Paste URLs in startUrls, or fill in Location / Keyword / Company.
    • Optionally set pagesToFetch, jobType, datePosted.
    • Leave Proxy on the default β€” the actor escalates automatically only if needed.
  4. Click β–Ά Start.
  5. Watch the live log β€” each job appears in real time:
    βœ… [12] Founding Product Manager @ Sardine | 150K–185K a year | San Francisco
  6. Open the Output tab when the run finishes β€” switch between the Overview and Full Details views.
  7. Export to JSON / CSV / Excel with one click.

πŸ€– Use via API

Start a run with curl (replace <ACTOR_ID> and $APIFY_TOKEN):

curl -X POST "https://api.apify.com/v2/acts/<ACTOR_ID>/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"locationName": "New York",
"pagesToFetch": 3,
"datePosted": "week"
}'

Or kick off an async run and poll for status:

curl -X POST "https://api.apify.com/v2/acts/<ACTOR_ID>/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"startUrls":[{"url":"https://wellfound.com/jobs?location=san-francisco"}]}'

πŸ’‘ Best Use Cases

  • πŸ“Š Job-market intel β€” track hiring velocity by city, role, or company
  • 🧲 Sourcing & lead-gen β€” build candidate or recruiter contact lists
  • πŸ“ˆ Salary benchmarking β€” collect comp ranges across companies
  • πŸ§ͺ Competitor monitoring β€” see who's hiring for what at which stage
  • πŸ€– Train AI agents β€” feed structured, fresh job text to LLMs

πŸ’° Pricing

This actor uses Apify's Pay-per-event (PPE) model:

EventWhat you pay for
row_resultEach job record successfully written to the dataset

You're billed only for jobs that actually land in your output β€” blocked pages, retries, and skipped duplicates are on us.

Set your Max charge $ limit in the run options to control your spend precisely. When you hit the cap, the actor exits gracefully with a partial dataset β€” never a failed run.


❓ Frequently Asked Questions

Q: Do I need to configure a proxy? No. The actor starts with a direct connection. Only if Wellfound's anti-bot protection rejects a request does it escalate β€” first to a datacenter proxy, then to a residential session. You'll see the escalation logged.

Q: Why are some description fields empty? You either turned off fetchDescriptions or the detail page was blocked during that specific request. Re-running with fetchDescriptions=true and the default proxy settings usually fills these in.

Q: Can I scrape a single job by URL? Yes. Put the detail URL (e.g. https://wellfound.com/jobs/4235686-founding-product-manager) into startUrls and the actor will fetch it directly.

Q: How current is the data? It's pulled live every run. Wellfound's date field uses relative phrasing ("today", "3 days ago") β€” we preserve that exact text in the date column.

Q: Does this scrape private/authenticated content? No. Only publicly available job postings are collected.


  • Data is collected only from publicly visible Wellfound pages.
  • The end user is responsible for compliance with GDPR, CCPA, CAN-SPAM, and Wellfound's Terms of Service.
  • Honor reasonable rate limits β€” the default requestDelay of 1s is intentionally polite.

πŸ›Ÿ Support and Feedback

Issues, ideas, or feature requests? Open an issue or contact us via the Apify Console. We respond fast and ship fixes regularly.