Company Career Site Jobs Scraper (Europe) avatar

Company Career Site Jobs Scraper (Europe)

Pricing

from $2.76 / 1,000 results

Go to Apify Store
Company Career Site Jobs Scraper (Europe)

Company Career Site Jobs Scraper (Europe)

Search open jobs on 8,600 company career sites: Personio, Recruitee, Teamtailor, Greenhouse, Lever, Ashby, SmartRecruiters, Workable. Daily refresh, job alerts, no recruiter data.

Pricing

from $2.76 / 1,000 results

Rating

0.0

(0)

Developer

Lowland Data

Lowland Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Company Jobs Scraper: career sites across Europe

Search the open jobs that companies post on their own career sites: thousands of job boards on Greenhouse, Lever, Ashby, SmartRecruiters and Workable, and on the European systems almost nobody else reads, Personio, Recruitee and Teamtailor. One search, one shape, a link to every posting.

Or name the companies you care about and read their boards live, as before.

Live health record: lowlanddata.com/status/company-jobs-scraper - 30-day success rate and daily canary results. Full reference: tool page.

No personal data, ever. These are employer job boards: there is no applicant data in them, and recruiter, hiring-manager or "created by" fields are never taken, even where a system publishes them. You get the company, the role and the public posting. One honest edge: the posting's own text is reproduced as the employer wrote it, so an ad that names its hiring manager in the body carries that text as published.

Straight from the source. Every job comes from the company's own board through the system's public feed. No login, no proxy, nothing scraped from LinkedIn or Indeed.

Two ways to use it

You wantFill inHow fresh
Jobs matching a role or a place, at companies you don't knowkeywords, locations and/or countriesFrom our daily snapshot of every known board: up to a day old
Every open job at companies you namecompanies (the filters still apply)Read live from each board when the run starts

When companies has entries, the run reads those boards and nothing else.

Quick start (30 seconds)

Search every known board

  1. Put a job title into Job title keywords, e.g. data engineer, or maler for painter jobs in German-speaking countries. Write it in the language the jobs are posted in.
  2. Optionally put a city or country into Locations, e.g. Berlin or Netherlands.
  3. Click Start. The newest jobs come first, each with a link to the posting.

Read specific companies

  1. Put entries into Companies as system:token, e.g. personio:acme or greenhouse:stripe. The token is the company's name in its careers URL: acme.jobs.personio.de, acme.recruitee.com, acme.teamtailor.com, jobs.ashbyhq.com/acme, jobs.smartrecruiters.com/acme, apply.workable.com/acme, boards.greenhouse.io/acme, jobs.lever.co/acme.
  2. Click Start.

Get a daily job alert

Switch on Only new jobs and add a daily Schedule. The first run delivers everything that matches; after that, each run delivers only the jobs that appeared since the previous one.

What it covers, honestly

  • About 350,000 open jobs on 8,700 company job boards at the first refresh (14 September 2026): Greenhouse 121,000 jobs, SmartRecruiters 152,000, Ashby 38,000, Teamtailor 12,800, Personio 11,300, Workable 10,800, Recruitee 3,300, Lever 2,200. The boards were found through the public Common Crawl web index. A company whose board the crawl has not seen is missing from the search; name it in companies and it is read live.
  • Strongest for office, tech, sales, logistics and healthcare roles, because those are the employers that run these systems. Trades are thin: in a sample of 1,000 boards, 11 of 7,659 open jobs were painter jobs.
  • The snapshot is refreshed once a day. A job taken down since then can still appear until the next refresh. Some systems refuse to be read in one go, so a board that could not be read at a refresh keeps the jobs it had, for a week at most; lastSeenAt on every row says when its board last answered.
  • Country is filled only where the system publishes one. Personio and Greenhouse do not, so the Countries filter leaves their jobs out. Locations matches the posted location text on every system and reaches them: München, Remote, Deutschland.

What you get

One row per job, the same fields whichever system it came from:

{
"jobId": "2720343",
"source": "recruitee",
"companyToken": "brainstack",
"companyName": "Brainstack",
"title": "Manual QA (Mobile studio)",
"url": "https://brainstack.recruitee.com/o/manual-qa-mobile-studio",
"location": "Kyiv",
"country": "UA",
"department": "Mobile Studio",
"office": null,
"postedAt": "2026-08-24T13:39:25.000Z",
"updatedAt": "2026-08-24T13:39:26.000Z",
"workplaceType": "hybrid",
"commitment": "fulltime_permanent",
"salary": null,
"firstSeenAt": "2026-09-15T03:00:00.000Z",
"lastSeenAt": "2026-09-15T03:00:00.000Z",
"description": "We are looking for..."
}
  • country is a two-letter code, or null where the system publishes none.
  • salary is the figure the company published (e.g. 3000-4000 EUR per month), or null.
  • firstSeenAt is when the job first appeared in our snapshot; lastSeenAt is the snapshot the row comes from. Rows read live from companies have firstSeenAt: null and lastSeenAt set to the run time.
  • postedAt is the date the system gives. Where it gives none, Posted in the last N days uses firstSeenAt.
  • description is there when Include descriptions is on (the default).

