EU Academic & Research Jobs Aggregator
Pricing
from $4.00 / 1,000 result returneds
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
Maintained by CommunityActor stats
2
Bookmarked
6
Total users
4
Monthly active users
10 days ago
Last modified
Categories
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: trueand 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
academicOnlyis 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
- Click Try for free on the Apify page.
- Adjust keywords (e.g.
["postdoc", "PhD"]) and countries (e.g.["DE", "NL"]). - Leave academicOnly = true unless you specifically want corporate R&D as well.
- 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
| Field | Description | Default |
|---|---|---|
keywords | Search query forwarded to each portal. | ["research"] |
countries | ISO country codes. | ["DE"] |
academicOnly | Drop non-academic jobs by title/institution heuristic. | true |
maxResultsPerSource | Cap per portal. | 50 |
maxTotalResults | Overall cap after dedup. 0 = no cap. | 0 |
enabledSources | Which portals to query. | all 5 |
postedWithinDays | Only return jobs posted within N days. 0 = all. | 0 |
incrementalMode | Only return jobs not seen in previous runs. | false |
proxyConfiguration | Optional 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
| Field | Type | Notes |
|---|---|---|
id | string | Format: {sourceCode}_{md5hash}. Cross-source duplicates dedupe to one row; the kept id is the first source seen. |
title | string | Job title |
institution | string | Hiring organization |
department | string|null | Lab / faculty if available |
country | string|null | ISO-2 code (e.g. DE, NL) |
city | string|null | City or region name; NUTS region codes resolved to human-readable names |
deadline | string|null | ISO date when available |
postedDate | string|null | ISO date |
salaryInfo | string|null | Raw salary text when explicitly stated on the listing (rare; most listings don't expose structured salary). |
salaryMonthlyEur | number|null | Normalized monthly gross EUR — best-effort parse from salaryInfo. Frequently null. |
contractDuration | string|null | Schedule ("Full-time" / "Part-time" from EURES & UniversityPositions) OR start date from DAAD. |
workingLanguage | string|null | DAAD only |
jobType | string|null | e.g. "Full PhD", "Structured programme" |
requiredDegree | string|null | DAAD only |
field | string|null | Inferred research field (Physics, CS, Medicine, etc.) |
fundingSource | string|null | Funding 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. |
tags | array|null | EuroScienceJobs / UniversityPositions tag chips |
descriptionRaw | string|null | EURES/INOMICS: first ~400 chars, HTML stripped. DAAD: synthetic summary from metadata fields. EuroScienceJobs/UniversityPositions: not populated. Emails and IBANs always redacted. |
applicationUrl | string|null | Direct link to the posting |
sourcePortal | string | EURES / DAAD / EuroScienceJobs / UniversityPositions / INOMICS |
scrapedAt | string | ISO 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: 14for fresh-only feeds. - Combine
incrementalMode: truewith a scheduled run to build a deduplicated weekly digest. - For large multi-country crawls, enable
proxyConfigurationto 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.