EURAXESS Jobs API: PhD & Postdoc + AI Translation
Pricing
from $0.30 / 1,000 euraxess job results
EURAXESS Jobs API: PhD & Postdoc + AI Translation
$0.3/1K jobs | Extract EURAXESS research jobs: PhD, postdoc and faculty positions with full descriptions, deadlines, funding where stated and apply links. No login or API key. Skips repeats; optional AI enrichment and English translation.
EURAXESS Jobs Scraper (No Login) + Full Descriptions
$0.3/1K jobs | Extract EURAXESS research jobs: PhD, postdoc and faculty positions with full descriptions, deadlines, funding where stated and apply links. No login or API key. Skips repeats; optional AI enrichment and English translation. Independent, unofficial tool. Not affiliated with or endorsed by EURAXESS or the European Commission.
EURAXESS Research Jobs Bulk Scraper
Our scraper collects PhD, postdoc, fellowship and faculty vacancies from the public EURAXESS job board and lets you filter by keyword, location, work arrangement and posting age. Every row carries the complete original description in text and HTML, the application deadline, the funding programme and the link to apply. It is ideal for research-job alerts, PhD and postdoc trackers and academic job boards.
- Need jobs outside academia? Our LinkedIn Jobs Scraper searches public LinkedIn postings by role and location. It has no research-specific fields such as funding programme.
- Want EU policy and affairs jobs? Try our EURACTIV or EuroBrussels Jobs Actors. Each covers one board only.
- Browse all Job Atlas job-data Actors: https://apify.com/jobatlas
Key Benefits
- No login or API key: EURAXESS is a public board, so there is no account to set up or put at risk.
- Low pricing: $0.30 per 1,000 jobs, with no start fee. Platform usage is included in that price.
- Full research details: the complete description (text and HTML), application deadline, funding programme, research field, researcher level (R1 to R4) and the link to apply.
- No repeats across runs: schedule the same search and jobs already delivered to you are skipped.
- Optional AI enrichment and English translation, with no AI key to bring. Both are off by default and billed per job (see Pricing below).
How It Works
- Provide your search:
- (optional) Keyword (e.g.,
postdoc,machine learning). Matches job titles, research fields and descriptions. Leave it blank to browse recent vacancies. - (optional) Location (e.g.,
Netherlands,Leiden). City, region, postal code, facility, address or country text, matched without regard to case against the locations EURAXESS publishes. A job with a missing or ambiguous location does not match. - (optional) Posted within (e.g.,
30d). Useany,24h, or a day-scale duration such as3d,2wor6m. The default is24h. Jobs without a source date are excluded when the date filter is on. - (optional) Work arrangements: remote, hybrid or on-site. EURAXESS rarely states one (none of the 10 jobs in our latest sample did), and a city or country is never read as on-site. Leave this empty unless you want only jobs that state an arrangement.
- (optional) Keyword (e.g.,
- Set Maximum results (
maxItems). The default is100and the limit is 200 per run;0means 200, and you cannot request more. Start with 10 to check the fit. - Run the Actor and open the dataset.
RUN-SUMMARYin the run's key-value store shows how many jobs were delivered and whether a retry is suggested.
Run the same search again and you get only postings you have not received yet; set dedupe.enabled to false to see everything again.
More settings:
includeRaw- Return the complete plain-text description and the source HTML inraw. Default is on. Turn it off for smaller exports (rawbecomesnull); requested AI enrichment still runs first.dedupe- Skip jobs already delivered for the same search. Default is on. Leavekeyempty for a separate history per search, or set a public scope key (it is not a secret) when searches should share one history. Do not put applicant or private profile data in the key.euraxessSearch.translateKeywords- Also match faithful translations of your exact keyword across major EURAXESS languages. Off by default. It keeps your original keyword and never adds related roles or disciplines.filters(advanced) - Combine conditions on normalized fields with AND/OR rules, such as a country code or a title that must not containinternship. The input form's JSON editor has an example.aiEnrichmentandtranslateToEnglish- Optional paid extras, off by default. See the next section.analyticsEnabled- Optional anonymous run statistics, off by default.
Defaults when you send no input: postedWithin "24h", maxItems 100, dedupe {"enabled": true, "key": ""}, translateToEnglish false, includeRaw true, analyticsEnabled false. EURAXESS publishes calendar dates, so 24h means the current and previous UTC date, and other hour-scale windows are rejected.
Optional extras and pricing
You pay per delivered job. AI enrichment and English translation are separate per-job events and are off by default. The Pricing tab is authoritative for current rates and scheduled changes.
| Feature | Billed event | Price per event | Price per 1,000 delivered jobs | What it adds |
|---|---|---|---|---|
| Job results | result | $0.0003 | $0.30 | Structured job records and source links |
| English translation | translation | $0.006 | +$6.00 | Selected short display fields in English |
| Silver AI enrichment | position-enrichment | $0.006 | +$6.00 | Missing supported facts extracted from the description |
| Gold AI enrichment | position-enrichment-gold | $0.010 | +$10.00 | The alternative Gold processing profile |
For example, 1,000 jobs with Silver enrichment and translation cost $0.30 + $6.00 + $6.00 = $12.30. Successful extras add to the base price; unnecessary or failed extras are not charged. Set Apify's Maximum cost per run before large searches; the cap can end a run early.
Enable AI with the checkbox and select Silver or Gold. No customer AI key is needed. Source facts and explicit empty lists stay unchanged, and neither profile promises accuracy, so review important facts. English output translation changes selected display fields, not full descriptions, organisation names or source evidence.
Good to know:
- Coverage is a bounded window, not the whole board. The Actor searches a bounded collection of recent EURAXESS offers that is refreshed hourly. Right now that collection holds the newest few hundred offers, not every open vacancy, and it is not a historical archive. Offers whose application deadline has passed are not returned.
- Most employers are European research institutions; EURAXESS also lists some employers elsewhere. A narrow keyword plus location search can return nothing. Try a broader term, remove the location or widen the date range.
- EURAXESS supplies dates, not posting times. Other date ranges also include the cutoff date.
- If you switched on repeat suppression, jobs delivered earlier are skipped, which can also lead to zero rows. Zero rows can also mean the run hit a limit, so automations should read
RUN-SUMMARY.
Data You'll Receive
- Job details: title, complete description (text and HTML), posting date, application deadline, contract type, work schedule and hours when stated.
- Research profile: research field, researcher level (R1 to R4), funding programme, and required education, languages and experience when the offer states them.
- Employer and location: organisation name, plus city, country and street address when EURAXESS publishes them.
- Links: the EURAXESS posting URL and the apply link.
- Salary and benefits: only when the offer provides them. Structured salary fields stay
nullotherwise, and some offers describe pay in the free-text benefits field. - Stable identity: the EURAXESS ID and source key, so you can deduplicate in your own systems.
Every full record has six roots: schemaVersion, identity, data, custom, llm and raw. data holds the job facts; custom holds EURAXESS-specific details. null means unknown. An empty list means the source explicitly says there are no entries. The base scraper never guesses missing facts.
Sample output data
Here is an example job from this Actor, observed on October 16, 2026. Empty fields, the HTML copy of the description and some secondary fields are left out, and long text is cut for length. A sample is not a promise that the vacancy is still open. Download a full example.
{"schemaVersion": "nomad-agent-job-v1","identity": {"url": "https://euraxess.ec.europa.eu/jobs/473155","source": "euraxess","externalId": "473155"},"data": {"title": "Assistant Professor","company": {"name": "University of Twente (UT)"},"domains": ["Engineering","Electrical engineering","Electronic engineering","Physics","Optics","Quantum mechanics"],"funding": {"programme": "Not funded by a EU programme"},"benefits": "A full-time position for 18 months, with the intention for a contract extension for an indefinite period of time. Your salary and associated condition ...","locations": [{"raw": "Drienerlolaan 5, 7522NB, Enschede, Netherlands","city": "Enschede","postalCode": "7522NB","countryCode": "NL","countryName": "Netherlands","facilityName": "Universiteit Twente","streetAddress": "Drienerlolaan 5","positionsAvailable": 1}],"seniority": {"raw": ["Leading Researcher (R4) Established Researcher (R3)"],"levels": ["R4","R3"]},"employment": {"hoursPerWeek": 40,"contractTypes": ["Temporary"],"workSchedules": ["Not Applicable"]},"application": {"url": "https://www.academictransfer.com/en/jobs/364801/assistant-professor/apply/","deadline": "2026-11-15T22:59:59+00:00","postedAt": "2026-10-16"},"requirements": {"specificRequirements": "You are expected to hold a University Teaching Qualification (UTQ) or be willing to obtain this qualification within the agreed timeframe. Vision and ..."}},"llm": {"status": "not_requested"},"raw": {"description": "Page contents Job Information Offer Description Where to apply Requirements Additional Information Work Location(s) Contact 16 Oct 2026 Job Informatio ..."}}
EURAXESS Jobs API
Results are stored in a dataset that you can export as CSV, JSON or Excel, or read on demand through the Apify API. Maintained API, MCP, n8n, Make, Python and Agent Skill paths are covered in the integration guide. Airtable is a post-run destination projection only, and no Zapier workflow is claimed. Having an asset does not prove a hosted connection or a write to your destination.
Example input:
{"schemaVersion": "nomad-agent-job-search-input-v1","keyword": "postdoc","postedWithin": "30d","maxItems": 10,"includeRaw": true,"dedupe": {"enabled": true, "key": ""},"aiEnrichment": {"enabled": false, "accuracy": "silver"},"translateToEnglish": false,"analyticsEnabled": false}
For AI agents and automations: require a successful terminal run, read its RUN-SUMMARY, then fetch the complete dataset and compare its row count with delivered. A limited or partial result is not a complete search. Follow a recommended retry at most once with the same input and cost cap. The run-summary reference explains the fields. Unknown fields and unsupported values in advanced filters are rejected. A country or city alone does not establish on-site work, and academic-level labels do not become applicant education requirements.
Privacy and removal
This independent Actor uses public job information. Optional AI sends description text to a third-party AI service, and optional translation sends selected fields to a third-party translation service. Neither feature promises EU-only processing or zero retention. Aggregate analytics is opt-in.
Keep applicant and private profile data out of searches and alert keys. Sanitize raw HTML before you display it. For a listing correction, contact its publisher through EURAXESS. For an Actor data or privacy concern, contact the developer through the Apify Issues tab. Review applicable source terms and your own obligations before republishing records.
Support and Feedback
We improve these scrapers from your feedback. If something breaks or you need a filter:
- Open an issue on the Actor's Issues tab.
- If this Actor saved you time, a short review on the Store helps other users find it.
Run evidence
- Sample record: a real job from build 1.0.9, October 16, 2026. In the same checks, run
plHpGUfaxdCpHU5Dcreturned 10 of 10 requested jobs forpostdocin the last 30 days, with complete descriptions on all 10 and 9 different employers, andRUN-SUMMARYstatussucceeded. - Repeat suppression: two runs with the same input and the same
keyreturned different jobs (runsy8XuBHkq242guDnD2and2vBWwUMoVvbkoP78H, no ID in common). The second run delivered the next unreceived jobs rather than the first ones again. - Build identity: select
latestand record the immutable build ID and number that each run returns. Inspect the dataset together withRUN-SUMMARY; a successful status alone does not show complete coverage. - Setup: the setup skill and the public setup guide cover the documented API example.
Product guides and related tools
- Quick guide and API and agent setup
- Agent skill for this Actor
- Product overview and public links
- Job Atlas job-data tools
Job Atlas
Explore the Job Atlas job-data and matching Actors.
Product guide | Source and client examples | Setup skill | Setup guide
Independent tool. We built and run this Actor ourselves. EURAXESS and the European Commission do not operate, sponsor or endorse it, and the EURAXESS name is used only to say which site the data comes from.