The same role posted twice on one board is delivered once.

How much does it cost?

$3 per 1,000 jobs delivered, plus a start fee of $0.005 per run. A search that returns 200 jobs costs $0.60. Only delivered rows are charged: the jobs a search scans and the duplicates it drops cost nothing. Free-plan users try it capped at 5 jobs per run. Platform usage is billed by Apify.

Input reference

FieldTypeDefaultNotes
keywordsstring[]noneA job matches when its title contains one of these at the start of a word, ignoring case and accents.
locationsstring[]noneMatches the posted location text; a country name also matches the published country.
countriesstring[]noneTwo-letter codes (DE, NL). Leaves out jobs from systems without a country.
systemsstring[]allgreenhouse, lever, ashby, smartrecruiters, workable, personio, recruitee, teamtailor.
postedWithinDaysintegernonePosting date, or first appearance where there is none.
onlyNewJobsbooleanfalseDeliver only jobs that were not there on this search's previous run.
resetStatebooleanfalseWith onlyNewJobs: start over.
companiesstring[]nonesystem:token per company, read live. A bare token is tried on Greenhouse and Lever.
keywordstringnoneOlder single-keyword field, still accepted; it is added to keywords.
scrapeDetailsbooleantrueInclude the posting text. When searching, it is fetched live for the delivered jobs, so large searches take longer.
maxItemsinteger1000Stop after this many jobs. A search delivers the newest first.

A run with none of keywords, locations, countries, systems, postedWithinDays or companies stops with a message instead of guessing.

Not technical? Let your AI assistant set it up

I want to use the Company Jobs Scraper (lowlanddata/company-jobs-scraper) on Apify.
What I want: [E.G. "new nursing jobs in the Netherlands every morning"
or "all open jobs at these five companies: ..."]
Guide me to:
1. Decide between searching every known board (keywords, locations, countries)
and reading specific companies (companies as system:token).
2. Pick keywords in the language the jobs are posted in, and use locations
rather than countries if I need Personio or Greenhouse jobs.
3. Switch on onlyNewJobs and add a daily Schedule if I want an alert.
4. Explain how to run it and export CSV.

Use it with AI agents (MCP)

Run it directly from Claude, Cursor and other MCP clients: apify.com/lowlanddata/company-jobs-scraper/api/mcp.

The whole family in one connector. Every tool in the Jobs bundle shares one endpoint:

https://mcp.apify.com?actors=lowlanddata/stepstone-scraper,lowlanddata/company-jobs-scraper

These systems publish company job boards through public feeds so that jobs can be found and distributed. This actor reads only those feeds, takes no personal data, and identifies only employers and their public roles. How you use the data downstream is yours to assess.

FAQ

Why not LinkedIn or Indeed? LinkedIn takes scrapers to court and its job rows name recruiters; Indeed is behind anti-bot walls. Many of their listings are copies of jobs posted on the company boards this actor reads at the source.

A job I can see on a company's site is missing. Either the company's board is not in our index (name it in companies), it was posted after today's refresh, or the company uses a system this actor does not read yet (Workday, Join, Softgarden).

My search with countries returned less than expected. Personio and Greenhouse publish no country. The run status says how many jobs the filter left out for that reason; use locations to reach them.

How do I find a company's token? Open one of its job postings and look at the address bar: the token is the company's name in the URL, as in the Quick start above.

Troubleshooting

  • "The job board snapshot is not available right now": the daily refresh is being written. Run again a little later, or read specific boards with companies.
  • A company returned nothing: check the token and the system prefix; the run log names every company it could not find and carries on.
  • Something looks wrong in the data: report it on the Issues tab with the run link.

Support

Found an issue or missing a field you need? The fastest route is the actor's Issues tab - it is monitored and reports get fixed. For anything private, email contact@lowlanddata.com. This actor is actively maintained.

Working well for you? A rating on this page takes ten seconds and helps other buyers find it: it is also the clearest signal of what we should build next.