Career Site Jobs API: Search Company Job Boards, New Jobs Feed avatar

Career Site Jobs API: Search Company Job Boards, New Jobs Feed

Pricing

from $2.40 / 1,000 jobs

Go to Apify Store
Career Site Jobs API: Search Company Job Boards, New Jobs Feed

Career Site Jobs API: Search Company Job Boards, New Jobs Feed

Search jobs straight from company career sites by title, place, company, words and time, from an index refreshed about every six hours. Full text and direct apply links. A named feed returns only what is new. For job boards, recruiters and sales teams watching who is hiring. $3 per 1,000 jobs.

Pricing

from $2.40 / 1,000 jobs

Rating

0.0

(0)

Developer

Zaiq

Zaiq

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Career Site Jobs API: search jobs straight from company job boards

Career Site Jobs API: Search Company Job Boards, New Jobs Feed

Search jobs straight from company career sites by title, place, company, words in the text and time. Every job comes from a company's own board on Greenhouse, Lever or Ashby, with the full description and a direct apply link: about 330,000 open jobs from 11,700 companies.

Name a feed and schedule it, and every run returns only the jobs new since the last one. Built for job boards, recruiters, sales teams following who is hiring and labour-market research, at $3 per 1,000 jobs.

What you get

FieldWhat it holds
The jobjobId, title, description or descriptionHtml, department, employmentType, salary, isRemote
The placelocation, country
The employercompany, ats, board
The datespostedAt, updatedAt, firstSeenAt, lastSeenAt, closedAt
The linksurl, applyUrl

What people use it for

  • Fill a job board: add fresh employer jobs with apply links, automatically, every day
  • Hiring signals for sales: see which companies just started hiring for what your product helps with
  • Recruitment research: find every company hiring for a role in a place
  • Competitor watch: follow what a rival is hiring for, by company name
  • Labour-market data: track roles, skills and pay across thousands of employers
  • AI agents: a searchable jobs source inside any workflow

How to use it

  1. Enter job titles and, if you want, places, countries or companies.
  2. Choose Posted within.
  3. For a daily feed, give it a feed name and schedule the run.
  4. Press Start and download the rows.

Input

FieldExampleNotes
Job titlessoftware engineerAny line can match. Words in one line must appear together.
Leave out titles withinternRemoves unwanted roles.
PlacesLondonWords in the job's location, or Remote.
CountriesUS, GB, DETwo-letter codes.
Remote jobs onlyoffOnly jobs marked remote.
Posted withinLast 7 daysFrom the last hour to any time.
Feed namemy-job-boardLater runs return only what is new.
Most jobs a run1000Up to 20,000.
Words in the descriptionKubernetesSearches the full text.
CompaniesExample IncOnly these employers.
Career systemsGreenhouseEmpty means all three.
DescriptionPlain textOr HTML, both, or none. Same price.
Closed jobs insteadoffJobs that left their board, kept 90 days.

Output

Each result is one row in the run's dataset (download it as JSON, CSV, Excel, XML or HTML, or read it through the API). An example row (values shortened):

{
"kind": "job",
"jobId": "greenhouse:examplecorp:4749457",
"title": "Software Engineer, Platform",
"company": "Example Corp",
"location": "Remote, US",
"country": "US",
"isRemote": true,
"department": "Engineering",
"employmentType": "Full-time",
"salary": "$100,700 - $167,800",
"postedAt": "2026-10-30T16:08:45Z",
"updatedAt": "2026-10-30T16:08:45Z",
"firstSeenAt": "2026-11-01T19:46:12Z",
"lastSeenAt": "2026-11-02T01:48:03Z",
"closedAt": null,
"url": "https://job-boards.greenhouse.io/examplecorp/jobs/4749457",
"applyUrl": "https://job-boards.greenhouse.io/examplecorp/jobs/4749457",
"ats": "greenhouse",
"board": "examplecorp",
"description": "About the role..."
}

A record named SUMMARY in the run's key-value store says what each input returned, with any notes (for example an account that does not exist), what was charged and how much traffic the run used.

Pricing

  • $3 per 1,000 jobs on Free and Bronze, $2.70 on Silver, $2.40 on Gold, less above, with the description included.
  • $0.01 a run to start.
  • A search with no jobs, or a feed with nothing new, costs only the start fee. The Free plan returns 20 jobs a run.

