Job data comes from two places: job boards such as LinkedIn, and employers' own career sites (Greenhouse, Lever, Ashby and the like). Either way, the hard part is not getting jobs, it is getting the right jobs, once, at a price you can predict. This post covers what that takes, and how the two tools I built handle each point.
Disclosure: I'm Aurelix, and I built the LinkedIn Jobs Scraper and the Greenhouse Jobs Scraper. They're paid tools.
The problem
You run a job board, a newsletter, a recruiting pipeline or a sales list built on hiring signals. You need one country's jobs, filtered by date and job type, and a daily run that adds only postings you have not seen yet.
What the job needs
- Country accuracy. Searching by a location text often returns jobs from other countries. The country has to be set exactly, and jobs that name another one removed.
- Filters that hold. Job boards pad results with unrelated postings. Date posted and job type need re-checking on each result.
- Paying only for matches. Jobs dropped by your filters, duplicates and padding should cost nothing.
- Exact limits. Ask for 100 jobs, and you should get and pay for at most 100.
- Only-new runs. For a daily feed, the tool should return only jobs it has not returned before.
- Live data for career sites. Reading the employer's own board at run time means closed jobs disappear instead of lingering.
LinkedIn Jobs Scraper
Reads LinkedIn's public job search without logging in and bills per job, with no platform usage on top.
- Correct country: sets LinkedIn's exact country id for you, and drops results whose location names another country.
- Filters that work: date posted re-checked on every result; job type whenever details are on.
- Misses are free: filtered-out, unrelated and duplicate jobs are never charged.
- Exact limits: ask for 100 jobs, get and pay for at most 100.
- New-jobs mode returns only jobs you have not seen before.
- Job poster name, headline and profile link where LinkedIn shows them, logged out.
- Price: $1.50 per 1,000 jobs on the free plan, $1.05 on paid plans.
Greenhouse Jobs Scraper
Reads jobs straight from employers' applicant tracking systems through their official job-board APIs.
-
Domain in, jobs out: type
stripe.comand it finds the company's Greenhouse, Lever, Ashby or SmartRecruiters board. - Live data: every run reads the employer's board, so closed jobs disappear.
- One schema across the four systems, with salary range wherever the employer publishes one.
- Canada built in: country codes, province tags and a Canada-only filter.
- New-jobs mode returns only postings you have not seen before.
- Price: $1.50 per 1,000 jobs on the free plan, $1.05 on paid plans, cheaper than the leading tools.
What it doesn't cover: applicant tracking systems other than Greenhouse, Lever, Ashby and SmartRecruiters, such as Workday or iCIMS. It fits best when you track a known list of companies on those four.
Start in a few minutes
- Open the LinkedIn Jobs Scraper or the Greenhouse Jobs Scraper and start a run.
- For LinkedIn, enter keywords and a country; for career sites, paste a list of company domains.
- Turn on new-jobs mode if you will schedule it, then run it.
- Export CSV or Excel from the run's Storage tab, or add a daily schedule in Apify Console.
The dataset also works with Apify's Google Sheets integration, the n8n or Make "Run Actor" node, and AI agents through the Apify MCP server. For a daily sheet of new postings, see Export new LinkedIn jobs to Google Sheets every day with Python.
Top comments (0)