Work at a Startup (YC) Jobs Scraper avatar

Work at a Startup (YC) Jobs Scraper

Pricing

from $3.00 / 1,000 serp results

Go to Apify Store
Work at a Startup (YC) Jobs Scraper

Work at a Startup (YC) Jobs Scraper

Scrape jobs from Y Combinator's Work at a Startup. Returns title, YC batch (W25/S24), company URL/team size, salary range, equity, visa sponsorship, min experience, remote type, tech stack, founder replies flag, and full hiring description. Pay-per-result.

Pricing

from $3.00 / 1,000 serp results

Rating

0.0

(0)

Developer

NanoScrape

NanoScrape

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

8 days ago

Last modified

Share

Work at a Startup (YC) Jobs Scraper: Batch, Equity, Founders

Pull live job listings from Y Combinator's official Work at a Startup board (workatastartup.com). Only YC-funded companies post here: the ~1,000 vetted startups YC has invested in. Each record includes the YC batch (W25, S24, F26 and so on), the company's website URL, industry, team size, salary range, equity window, visa sponsorship signal, minimum experience, remote type, tech stack, founder profiles, and the full hiring description. No API key, no registration.

Sample output

[
{
"_type": "job",
"id": "103933",
"title": "Senior Software Engineer, Machine Learning",
"company_name": "Hive",
"company_slug": "hive",
"company_url": "http://www.hive.co",
"company_one_liner": "Marketing automation for event promoters (email, sms, ads, CRM)",
"yc_batch": "S14",
"yc_top_company": false,
"industry": "B2B -> Marketing",
"team_size": 65,
"location": "CA / Remote (CA)",
"company_location": "Kitchener, Canada",
"remote_type": "hybrid",
"employment_type": "full-time",
"role_type": "Machine learning",
"salary_range": {
"min": 124000,
"max": 188000,
"currency": "CAD"
},
"salary_text": "$124K - $188K CAD",
"equity_range": null,
"experience_years_min": 5,
"experience_years_max": 5,
"sponsors_visa": true,
"sponsors_visa_text": "US citizenship/visa not required",
"founder_replies_directly": false,
"tech_stack": ["JavaScript", "Docker", "Kubernetes"],
"founders": [
{
"name": "Patrick Hannigan",
"bio": "Founder @ www.hive.co",
"past_companies": "Product Designer at Desire2Learn, Growth Engineer and Designer at Bunch",
"linkedin": "https://www.linkedin.com/in/patrickhannigan/",
"avatar_url": "https://bookface-images.s3.amazonaws.com/avatars/9868df01b4cec4ac4a81c77a78af56f9ad44604e.jpg"
}
],
"hiring_description_text": "Hive is the industry-best marketing platform for event marketers. Our platform powers marketing for 1500+ of the most iconic event, festivals, venues, promoters, and event-centric brands across North America...",
"apply_url": "https://account.ycombinator.com/authenticate?continue=https%3A%2F%2Fwww.workatastartup.com%2Fapplication%3Fsignup_job_id%3D103933",
"source_url": "https://www.workatastartup.com/companies/hive",
"job_url": "https://www.workatastartup.com/jobs/103933",
"company_profile_url": "https://www.workatastartup.com/companies/hive",
"source_platform": "workatastartup",
"search_query": "software engineer",
"scraped_at": "2026-08-19T11:26:41Z",
"company_about": "Hive is the industry-best marketing platform for event marketers...",
"company_phone": null,
"company_email": null,
"company_website": "https://hive.co",
"company_address_street": null,
"company_address_city": null,
"company_address_postcode": null,
"company_address_country": null,
"company_active_jobs_count": 4,
"company_active_jobs": [
{"title": "Senior Backend Engineer", "job_url": "https://www.workatastartup.com/jobs/104112", "location": "Remote", "salary_text": "$150K - $200K", "description_snippet": null}
]
}
]

Pricing