What typical jobs cost at the list price:

JobCost
100 jobs$0.31
5,000 jobs$15.01
A daily feed of 300 new jobs$0.91 a day

On Apify's Scale and Business plans the per-event prices are lower (Store discounts). Set Maximum cost per run and the Actor stops cleanly when it is reached: you never pay more than that.

Tips

  • Use a feed name and a schedule: you pay only for jobs you haven't had.
  • Search by company to follow one employer's hiring.
  • Closed jobs with a feed name tell a job board which ads to take down: each run returns only the jobs closed since the last one.
  • salary is what the employer states, read from the system or the text, so it is often empty.

Use it through the API

Python

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("zaiq/career-site-jobs-api").call(run_input={"titles": ["software engineer"], "postedWithin": "7d", "maxJobs": 10})
for row in client.dataset(run.default_dataset_id).iterate_items():
print(row)

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('zaiq/career-site-jobs-api').call({"titles": ["software engineer"], "postedWithin": "7d", "maxJobs": 10});
const { items } = await client.dataset(run.defaultDatasetId).listItems();

HTTP (one call, results back)

curl -X POST 'https://api.apify.com/v2/acts/zaiq~career-site-jobs-api/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>' \
-H 'Content-Type: application/json' \
-d '{"titles": ["software engineer"], "postedWithin": "7d", "maxJobs": 10}'

Integrations and schedules

  • Schedules: run it every hour, day or week from the Apify Console (Schedules) and keep a history of results.
  • Make, Zapier, n8n, Google Sheets, Slack, Airtable: connect it through Apify's integrations, or send each finished run to a webhook.
  • Datasets: results stay in the run's dataset; export them or read them by API whenever you need them.

Use it with AI agents (MCP)

Add Apify's MCP server with this Actor already pinned (https://mcp.apify.com?tools=zaiq/career-site-jobs-api) to Claude, ChatGPT, Cursor, VS Code or any MCP client. The agent can find this Actor and run it for you: ask it for Find remote data engineer jobs posted this week at companies on Ashby and list who is hiring most. AI agents can also pay for runs directly through Apify's agentic payments.

Limits

  • Coverage: about 11,700 company boards and 330,000 open jobs on Greenhouse, Lever and Ashby at launch. A company on another system won't appear, so this is not every job on the internet.
  • Some boards belong to recruiters, staffing firms or franchises rather than one employer, and a few post the same job for many towns. Put words like staffing, recruiting, talent, personnel in Leave out companies to drop most of them.
  • Freshness: boards are re-read about every six hours, so a job can take that long to appear.
  • country is read from the location words where the employer doesn't state it, so a vague location such as Remote stays blank, about 7% of jobs. A job in several countries carries the first one.
  • postedAt is the date the employer's system gives. A company can repost an old job as new.
  • Job descriptions belong to the employers. It's for you to check your use of them fits, especially if you publish them.
  • Companies and jobs only: no people are looked up or collected, though an employer's own job text sometimes names a contact.

FAQ

Where do the jobs come from?

The public job board feeds of Greenhouse, Lever and Ashby, which those systems publish for outside use. Our server re-reads them about every six hours. The starting list of boards is LastRound AI's ATS Company Directory (CC BY 4.0, github.com/fyrosofttech/lastroundai-hiring-data).

How is a feed different from Posted within?

A feed remembers where its last run stopped and carries on from there, so nothing is repeated or missed, even if a run hits its limit. Posted within still applies, so an old job on a newly added board stays out.

Is this every job at a company?

It is every job on that company's public board on these systems. Jobs a company lists elsewhere won't appear.

Can I get closed jobs?

Yes. Switch on Closed jobs, newest closures first. They are kept for 90 days after leaving the board, and Posted within then counts from when the job closed. Add a feed name to get only the jobs closed since the last run.

Do I need any keys?

No.

Support

Questions, a site that changed, or a field you need? Open an issue on this Actor's Issues tab: we answer there, usually within a day.


Also found as: career site jobs API, ATS jobs API, Greenhouse jobs scraper, Lever jobs API, Ashby jobs API, job posting API, jobs data feed, hiring signals, job board feed.