Company Scout
Under maintenancePricing
Pay per usage
Company Scout
Under maintenanceAn Actor that finds YCombinator companies matching your criteria, enriches each with its matching LinkedIn company record, and scrapes LinkedIn job postings for the resulting shortlist.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Tri⟁angle
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
0
Monthly active users
a day ago
Last modified
Categories
Share
An Apify Actor that finds YCombinator companies matching your criteria, enriches each with its matching LinkedIn company record, and scrapes LinkedIn job postings for the resulting shortlist.
What does Company Scout do?
Company Scout discovers startup companies and their hiring signals in one pass:
- Queries the YCombinator directory with your filters (search query, batch, status, industry, region, team size, launch date, hiring state).
- For each YC company it searches LinkedIn for the matching company page, picks the best candidate by domain, and captures the numeric LinkedIn company ID and jobs-search URL.
- Scrapes LinkedIn job postings for each matched company.
- Optionally applies user-defined filters (JS expressions and/or an LLM-evaluated prompt) to prune the result set.
Why use Company Scout?
- Combine YC's curated startup directory with LinkedIn's canonical company data and live job postings in a single dataset.
- Pre-built enrichment pipeline: no need to hand-roll domain-to-LinkedIn matching, company-ID resolution, and job scraping across three separate actors.
- Filter results with either deterministic JS expressions (
evalFilter) or an LLM prompt (llmFilter) before they hit the dataset. - Runs on the Apify platform with proxy rotation, scheduling, and API access out of the box.
How to use Company Scout
- Set your YC filters (
search_query,batch,status,industry,regions,min_team_size,launched_after,is_hiring,max_items). - Tune the LinkedIn enrichment options (
linkedin_jobs_count,scrape_company). - (Optional) Add
filters(JS expressions) and/or afilter_prompt(LLM instruction) to narrow the shortlist. - Run the Actor. Results land in the default dataset.
Input
See the Input tab in Apify Console for the full form. Input schema lives at .actor/input_schema.json and generates the Input TypeScript type at src/generated/input.ts.
Output
Each dataset item corresponds to one YC company, with LinkedIn enrichment and jobs attached. The output type is auto-generated from .actor/dataset_schema.json:
// biome-ignore-all lint: generated// biome-ignore-all format: generated/* eslint-disable *//* prettier-ignore-start *//** This file was automatically generated by json-schema-to-typescript.* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,* and run apify actor generate-schema-types to regenerate this file.*/export interface Dataset {/*** Raw YCombinator company record.*/yCombinator: {id: number;name: string;slug: string;ycUrl: string;website: string;oneLiner: string;longDescription: string;batch: string;status: string;stage: string;teamSize: number | null;industry: string;subindustry: string;industries: string[];regions: string[];allLocations: string;tags: string[];topCompany: boolean;isHiring: boolean;nonprofit: boolean;formerNames: string[];logoUrl: string;launchedAt: string;};/*** Best-matched LinkedIn company record, or null if no match was found.*/linkedin: {id: string;universalName: string;linkedinUrl: string;jobSearchUrl: string;name: string;tagline?: string | null;description?: string | null;website?: string | null;companyType?: string;active?: boolean;pageVerified?: boolean;employeeCount?: number;followerCount?: number;employeeCountRange?: {start?: number;end?: number;} | null;logo?: string;} | null;/*** LinkedIn job postings scraped for the matched company.*/linkedinJobs: {id: string;title: string;link: string;location: string;postedAt: string;salary?: string;seniorityLevel?: string;employmentType?: string;jobFunction?: string;industries?: string;applicantsCount?: string;applyUrl?: string;descriptionText?: string;descriptionHtml?: string;benefits?: unknown[];refId?: string;trackingId?: string;inputUrl?: string;companyName?: string;companyLinkedinUrl?: string;companyLogo?: string;companyWebsite?: string;companyDescription?: string;companySlogan?: string;companyEmployeesCount?: number;companyAddress?: {type?: string;addressCountry?: string;addressLocality?: string;addressRegion?: string;postalCode?: string;streetAddress?: string;};jobPosterName?: string;jobPosterTitle?: string;jobPosterPhoto?: string;jobPosterProfileUrl?: string;}[];}
You can download the dataset in JSON, CSV, XML, or Excel format from the Apify Console or via the API.
Pricing
Company Scout orchestrates three downstream Actors. Costs scale with the size of your YC filter set and the number of jobs per matched company. Rough per-YC-company cost:
- LinkedIn company search: 0.001 start + 0.002/candidate (10 candidates by default) ≈ 0.021.
- LinkedIn jobs scrape: variable per posting.
For a 100-company YC batch expect ≈2 for enrichment, plus jobs scraping. Set linkedin_jobs_count lower or scrape_company: false to reduce cost.
Tips
- Set
is_hiring: trueto skip companies with no open positions — this is the default. - Lower
linkedin_jobs_countif you only need the first page of jobs per company. filtersruns deterministic JS on each enriched company (fast, free).filter_promptruns the LLM in batches of 100 (slower, incurs LLM cost).
FAQ
- Where does the data come from? YCombinator's public directory (via
60eqjQF63gs0tlags), LinkedIn's public company search (viataHaRcqil3scbchuI), and LinkedIn's public jobs pages (viahKByXkMQaC5Qt9UMN). No LinkedIn account or cookies required. - Can I schedule this? Yes — use Apify Schedules to run daily, weekly, or on any cron expression.
- Something looks wrong. Please file an issue on the Actor's Issues tab.