Career Site Jobs API: 260k Startup Jobs, Updated Daily avatar

Career Site Jobs API: 260k Startup Jobs, Updated Daily

Pricing

from $1.50 / 1,000 jobs

Go to Apify Store
Career Site Jobs API: 260k Startup Jobs, Updated Daily

Career Site Jobs API: 260k Startup Jobs, Updated Daily

Jobs API and job listings API for career site jobs: search 260,000+ open jobs from 8,000+ startup and tech company career sites (Greenhouse, Lever, Ashby) by keyword, location, remote and posting date. Refreshed daily, new-jobs-only mode for alerts. $2 per 1,000 jobs.

Pricing

from $1.50 / 1,000 jobs

Rating

0.0

(0)

Developer

Red Fox Scout

Red Fox Scout

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

2 days ago

Last modified

Share

Career Site Jobs API for startup and tech jobs: search 260,000+ open jobs from 8,000+ company career sites at once (Greenhouse, Lever and Ashby) by keyword, location, remote, pay, experience level and posting date. Switch the output to one row per company to see which companies are hiring for a skill or tool (Salesforce, Snowflake, Kubernetes...) with their open roles and career page links. $2.00 per 1,000 results, refreshed daily.

Every job comes back in one clean table: company, title, department, location, remote/hybrid, pay when published, experience level, posting date and the apply link. Company mode returns one row per company instead, with the matching roles.

The index covers companies hiring on Greenhouse, Lever and Ashby (about 264,000 open jobs on 6 October 2026) and is rebuilt every day from each company's official public job board. Turn on monitoring mode and schedule it to get only jobs that are new since your last run.

Price: $2.00 per 1,000 results. A result is one job, or one company row in company mode. You pay only for results; set maxResults to cap it. Apify's free plan ($5 monthly credit) covers about 2,500 results a month.

Companies hiring for Salesforce this month: real output preview (Companies hiring for Salesforce in the last 30 days: one row per company)

Questions it answers

  • Which companies are hiring for Salesforce, Snowflake or Kubernetes this month?
  • Which startups are hiring machine learning engineers this week?
  • What remote sales jobs were posted in the last 3 days?
  • Which jobs pay at least $150K a year and are remote?
  • Which companies say they offer visa sponsorship for engineers?
  • How do I get a daily list of new jobs that match my filters?

Who uses this

  • ๐Ÿ“‹ Job boards and newsletters: fill a niche board (AI, climate, remote, a city) with fresh postings straight from the source.
  • ๐Ÿค Recruiters and agencies: find every company hiring for the roles you place, the day they post.
  • ๐Ÿ’ผ Sales teams: hiring is a buying signal. Find companies hiring for the tools you sell, or opening sales, data or security roles, and reach them first.
  • ๐Ÿ“Š Market and talent research: track who is hiring for what, where, at what pay, and how fast.

Why this Career Site Jobs API

  • ๐Ÿข Companies hiring for a skill: one row per company with its matching open roles, for Salesforce, Snowflake, Kubernetes or any keyword.
  • โšก Instant results: searches a daily index of 260,000+ jobs from 8,000+ career sites, no crawling wait.
  • ๐Ÿ’ต Pay and level as fields: salary minimum, maximum, currency and period, experience level, years of experience, visa sponsorship mentions and work arrangement.
  • ๐ŸŽฏ Precise filters: title or description search, words to exclude, has salary, minimum pay, remote, posted after.
  • ๐Ÿ”” Only new jobs: monitoring mode returns only jobs not seen in earlier runs.
  • ๐Ÿ’ฐ $2 per 1,000 results, refreshed daily.

How to use the Career Site Jobs API

  1. Click Try for free (a free Apify account is enough).
  2. Type keywords (e.g. Snowflake), and optionally locations, remote only, departments, pay or a posting-date limit.
  3. For a list of companies, set Output rows to One row per company.
  4. Set maxResults to cap the run (and the cost).
  5. Click Start. Results come back in seconds for job search, a minute or two for description search.
  6. Download the results as JSON, CSV or Excel, or schedule the run with monitoring mode on to get only new jobs every morning.

Input