EventPrice
Actor start$0.001
SERP result (per job)$0.003
Detail result (per job with company enrichment)$0.005
Company profile (unique employer, when includeCompanyDetails=true)$0.005

Around $8 per 1,000 fully-enriched jobs (SERP + detail), or $3 per 1,000 SERP-only if you turn includeJobDetails: false. Failed detail fetches are not charged.

New to Apify? Every account gets a $5 free monthly platform credit, enough for around 500-600 fully-enriched Work at a Startup jobs before you commit to paying anything.

Input

No API key required. Choose one or more role keywords; the actor maps each to a Work at a Startup role bucket.

FieldTypeRequiredDescriptionExample
searchQueriesarrayNoRole keywords (engineer, designer, pm, growth, ops, finance, legal, recruiter, ml, sales, ...). Unknown keywords default to software-engineer.["software engineer", "designer", "product manager"]
maxResultsintegerNoTotal cap across all queries. Default 5.500
maxResultsPerQueryintegerNoPer-bucket cap (public pages surface ~20-30 jobs per role). Default 5 so multi-query runs distribute across all buckets.30
includeJobDetailsbooleanNoFetch each unique company page for hiring description, tech stack, founders, salary/equity/visa/experience. Default false.true
includeCompanyDetailsbooleanNoAlso emit company_about, company_website, company_active_jobs[] snapshots per unique YC company. Deduplicated per company. Implies includeJobDetails=true.true
maxConcurrencyintegerNoConcurrent company detail requests (1-10). Default 5.5

Output fields

Job core

  • id: Work at a Startup internal job ID.
  • title: Role title.
  • role_type: Role category from the listing (e.g. "Machine learning", "Frontend").
  • employment_type: full-time, part-time, contract, intern, or raw string.
  • location: Job location string as published.
  • remote_type: 100%-remote, hybrid, or onsite.

YC / company

  • company_name, company_slug, company_url, company_one_liner, company_logo_url.
  • yc_batch: Y Combinator batch (e.g. W25, S24, F26).
  • yc_top_company: Whether the company holds YC's Top Companies designation.
  • industry, team_size, company_location.

Compensation

  • salary_range: {min, max, currency}, parsed from strings like $124K - $188K CAD.
  • salary_text: Raw salary string.
  • equity_range: {min_pct, max_pct}, percentage-based equity window.
  • equity_text: Raw equity string.

Requirements

  • experience_years_min, experience_years_max: Numeric years of experience parsed from strings like "5+ years" or "3-5 years".
  • sponsors_visa: Boolean. True when the listing explicitly does not require existing US work status, false when it does, null when unknown.
  • sponsors_visa_text: Raw sponsorship string.

Signal / differentiation

  • founder_replies_directly: Work at a Startup surfaces a badge when a company's founders personally reply to applicants. Very useful signal for candidates.
  • tech_stack: Tech tokens detected in the company's engineering description (React, TypeScript, Postgres, Kafka, PyTorch, Rust, LangChain, ...).
  • founders: Array of {name, bio, past_companies, linkedin, avatar_url} for each founder.

Descriptions

  • hiring_description_html, hiring_description_text: Company-level hiring pitch.
  • tech_description_html, tech_description_text: Engineering description (roles that expose it).

