EU Academic & Research Jobs Aggregator avatar

EU Academic & Research Jobs Aggregator

Pricing

from $4.00 / 1,000 result returneds

Go to Apify Store
EU Academic & Research Jobs Aggregator

EU Academic & Research Jobs Aggregator

Scrapes PhD, postdoc, and research faculty positions from 5 EU academic job portals: EURES, DAAD PhDGermany, EuroScienceJobs, UniversityPositions, and INOMICS. Supports keyword/country filtering, incremental mode, and outputs structured data with deadlines and funding sources.

Pricing

from $4.00 / 1,000 result returneds

Rating

5.0

(2)

Developer

ScholarStack

ScholarStack

Maintained by Community

Actor stats

2

Bookmarked

6

Total users

4

Monthly active users

10 days ago

Last modified

Share

Aggregates PhD, postdoc, professor, and research staff positions from 5 major European academic job portals into a single normalized dataset. Filter by keyword, country, and posted-within-days; turn on academic-only mode to drop the corporate noise that EURES mixes into general "research" searches.

Why use this Actor?

Manually checking EURES, DAAD, EuroScienceJobs, UniversityPositions, and INOMICS every week takes hours. This Actor does it in minutes and hands you a clean, deduplicated dataset (JSON / CSV / Excel / XML) ready to plug into your own tools.

Use cases:

  • Job seekers — set up a weekly scheduled run with incrementalMode: true and only see new postings
  • Research groups — monitor competitor hiring across Germany, Netherlands, France, etc.
  • Recruitment platforms — enrich your listings database with structured EU academic job data
  • Data analysts — track hiring trends in specific fields (Physics, CS, Economics) over time

Sources

  • EURES — European Employment Services (millions of jobs; post-filtered to academic when academicOnly is on)
  • DAAD PhDGermany — Germany's official PhD position database
  • EuroScienceJobs — Science and research jobs across Europe
  • UniversityPositions — University and research-institute positions EU-wide
  • INOMICS — Economics, finance, and social-science academic jobs

How to use

  1. Click Try for free on the Apify page.
  2. Adjust keywords (e.g. ["postdoc", "PhD"]) and countries (e.g. ["DE", "NL"]).
  3. Leave academicOnly = true unless you specifically want corporate R&D as well.
  4. Click Start. Download results as JSON / CSV / Excel / XML from the Output tab.

Quick-start input — copy and paste this:

{
"keywords": ["research"],
"countries": ["DE", "NL", "FR"],
"academicOnly": true,
"maxResultsPerSource": 50,
"postedWithinDays": 30,
"incrementalMode": false
}

Input

FieldDescriptionDefault
keywordsSearch query forwarded to each portal.["research"]
countriesISO country codes.["DE"]
academicOnlyDrop non-academic jobs by title/institution heuristic.true
maxResultsPerSourceCap per portal.50
maxTotalResultsOverall cap after dedup. 0 = no cap.0
enabledSourcesWhich portals to query.all 5
postedWithinDaysOnly return jobs posted within N days. 0 = all.0
incrementalModeOnly return jobs not seen in previous runs.false
proxyConfigurationOptional Apify proxy.disabled

Output

Each item is a flat JSON object. Example:

{
"id": "daad_d5366ddc0d43c536",
"title": "PhD Student (f/m/d) ImmunoFLASH: CAR T immunotherapy with FLASH radiotherapy",
"institution": "Helmholtz-Zentrum Dresden-Rossendorf",
"department": "Institute of Radiooncology – OncoRay",
"country": "DE",
"city": "Dresden",
"deadline": "2026-06-30",
"postedDate": "2026-05-12",
"salaryInfo": null,
"salaryMonthlyEur": null,
"contractDuration": "01.10.2026",
"workingLanguage": "German, English",
"jobType": "Full PhD",
"requiredDegree": "Master, Diplom",
"field": "Medicine",
"fundingSource": "Helmholtz Association",
"applicationUrl": "https://www.daad.de/en/.../phd-student-fmd-immunoflash-...",
"sourcePortal": "DAAD",
"scrapedAt": "2026-05-14T17:24:18.823Z"
}