FieldDefaultWhat it does
keywordsmachine learningText to look for. Empty = all jobs. Short words like "AI" match whole words only. Where it is looked for is set by searchIn.
searchIntitleAndDepartmentTitles, departments and teams (default), titles only, or titles plus full job descriptions. Description search reads company boards live (see maxBoardsToScan).
excludeKeywordsโ€“Skip jobs whose title, department or team contains any of these (e.g. intern, senior).
excludeTitleKeywordsโ€“Skip jobs whose title contains any of these. Department and team are not checked.
excludeDescriptionKeywordsโ€“Skip jobs whose full description contains any of these. Reads boards live (see maxBoardsToScan).
locationsโ€“Location text to match: city, region or country. "Remote" also matches remote jobs.
remoteOnlyfalseOnly jobs flagged remote.
postedWithinDays7Only jobs first posted in the last N days. 0 = any date.
postedAfterโ€“Only jobs first posted on or after this date, e.g. 2026-10-01. Combines with postedWithinDays.
departmentsโ€“Department or team text, e.g. Engineering, Sales, Marketing, Data.
atsallLimit to Greenhouse, Lever and/or Ashby companies.
excludeAtsโ€“Skip companies on these applicant tracking systems.
companiesโ€“Limit to specific companies (board name such as stripe, or company name).
excludeCompaniesโ€“Skip these companies (e.g. recruiting agencies).
hasSalaryfalseOnly jobs whose company publishes a pay range.
minSalary0Only jobs whose top published pay is at least this amount a year (hourly pay x 2,080, monthly x 12). Jobs without published pay are dropped. 0 = no minimum.
salaryCurrencyUSDCurrency used by minSalary. Amounts are not converted; postings in other currencies are dropped when a minimum is set.
experienceLevelsallLevel from the job title: intern, entry, mid, senior, lead, executive. See "Derived fields".
workArrangementallremote, hybrid or onsite, from the company's field or the location text.
visaSponsorshipfalseOnly jobs whose description says the company sponsors visas. Reads boards live (see maxBoardsToScan).
groupByjobsjobs: one row per job. companies: one row per company with its matching roles.
maxResults1000Stop after this many rows: jobs newest first, or companies with the most matching roles first. 0 = no limit.
maxPerCompany0Jobs mode only: at most this many jobs per company, so big employers don't fill your results. 0 = no cap.
includeDescriptionfalseJobs mode only: fetch each job's full description live from the company's board.
maxBoardsToScan100Description search and description filters only: the most recent N company boards are read live (one request each, up to 500).
onlyNewJobsfalseMonitoring mode: only jobs not returned before with the same filters.
monitorNameautoName for the monitoring memory, to keep it when you change filters.

Example (the job search behind the table above; it returned 45 jobs when it ran):

{
"keywords": ["data engineer", "analytics engineer"],
"locations": ["remote", "london"],
"postedWithinDays": 3,
"maxResults": 500
}

Example: remote engineering jobs that publish a pay range of at least $150,000 a year:

{
"keywords": [
"engineer"
],
"remoteOnly": true,
"hasSalary": true,
"minSalary": 150000,
"postedWithinDays": 30,
"maxResults": 20
}

Output

One row per job (jobs mode), newest first. A real row from a run with the input above:

{
"ats": "lever",
"companySlug": "vida",
"companyName": "Vida",
"jobId": "9f4469f5-964c-46b4-b368-ef7eb4841e60",
"title": "Senior Data Engineer- Data Platform",
"department": "Engineering",
"team": "All Teams",
"location": "United States",
"locations": [
"United States"
],
"country": "US",
"workplaceType": "remote",
"isRemote": true,
"employmentType": "Full Time- Exempt",
"seniority": null,
"salary": {
"min": 160000,
"max": 170000,
"currency": "USD",
"period": "year",
"text": null
},
"postedAt": "2026-10-07T18:12:47.590Z",
"updatedAt": null,
"url": "https://jobs.lever.co/vida/9f4469f5-964c-46b4-b368-ef7eb4841e60",
"applyUrl": "https://jobs.lever.co/vida/9f4469f5-964c-46b4-b368-ef7eb4841e60/apply",
"salaryMin": 160000,
"salaryMax": 170000,
"salaryCurrency": "USD",
"salaryPeriod": "year",
"experienceLevel": "senior",
"yearsOfExperience": null,
"visaSponsorship": null,
"workArrangement": "remote",
"keySkills": [],
"educationRequirement": null,
"indexedAt": "2026-10-08T01:32:55.681Z",
"scrapedAt": "2026-10-08T13:34:16.181Z"
}

