Europe Jobs Scraper — EURES, EURAXESS + 12 More Boards avatar

Europe Jobs Scraper — EURES, EURAXESS + 12 More Boards

Pricing

from $1.20 / 1,000 job results

Go to Apify Store
Europe Jobs Scraper — EURES, EURAXESS + 12 More Boards

Europe Jobs Scraper — EURES, EURAXESS + 12 More Boards

All Europe-focused job sources behind one endpoint: LinkedIn Europe, AI Jobs, EURES, EURAXESS, AcademicPositions, WTTJ, JustJoin.it, NoFluffJobs, InfoJobs, Tecnoempleo, jobs.ac.uk and university boards. One merged, deduped dataset.

Pricing

from $1.20 / 1,000 job results

Rating

0.0

(0)

Developer

Nomad Dev

Nomad Dev

Maintained by Community

Actor stats

0

Bookmarked

13

Total users

7

Monthly active users

2 days ago

Last modified

Categories

Share

Europe Jobs Scraper - 14 Sources in One

Claude / Codex skill to describe and setup this actor: SKILL.md

One call for Europe-focused job data. This bundle runs 14 job sources, merges their results, dedupes within the run by normalized identity and URL, and returns one canonical six-root dataset of live European postings.

This is an unofficial scraper bundle. It is not affiliated with LinkedIn, EURES, EURAXESS, AcademicPositions, Welcome to the Jungle, JustJoin.it, NoFluffJobs, InfoJobs, Tecnoempleo, jobs.ac.uk, Ikerbasque, the University of Copenhagen, Universitat de Barcelona, or AI Jobs.

Sources included

Source keyCoverage
linkedinLinkedIn jobs, default location: European Union
ai_jobs_netAI, ML and data jobs with Europe bias enabled
euresEU job mobility portal
euraxessEU research jobs
academicpositionsEU, UK and Switzerland academic jobs
wttjWelcome to the Jungle jobs across EU countries
justjoinitPolish tech and IT jobs
nofluffjobsPoland and CEE IT jobs with salary data
infojobsSpain job board
tecnoempleoSpain IT jobs
jobs_ac_ukUK academic, postdoc and research jobs
ikerbasqueBasque research jobs in Spain
math_ku_phdUniversity of Copenhagen PhD and research jobs
ub_doctoralUniversitat de Barcelona doctoral vacancies

Company ATS Actors like Greenhouse, Lever, Ashby and Workable are not included because they require buyer-supplied company lists. Global sources with no reliable Europe filter are also left out so the default run stays aligned with the Europe promise.

How the bundle works

This is a bundle Actor. Thirteen sources run in-process. EURAXESS uses its lifecycle-free fleet-v2 adapter; legacy collectors retain their source behavior and are conservatively mapped to the canonical contract at the outer boundary. AcademicPositions is the only separate child Actor and is off by default. Each source fails open independently and reports bounded evidence in RUN-SUMMARY.

Use sources to run a cheaper subset, keyword to filter sources that support free-text search, and location to override the default European Union text for LinkedIn and AI Jobs.

Local integration status

The fleet-v2 bundle described here is a local, unreleased mixed-fleet integration. These files are not evidence that the Store Actor has been deployed or migrated. Dedupe is limited to records in the current run; cross-run inventory and dedupe remain disabled and deferred.

The shared runtime is installed from the checked-in nomad-job-scraper-core==1.1.22 wheel, whose exact SHA-256 is pinned in requirements.lock; no Actor-local core source copy is shipped.

Input example

{
"keyword": "data engineer",
"location": "European Union",
"maxItemsPerSource": 10,
"maxItems": 50
}

Output fields

Breaking fleet-v2 output: every dataset item uses the canonical six-root nomad-agent-job-v1 contract. Flat rows and diagnostic pseudo-jobs are not emitted.

Abbreviated root layout (actual data objects contain every canonical field):

{
"schemaVersion": "nomad-agent-job-v1",
"identity": {"source": "eures", "externalId": "123456", "url": "https://example.com/job/123456"},
"data": {"title": "Software Engineer", "company": {"name": "Example GmbH"}},
"custom": null,
"llm": {"status": "not_requested", "requestedFields": [], "filledFields": [], "provider": null, "model": null, "promptVersion": null, "completedAt": null},
"raw": {"description": "Complete posting body...", "descriptionHtml": null}
}

Unknown fields are null; empty arrays are used only for source-established emptiness. Run status and per-source counters are persisted as RUN-SUMMARY.

Python client

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("nomad-agent/europe-jobs-bundle").call(run_input={
"keyword": "engineer",
"maxItems": 50,
})
items = client.dataset(run["defaultDatasetId"]).list_items().items
print(len(items), items[:1])

cURL

curl -X POST \
"https://api.apify.com/v2/acts/nomad-agent~europe-jobs-bundle/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"keyword":"engineer","maxItems":50}'

Cost note

The 13 default sources run inside the bundle and incur only the bundle's configured charges. Selecting the opt-in AcademicPositions source also starts that separate Actor, so its independently configured start/result fees are added to the bundle charges. Use sources, maxItemsPerSource and maxItems to control spend.

Need just one board, with deeper filters and cheaper per-result pricing? Each source is also a standalone Actor:


From the maker of Oink — an open-source, AI-powered job-search bot for Telegram that runs on these Actors. Try the free bot, get a managed instance at oinkjobsearch.com, or browse the full catalog of 50+ Actors.