You can download the dataset in JSON, CSV, Excel, or XML from the Output tab or via the Apify API.

Data fields

FieldTypeNotes
idstringFormat: {sourceCode}_{md5hash}. Cross-source duplicates dedupe to one row; the kept id is the first source seen.
titlestringJob title
institutionstringHiring organization
departmentstring|nullLab / faculty if available
countrystring|nullISO-2 code (e.g. DE, NL)
citystring|nullCity or region name; NUTS region codes resolved to human-readable names
deadlinestring|nullISO date when available
postedDatestring|nullISO date
salaryInfostring|nullRaw salary text when explicitly stated on the listing (rare; most listings don't expose structured salary).
salaryMonthlyEurnumber|nullNormalized monthly gross EUR — best-effort parse from salaryInfo. Frequently null.
contractDurationstring|nullSchedule ("Full-time" / "Part-time" from EURES & UniversityPositions) OR start date from DAAD.
workingLanguagestring|nullDAAD only
jobTypestring|nulle.g. "Full PhD", "Structured programme"
requiredDegreestring|nullDAAD only
fieldstring|nullInferred research field (Physics, CS, Medicine, etc.)
fundingSourcestring|nullFunding agency OR research-consortium affiliation when mentioned in the listing. Examples: "DFG", "ERC", "Horizon Europe", "MSCA", "BMBF", "Helmholtz Association", "Max Planck Society", "Leibniz Association", "Fraunhofer". Heuristic — verify on the source page if critical.
tagsarray|nullEuroScienceJobs / UniversityPositions tag chips
descriptionRawstring|nullEURES/INOMICS: first ~400 chars, HTML stripped. DAAD: synthetic summary from metadata fields. EuroScienceJobs/UniversityPositions: not populated. Emails and IBANs always redacted.
applicationUrlstring|nullDirect link to the posting
sourcePortalstringEURES / DAAD / EuroScienceJobs / UniversityPositions / INOMICS
scrapedAtstringISO timestamp

Pricing

Pay-per-result: $4.00 per 1,000 results.

Concrete examples:

  • 200 academic jobs across all 5 sources = $0.80
  • A weekly incremental run that surfaces ~50 new jobs = $0.20/week

Incremental mode is free to enable and significantly reduces cost on recurring runs.

Tips

  • Turn academicOnly off only if you specifically want corporate R&D positions from EURES.
  • Use postedWithinDays: 14 for fresh-only feeds.
  • Combine incrementalMode: true with a scheduled run to build a deduplicated weekly digest.
  • For large multi-country crawls, enable proxyConfiguration to avoid IP rate-limiting on INOMICS / EuroScienceJobs.
  • Countries must be ISO-2 codes ("DE", "NL", "FR") — full country names are not supported.

FAQ

Why are some salaryInfo / deadline fields null? Not all portals expose them. EURES doesn't return deadlines via API; salary is rarely structured. We extract what's available.

Which countries are supported? Any European country by ISO-2 code. Verified with DE; the other sources expose NL, FR, AT, CH, BE, SE, DK, FI, NO, IT, ES, PL, IE, GR and more. DAAD only covers Germany; other sources cover broader EU.

Is this legal? The Actor only fetches publicly-listed job postings. It respects rate limits, identifies itself, and redacts emails / IBANs from descriptions. You are responsible for downstream use complying with each portal's terms.

Support / bugs Use the Issues tab on this Actor page to report problems or request features.

Disclaimer

The Actor scrapes third-party websites whose layouts may change without notice. Results are best-effort; verify critical details (deadlines, salaries) on the source page before applying. Not affiliated with EURES, DAAD, EuroScienceJobs, UniversityPositions, or INOMICS.