Jobs carry the company's own fields (workplaceType, employmentType, salary when published) plus the derived fields below. With includeDescription on, rows also carry descriptionText and descriptionHtml.

One row per company (companies mode): companyName, companySlug, ats, careersUrl, matchingJobs, newestPostedAt, roles (up to 10 titles with url and postedAt, newest first), locations, departments, keySkills, indexedAt and scrapedAt.

Derived fields (rule-based, no AI; null when the input does not say):

  • salaryMin, salaryMax, salaryCurrency, salaryPeriod: the published pay, as the company gives it.
  • experienceLevel: intern, entry, mid, senior, lead or executive, from the job title (and the ATS seniority). A title with no seniority word is mid.
  • workArrangement: remote, hybrid or onsite, from the ATS field, then the location text, then the description.
  • keySkills: curated skills and tools named in the title, and in the description when it was read (65 names, including Python, SQL, Snowflake, Kubernetes and Salesforce).
  • yearsOfExperience, visaSponsorship, educationRequirement: read from the job description. They are filled only when the description was read (description search, visaSponsorship or includeDescription).

Example tasks

Ready-made inputs you can open, change and run:

Companies hiring for a skill or tool

Set Output rows to One row per company. Each company gets one row with the number of matching open roles, the newest posting date, up to 10 role titles with links, the locations and departments, the skills named in those roles, and the careers page on its ATS. Companies with the most matching roles come first.

Real run, exact input shown (roles trimmed to two):

{
"keywords": [
"Snowflake"
],
"searchIn": "title",
"groupBy": "companies",
"postedWithinDays": 30,
"maxResults": 20
}
{
"companyName": "Truelogic",
"companySlug": "truelogic",
"ats": "ashby",
"careersUrl": "https://jobs.ashbyhq.com/truelogic",
"matchingJobs": 8,
"newestPostedAt": "2026-10-06T18:26:57.630Z",
"roles": [
{
"title": "Senior Data Architect (Snowflake)- Market Research",
"url": "https://jobs.ashbyhq.com/truelogic/585a7afa-e680-4cbe-9050-0b70a192d244",
"postedAt": "2026-10-06T18:26:57.630Z"
},
{
"title": "Senior Data Architect (Snowflake)- Market Research",
"url": "https://jobs.ashbyhq.com/truelogic/214928f4-4374-4e03-b19c-4c25af391a1e",
"postedAt": "2026-10-06T18:26:38.039Z"
}
],
"locations": [
"Uruguay",
"Santo Domingo",
"Peru",
"Panama",
"Mexico City",
"Brazil",
"Bogota",
"LatAm"
],
"departments": [
"Operations"
],
"keySkills": [
"Snowflake"
],
"indexedAt": "2026-10-08T01:32:55.681Z",
"scrapedAt": "2026-10-08T13:34:22.981Z"
}

Matching is on job titles by default. Titles and full descriptions also matches the job text, but the index holds titles, departments and locations, not descriptions. Description search therefore reads company boards live: the newest 100 boards by default (up to 500 with Max boards to read), one request per board. The run log and the run summary say how many boards were read. Jobs on boards that were not read are judged by title only, so for complete description coverage, list the companies with companies.

Use with Claude

Ask Claude for jobs in plain English and it runs this Actor for you through Apify's MCP server.

  1. In Claude (desktop app or claude.ai), open Settings, then Connectors, then Add custom connector.
  2. Name it Apify and paste this server URL: https://mcp.apify.com?tools=redfoxscout/jobs-index
  3. Select Continue, then Add, and sign in to Apify when your browser opens.

Then try:

  • "Find remote machine learning jobs at startups posted this week and rank them against my resume." (attach your resume)
  • "Which of these companies are hiring data engineers right now: stripe, airbnb, figma, databricks, discord?"
  • "Which companies are hiring for Snowflake this month? One row per company, please."

The input Claude sends for the first prompt:

{
"keywords": ["machine learning", "ML engineer"],
"remoteOnly": true,
"postedWithinDays": 7,
"maxResults": 200
}

And for the second:

{
"keywords": ["data engineer"],
"companies": ["stripe", "airbnb", "figma", "databricks", "discord"],
"postedWithinDays": 0,
"maxPerCompany": 5
}

Runs are billed to your Apify account at the same $2 per 1,000 results. For an always-on agent tool with company job lookups and ATS detection, see Company Signals MCP.

Monitoring and alerts

