# Y Combinator Companies & Jobs - 6,000+ startups + open roles (`codeyouknowadmin/yc-companies-and-jobs`) Actor

Export YC startups from the official directory (batch, status, team size, industries, hiring flag) or every open job at hiring YC companies from Work at a Startup (salary, equity, visa, skills, founders). Filter by batch, keyword, industry, region, remote.

- **URL**: https://apify.com/codeyouknowadmin/yc-companies-and-jobs.md
- **Developed by:** [Denis Liamkin](https://apify.com/codeyouknowadmin) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 job returneds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Y Combinator Companies & Jobs — the whole YC directory and every open role, filtered

Two things in one Actor:

- **Companies mode** — all 6,000+ Y Combinator companies from YC's official directory as clean JSON/CSV: name, website/domain, batch, status, one-liner, description, team size, industries, tags, locations, hiring flag.
- **Jobs mode** — every open job at hiring YC startups from **Work at a Startup**: title, location, remote, job type, salary and equity ranges, visa policy, minimum experience, plus the company profile (batch, team size, industries, tech stack, founders with LinkedIn). Optionally the full description and required skills.

Filter by batch (`F26`, `S26`, `W25`…), keyword, industry, tag, region, status, team size, hiring — and in jobs mode by job title keywords, remote, visa-friendly.

### Who uses this

- **Job seekers** — "remote engineering roles at YC startups from the last 3 batches that sponsor visas" → a table with salary, equity and apply links.
- **Recruiters & sourcing** — which YC companies are hiring for what, right now, with founder contacts.
- **Sales & lead gen** — active B2B YC companies with 5–50 employees, with domains ready for enrichment.
- **Investors & researchers** — batch composition, team-size growth, hiring velocity per industry.
- **AI agents** — "which YC companies do AI voice, and are they hiring?" answered in one MCP tool call.

### Sample output

**Company (companies mode):**

```json
{
  "id": 38127, "name": "DeepMark", "slug": "deepmark",
  "ycUrl": "https://www.ycombinator.com/companies/deepmark",
  "website": "https://www.deepmark.me", "domain": "deepmark.me",
  "batch": "F26", "status": "Active",
  "oneLiner": "A live watermark inside AI voice that survives phone calls",
  "longDescription": "DeepMark is the authentication layer for AI voice. ...",
  "teamSize": 5, "industries": ["B2B", "Security"], "tags": ["Deep Learning", "B2B", "Cybersecurity"],
  "regions": ["United States of America", "Remote", "Partly Remote"], "locations": ["San Francisco"],
  "isHiring": true, "careersUrl": "https://www.workatastartup.com/companies/deepmark"
}
```

**Job (jobs mode):**

```json
{
  "id": "yc-job:13302", "jobId": 13302,
  "title": "Software Engineer - Backend",
  "url": "https://www.workatastartup.com/jobs/13302",
  "location": "Seattle, WA", "remote": false, "jobType": "Full-time",
  "salaryRange": "$80K - $140K", "salaryMin": 80000, "salaryMax": 140000, "salaryPeriod": "yearly",
  "equityRange": "0.05% - 0.15%", "sponsorsVisa": "US citizen/visa only", "minExperience": "3+ years",
  "skills": ["Amazon Web Services (AWS)", "Node.js", "React"],
  "description": "At Mason we build software and services to help companies deploy ...",
  "company": {
    "name": "Mason", "slug": "mason", "batch": "W16",
    "oneLiner": "Mason is the fastest way to take smart devices from idea to end user",
    "website": "http://www.bymason.com", "location": "Seattle, WA", "teamSize": 65,
    "industry": "B2B", "industries": ["B2B Software and Services"],
    "techStack": "Android, AOSP hacking, Node.js services on AWS, React frontend, Python CLI, Docker",
    "founders": [{ "name": "Jim Xiao", "linkedin": "https://www.linkedin.com/in/jimxiao", "bio": "..." }],
    "ycUrl": "https://www.ycombinator.com/companies/mason",
    "waasUrl": "https://www.workatastartup.com/companies/mason"
  }
}
```

### Pricing

- **Companies: $1.00 per 1,000 companies.** The whole directory (~6,000) ≈ $6; one batch ≈ $0.20.
- **Jobs: $2.00 per 1,000 jobs.** Every open YC job (~2,800) ≈ $5.60; a filtered remote-engineering list is usually well under $1. Full job details cost the same per job.

Free-plan users receive up to 100 results per run.

### How to use

1. Pick **mode**: companies or jobs.
2. Narrow with **batches**, **keywords**, **industries**, **tags**, **regions**, **status**, **team size**; in jobs mode also **job title keywords**, **remote only**, **visa-friendly only**.
3. Turn on **Include full job details** if you need descriptions and skills.
4. Run, then export CSV/Excel/JSON or push to Google Sheets, Airtable, HubSpot, Slack via integrations. Schedule it to track new batches or new roles.

### Data sources & reliability

Companies come from Y Combinator's official public directory API (no HTML scraping). Jobs come from the public, server-rendered Work at a Startup pages of each hiring company — parsed from the page's embedded JSON, not from CSS selectors, so layout changes don't break it. No login, no API key. A proxy is not needed by default; if a run reports blocked pages, enable Apify Proxy in the input.

### Tips

- Remote-friendly YC jobs: `mode: jobs`, `jobRemoteOnly: true`, `batches: ["F26","S26","W26"]`.
- Lead list: `mode: companies`, `industries: ["B2B"]`, `minTeamSize: 5`, `maxTeamSize: 50`, `statuses: ["Active"]`, then feed `domain` into an email-finder Actor.
- Hiring velocity: schedule `mode: jobs` weekly and diff the datasets.

### See also

- [Remote Jobs Aggregator](https://apify.com/codeyouknowadmin/remote-jobs-aggregator) — 6 remote job boards in one deduplicated feed with job-alert monitor mode.
- [Hacker News Scraper](https://apify.com/codeyouknowadmin/hacker-news-scraper) — HN search, feeds and the monthly "Who is hiring?" thread as structured postings.

# Actor input Schema

## `mode` (type: `string`):

companies = export companies from YC's directory; jobs = every open job at the matching (hiring) companies, from Work at a Startup.

## `batches` (type: `array`):

YC batch codes, e.g. \["F26", "S26", "W25"]. Leave empty for all batches (~6,000 companies).

## `keywords` (type: `array`):

Match against name, one-liner, description, tags and industries. Example: \["fintech", "payments"].

## `industries` (type: `array`):

Substring match on industries, e.g. \["B2B", "Healthcare", "Fintech", "Consumer", "Industrials"].

## `tags` (type: `array`):

Substring match on tags, e.g. \["AI", "Developer Tools", "SaaS", "Marketplace"].

## `regions` (type: `array`):

Substring match on regions and locations, e.g. \["Remote", "Europe", "San Francisco", "India"].

## `statuses` (type: `array`):

Company status: Active, Acquired, Public, Inactive.

## `hiringOnly` (type: `boolean`):

Keep only companies flagged as hiring on YC's directory.

## `minTeamSize` (type: `integer`):

Keep companies with at least this many employees.

## `maxTeamSize` (type: `integer`):

Keep companies with at most this many employees.

## `searchQuery` (type: `string`):

Free-text search passed to YC's directory search (fast). Combine with the filters above.

## `maxCompanies` (type: `integer`):

Upper bound of results written (you pay per company).

## `jobKeywords` (type: `array`):

Keep jobs whose title/location contain ANY of these, e.g. \["engineer", "designer"].

## `jobRemoteOnly` (type: `boolean`):

Keep only jobs whose location mentions remote.

## `jobVisaOnly` (type: `boolean`):

Drop jobs marked e.g. "US citizen/visa only".

## `includeJobDetails` (type: `boolean`):

Fetch each job's page for the full description, required skills and interview process. One extra request per job (slower, same price per job).

## `maxJobs` (type: `integer`):

Upper bound on jobs written (you pay per job).

## `concurrency` (type: `integer`):

Parallel page fetches. Lower it if you see 429s.

## `proxyConfiguration` (type: `object`):

Optional. Job pages are fetched without a proxy by default; enable Apify Proxy only if the run reports blocked (403/429) pages.

## Actor input object example

```json
{
  "mode": "companies",
  "batches": [
    "F26"
  ],
  "hiringOnly": false,
  "maxCompanies": 1000,
  "jobRemoteOnly": false,
  "jobVisaOnly": false,
  "includeJobDetails": false,
  "maxJobs": 2000,
  "concurrency": 5,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `results` (type: `string`):

YC companies (companies mode) or open jobs at YC companies (jobs mode), one item each, in the default dataset.

# 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 = {
    "batches": [
        "F26"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("codeyouknowadmin/yc-companies-and-jobs").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 = { "batches": ["F26"] }

# Run the Actor and wait for it to finish
run = client.actor("codeyouknowadmin/yc-companies-and-jobs").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "batches": [
    "F26"
  ]
}' |
apify call codeyouknowadmin/yc-companies-and-jobs --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,codeyouknowadmin/yc-companies-and-jobs"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/hNwY0X9Rb10eq44on/builds/Ytsrp7mULgePwYZUh/openapi.json