Links / metadata

  • apply_url: Direct apply link (routes through YC's account signup).
  • job_url: Canonical job posting URL (https://www.workatastartup.com/jobs/{id}).
  • company_profile_url: Company profile page (https://www.workatastartup.com/companies/{slug}).
  • source_url: Legacy alias of company_profile_url, kept for back-compat.
  • source_platform: Always workatastartup.
  • search_query: Query that produced this hit.
  • scraped_at: ISO timestamp of when this record was fetched.
  • posted_at: Always null. Work at a Startup does not expose listing/posting dates in any public endpoint (SERP, company page, or job detail). Use scraped_at as a recency proxy.

Employer profile (populated when includeCompanyDetails=true)

  • company_about: Company description text from the YC company page (aliases company_one_liner + hiring copy)
  • company_website: Alias of company_url
  • company_phone, company_email, company_address_*: Usually null. WAAS does not publish postal addresses or contact details.
  • company_active_jobs_count: Number of other currently-open roles at the same YC company
  • company_active_jobs: Snapshot of other open roles at this company (title, location, salary text)

Note: founders[] and tech_stack[] are already emitted at the top level for every row. We do not duplicate them under a company_founders/company_tech_stack prefix.

Use with AI Agents (MCP)

Connect this actor to any MCP-compatible AI client: Claude Desktop, Claude.ai, Cursor, VS Code, LangChain, LlamaIndex, or custom agents.

Apify MCP server URL:

https://mcp.apify.com?tools=santamaria-automations/workatastartup-scraper

Example prompt once connected:

"Use workatastartup-scraper to find every YC W25 or S25 engineering role where the company sponsors visas and the founders reply directly. Return a table with title, company, batch, salary range."

Clients that support dynamic tool discovery (Claude.ai, VS Code) receive the full input schema automatically via add-actor.

Why this actor

  • YC-only signal. Every result is a company Y Combinator has funded, a much narrower and higher-quality slice than a generic job board.
  • YC batch as a first-class field. Filter or segment by cohort (W25 vs S24) without regex.
  • Rare fields other job scrapers miss: equity range, founder profiles (name, LinkedIn, past companies), founder-replies flag, YC top-company badge.
  • Two-stage architecture: SERP scan finds jobs, company page enriches with rich detail. One request per unique company, not per job, so it stays cost-efficient.
  • Failed detail fetches are not charged.

Common use cases

  • Recruiter agencies: Track newly-posted senior engineering roles at every W25/S25 company sponsoring visas for outbound candidates.
  • Investors / analysts: Monitor hiring velocity per YC batch as a leading indicator of company growth.
  • Job seekers: Build alerts filtered by founder_replies_directly=true and specific tech stack tokens.
  • CRM enrichment: Enrich a list of YC portfolio companies with current job openings + founder LinkedIn profiles.
  • Competitive intelligence: Track a competitor's YC-portfolio hiring signals week over week.

Notes and limits

  • Public Work at a Startup surfaces roughly 20-30 jobs per role bucket for unauthenticated visitors. Deeper filters (location, batch, remote type) require a logged-in YC account and are not accessible via this actor.
  • Ten role buckets are supported: software-engineer, designer, product-manager, sales, marketing, operations, finance, legal, recruiting, science. Query keywords are mapped to buckets automatically.
  • Salary parsing handles USD, CAD, GBP, EUR and common suffixes (K, M). If the salary string is missing, salary_range is null.
  • The founder_replies_directly badge is only set when Work at a Startup emits the flag in their company payload. It is a signal-of-signal, not a guarantee.
  • Tech stack detection scans the engineering description prose. Roles at non-engineering companies typically have empty tech_stack.

Troubleshooting

"No jobs found" The query keyword did not map to a known role bucket AND the default software-engineer bucket returned zero. Remove the searchQueries input entirely to fall through to the default bucket, or try one of: engineer, designer, pm, growth, ops, finance, legal, recruiter, ml, sales.

"Company enrich failed" Occasionally Work at a Startup unpublishes a company or their /companies/{slug} endpoint returns 404 mid-run. The affected job is still emitted with SERP-level fields; only company-level enrichment is skipped for that record. You are not charged for the detail event when this happens.

Equity or salary null on some jobs Not every YC company publishes compensation. When the source string is empty, the parsed range is null. salary_text will also be null in that case.

  • Job Feed: one normalized, deduplicated job feed across 50+ international job boards. Orchestrates the NanoScrape fleet.
  • Career Site Jobs Scraper: scrape jobs directly from company career pages (Greenhouse, Lever, Workday, etc.).
  • Website Job Extractor: extract job listings from any website via HTML pattern detection.

Support

Something broken, or a field you wish this actor returned? Email contact@nanoscrape.com or open a ticket on the actor's Issues tab. We usually respond within one working day.