Turn on onlyNewJobs and schedule the Actor (for example every morning). The first run returns everything that matches; later runs return only new jobs. Connect Apify's Slack, email, Google Sheets, Zapier or webhook integrations to get the new jobs where you work.

How fresh is it?

The index is rebuilt daily from each company's public job-board API, so a job usually appears within 24 hours of posting. indexedAt on every row shows when. Turn on includeDescription to pull the description live at run time. Need one company's jobs right now? Use ATS Jobs Scraper, which reads boards live.

Coverage and limits

  • Greenhouse, Lever and Ashby boards in our company list (it grows as we find new boards). Workday, iCIMS and other systems aren't covered.
  • The daily index holds titles, departments, locations, pay and dates, not job descriptions. Description search, description exclusions and visaSponsorship read company boards live, and by default only the newest 100 boards. Use maxBoardsToScan (up to 500) or narrow with companies to read more.
  • Keyword matching is on words, not meaning: "Snowflake" also matches a job that mentions a snowflake schema, and a company that builds the tool (Snowflake itself) matches its own name.
  • Derived fields follow fixed rules. A sentence that mentions visa sponsorship and also has a negation ("does not", "not eligible", "without") counts as no, so mixed wording counts as no. Labels such as "US visa sponsorship: relocation support" can still be read as yes. Check the description of any row you act on.
  • Pay is not converted between currencies: minSalary compares amounts in salaryCurrency.
  • Location matching is text matching on what each company publishes.
  • Only job and company data; no personal data about recruiters or employees.

Jobs API options compared

ActorCoveragePrice per 1,000 jobs (Apify free plan)
Career Site Jobs API (this Actor)Greenhouse, Lever and Ashby: 8,000+ startup and tech career sites in one search, daily index$2.00
Career Site Job Listing API (fantastic-jobs)58 ATS including Workday and iCIMS, AI-enriched fields$12.00 ($4.00 on Gold plans and up)
Career Site ATS Jobs API (memo23)116 ATS, fetched live per company$4.00 + $0.03 per run
Greenhouse Jobs API (fantastic-jobs)Greenhouse only$2.00

Prices are from each Actor's public Store pricing on 7 October 2026. Need Workday, iCIMS or enterprise employers? The larger APIs cover more systems. Need startup and tech jobs across the three ATS they hire on, at the lowest price per job? Use this one.

What this Actor does not do

It does not log in to any site, use accounts or cookies, or solve CAPTCHAs. It does not return hiring managers' or recruiters' names or emails, employee profiles, LinkedIn company pages, funding or revenue estimates, or AI-written summaries. Job and company data only.

How much does it cost?

Pay per event:

  • Result: $0.002 per job or company row returned ($2.00 per 1,000).
  • Actor start: $0.00005 per GB of memory (default 1 GB = $0.00005 per run).
  • You pay only for results in your dataset. maxResults (default 1,000) caps every run at $2.
What you runCost
One search returning 50 jobsabout $0.10
One company list of 20 companiesabout $0.04
A full 1,000-result exportabout $2
A daily alert that returns 20 new jobs a dayabout $1.20 a month

Description search has no extra charge; it costs compute time, about a minute for the default 100 boards. Apify's free plan includes $5 of credit every month, enough for about 2,500 results. Paid Apify plans get Store discounts of up to 25%.

FAQ

Is this legal? The index is built from each company's public job-board API, the feeds companies publish so their jobs get syndicated. It holds job and company data only, never personal data.

Which companies are included? Startups and tech companies hiring on Greenhouse, Lever and Ashby: 8,000+ boards today. Filter with companies or ats to narrow it down.

Why does description search read only some boards? Each board is one live request, so a run reads the newest maxBoardsToScan boards (100 by default, 500 at most). The run summary reports how many were read. Jobs on the other boards are judged by title only. List the companies you care about in companies to read all of their boards.

Do company rows cost the same as job rows? Yes, $0.002 per row. A company row lists up to 10 of its matching roles, but matchingJobs counts all of them.

Can AI agents use it? Yes. See Use with Claude above, or call it through the Apify API, the Python or JavaScript client, or any MCP-compatible agent via Apify's MCP server. Inputs are plain filters, so agents can ask questions like "jobs posted this week for security engineers in Germany". For a dedicated agent tool, see Company Signals MCP.

Credits

The starting company list comes from the open-source job-board-aggregator project (MIT licence, ยฉ 2026 Riley Dorrington). See NOTICE.