EURAXESS Jobs Scraper: European Research Vacancies
Pricing
from $1.87 / 1,000 job results
EURAXESS Jobs Scraper: European Research Vacancies
Scrape public EURAXESS research jobs, PhD positions, and postdoc fellowships with deadlines, funding, and application links. Export straight to Google Sheets, Airtable, Make, or n8n. Skip manual daily searches. Pay just $0.0025 per successful job row.
Pricing
from $1.87 / 1,000 job results
Rating
0.0
(0)
Developer
GetAScraper
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
11 days ago
Last modified
Categories
Share
π¬ EURAXESS Jobs Scraper: research vacancies that stay current
Find public European research jobs, fellowships, and academic vacancies with the detail needed to decide what to do next. EURAXESS is the official source, while the search alias βEuroaxessβ is also covered in this documentation.
|
See the opportunity, the deadline, and the next step in one record. Build a focused feed from EURAXESS search pages or specific job links. Keep rich details, source links, and meaningful changes together. |
|
π§Ύ Rich records Capture classification, requirements, contacts, and application routes. |
π Change-aware Spot new postings and exact changed fields on recurring runs. |
π§ Source-safe filters Use current EURAXESS labels without silently broadening your search. |
π©Ί Honest diagnostics See blocked pages, partial detail fetches, and rate limits clearly. |
π― Who this is for
Research recruitment teams: βI need a reliable shortlist before the best deadlines pass.β Keep the source deadline, location, and application path close to the job title.
Universities and labs: βI want a recurring view of the roles relevant to our department.β Filter by country, research field, profile, funding, or organisation type.
Academic job seekers: βI do not want to reread the same posting every morning.β Use onlyNewSinceLastRun to focus on new or changed opportunities.
Research market analysts: βI need depth from one important source, not a shallow list from everywhere.β Keep public descriptions and source-labelled fields available for downstream review.
β¨ What it does
This Actor is EURAXESS-first. It focuses on a dependable, high-depth view of one research opportunity source instead of blending unrelated boards together.
- Start with a public EURAXESS search URL, a public job URL, or structured filters.
- Enrich listing rows with the public detail page when
fetchDetailsis enabled. - Preserve source URLs, dates, classification, location, funding, application links, and contact details when published.
- Deduplicate by the EURAXESS job ID across pages and mixed inputs.
- Keep missing source fields absent. The dataset never replaces them with guesses.
- Use bounded pages, rows, retries, concurrency, and request pacing for repeatable runs.
π§ How it works
|
STEP 1 Choose the scope Paste a public URL or select visible EURAXESS filters. A supplied URL takes priority. |
STEP 2 Read the opportunity Get the listing first, then collect the public detail page for the fields your workflow needs. |
STEP 3 Monitor what changed Persist a scope baseline and receive `NEW`, `UPDATED`, or `CURRENT` events. |
π‘οΈ Public-source boundaries
The Actor reads public EURAXESS search and detail pages only. It does not use login flows, private profiles, hidden endpoints, or access bypasses. Review the current source terms and robots policy before production use. A source block or rate limit becomes a visible diagnostic, not a silent empty search.
When EURAXESS returns 429, the Actor honors the published retry delay when available. It does not infer that a missing page means an opportunity expired. Incomplete runs do not advance the monitoring baseline.
βοΈ Input
The Console prefill uses a 30-day posting window, one page, ten job rows, one request at a time, a 1.5-second request delay, two retries, public detail enrichment, and Apify datacenter proxy settings. All limits are finite. startUrls overrides structured filters when supplied.
| Field | Type | Required | Description |
|---|---|---|---|
startUrls | array of URLs | No | Public EURAXESS search or job URLs. |
keyword | string | No | Words matched by the source search. |
offerTypes | array of strings | No | Visible offer types or current source values. |
countries | array of strings | No | Visible country labels or current source values. |
researchFields | array of strings | No | Research field labels or source values. |
researcherProfiles | array of strings | No | Researcher profile labels or source values. |
organisationTypes | array of strings | No | Organisation type labels or source values. |
fundingProgrammes | array of strings | No | Funding programme labels or source values. |
fundingTypes | array of strings | No | Funding type labels or source values. |
offerCategories | array of strings | No | Offer category labels or source values. |
sortBy | enum | No | newest, oldest, or deadline. |
postedWithinDays | integer | No | Age limit for the source posting date. |
fetchDetails | boolean | No | Fetch public detail pages for richer records. |
onlyNewSinceLastRun | boolean | No | Emit only new or changed records for the selected state. |
stateKey | string | No | Optional stable monitoring-state name. |
maxItems | integer | No | Maximum successful or partial job rows emitted. |
maxPages | integer | No | Maximum source search pages requested. |
proxyConfiguration | object | No | Apify proxy settings for public source requests. |
requestDelayMs | integer | No | Delay between requests in milliseconds. |
maxConcurrency | integer | No | Maximum simultaneous requests. |
maxRequestRetries | integer | No | Maximum retries for failed requests. |
debug | boolean | No | Enable additional run diagnostics in logs. |
Invalid filter labels produce a diagnostic row. They never turn into an unfiltered crawl.
π¦ Data table
| Field | Type | Description |
|---|---|---|
record_type | string | job for an opportunity or diagnostic for a run issue. |
status | string | success, partial, or diagnostic. |
event | string | CURRENT, NEW, or UPDATED for job monitoring. |
job_id | string | Stable EURAXESS job identifier. |
source | string | Always EURAXESS for source rows. |
title | string | Published opportunity title. |
url | URL | Public job page. |
source_search_url | URL | Search page that discovered the record. |
posted_at | date-time | Published posting date. |
deadline | date-time | Published application deadline. |
offer_starting_date | date-time | Published starting date. |
days_until_deadline | number | Days from collection to the deadline. |
first_seen_at | date-time | First observation in the monitoring scope. |
last_seen_at | date-time | Most recent observation. |
scraped_at | date-time | Collection timestamp. |
organisation | string | Published organisation. |
company_institute | string | Published company or institute. |
department | string | Published department. |
country | string | Published work country. |
city | string | Published city. |
street | string | Published street address. |
postal_code | string | Published postal code. |
latitude | number | Published work-location latitude. |
longitude | number | Published work-location longitude. |
number_of_offers | number | Number of published offers. |
opportunity_type | string | Published opportunity type. |
research_fields | array | Published research fields. |
researcher_profiles | array | Published researcher profiles. |
positions | array | Published position values. |
education_levels | array | Published education levels. |
languages | array | Published language values. |
contract_type | string | Published contract type. |
job_status | string | Published job status. |
hours_per_week | number | Published weekly hours. |
funding_programme | string | Published funding programme. |
funding_type | string | Published funding type. |
offer_category | string | Published offer category. |
is_research_infrastructure | boolean | Explicit source flag for research infrastructure. |
description_html | string | Published description markup. |
description_text | string | Plain-text description. |
requirements_text | string | Published requirements. |
benefits_text | string | Published benefits. |
additional_information_text | string | Published additional information. |
where_to_apply_text | string | Published application guidance. |
apply_url | URL | Public application link. |
organisation_website | URL | Public organisation website. |
contact_email | string | Public contact email. |
contact_phone | string | Public contact phone. |
changed_fields | array | Exact job fields changed since the prior snapshot. |
error_code | string | Stable code for a partial or diagnostic row. |
message | string | Human-readable source or run message. |
retry_after_seconds | number | Published retry delay when available. |
detail_fetched | boolean | Whether the public detail page was requested. |
Example record
{"record_type": "job","status": "success","event": "NEW","job_id": "461046","source": "EURAXESS","title": "Research Fellow","url": "https://euraxess.ec.europa.eu/jobs/461046","source_search_url": "https://euraxess.ec.europa.eu/jobs/search","detail_fetched": true,"scraped_at": "2026-08-21T00:00:00.000Z"}
π Monitoring semantics
- First observation emits
NEWwhenonlyNewSinceLastRunis enabled. - An altered fingerprint emits
UPDATEDwith exactchanged_fields. - An unchanged posting is omitted in changes-only mode.
- A normal snapshot emits
CURRENT. - Absence from a bounded or rate-limited crawl never emits
EXPIRED. - A partial, blocked, or aborted run does not commit the new baseline.
π³ Pricing
Pricing is pay per successful complete job row. Empty runs, no-change runs, diagnostic rows, and partial rows are free. There are no subscriptions or PPR charges.
β Enjoying EURAXESS Jobs Scraper?
|
β β β β β A daily EURAXESS search that stops eating your morning is worth a rating. A 5-star rating takes 10 seconds and helps other research recruitment teams find a trustworthy EURAXESS feed. Your feedback also tells us what to build next. |
| β Β Β Rate this Actor on Apify |
β FAQ
Can I use a specific EURAXESS job URL?
Yes. Add one or more public search or job URLs to startUrls. They take priority over structured filters, and mixed search and detail inputs are supported.
Does it access private researcher information?
No. It reads public search and detail pages only. It does not use login flows, private profiles, or hidden access paths.
What happens when a filter label is outdated?
The run records an invalid-filter diagnostic and avoids broadening the search. Use the current visible label or source value from EURAXESS.
Does a rate limit delete my monitoring history?
No. The run exposes the rate-limit diagnostic and keeps the last complete monitoring baseline.
π Other actors
- πΌ Ashby Jobs Scraper: Hiring Change Monitor for structured hiring changes from Ashby-powered career pages.
- HigherEdJobs Scraper: Academic Jobs, Salaries and New-Job Monitoring for another academic jobs source.
- π¬ NIH & NSF grant monitor: research funding status for public research funding status changes.
- π arXiv scraper for RAG: papers as chunked JSON for research literature collection and retrieval workflows.
