EURAXESS Jobs Scraper: European Research Vacancies avatar

EURAXESS Jobs Scraper: European Research Vacancies

Pricing

from $1.87 / 1,000 job results

Go to Apify Store
EURAXESS Jobs Scraper: European Research Vacancies

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

GetAScraper

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

11 days ago

Last modified

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 fetchDetails is 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.

FieldTypeRequiredDescription
startUrlsarray of URLsNoPublic EURAXESS search or job URLs.
keywordstringNoWords matched by the source search.
offerTypesarray of stringsNoVisible offer types or current source values.
countriesarray of stringsNoVisible country labels or current source values.
researchFieldsarray of stringsNoResearch field labels or source values.
researcherProfilesarray of stringsNoResearcher profile labels or source values.
organisationTypesarray of stringsNoOrganisation type labels or source values.
fundingProgrammesarray of stringsNoFunding programme labels or source values.
fundingTypesarray of stringsNoFunding type labels or source values.
offerCategoriesarray of stringsNoOffer category labels or source values.
sortByenumNonewest, oldest, or deadline.
postedWithinDaysintegerNoAge limit for the source posting date.
fetchDetailsbooleanNoFetch public detail pages for richer records.
onlyNewSinceLastRunbooleanNoEmit only new or changed records for the selected state.
stateKeystringNoOptional stable monitoring-state name.
maxItemsintegerNoMaximum successful or partial job rows emitted.
maxPagesintegerNoMaximum source search pages requested.
proxyConfigurationobjectNoApify proxy settings for public source requests.
requestDelayMsintegerNoDelay between requests in milliseconds.
maxConcurrencyintegerNoMaximum simultaneous requests.
maxRequestRetriesintegerNoMaximum retries for failed requests.
debugbooleanNoEnable additional run diagnostics in logs.

Invalid filter labels produce a diagnostic row. They never turn into an unfiltered crawl.

πŸ“¦ Data table

FieldTypeDescription
record_typestringjob for an opportunity or diagnostic for a run issue.
statusstringsuccess, partial, or diagnostic.
eventstringCURRENT, NEW, or UPDATED for job monitoring.
job_idstringStable EURAXESS job identifier.
sourcestringAlways EURAXESS for source rows.
titlestringPublished opportunity title.
urlURLPublic job page.
source_search_urlURLSearch page that discovered the record.
posted_atdate-timePublished posting date.
deadlinedate-timePublished application deadline.
offer_starting_datedate-timePublished starting date.
days_until_deadlinenumberDays from collection to the deadline.
first_seen_atdate-timeFirst observation in the monitoring scope.
last_seen_atdate-timeMost recent observation.
scraped_atdate-timeCollection timestamp.
organisationstringPublished organisation.
company_institutestringPublished company or institute.
departmentstringPublished department.
countrystringPublished work country.
citystringPublished city.
streetstringPublished street address.
postal_codestringPublished postal code.
latitudenumberPublished work-location latitude.
longitudenumberPublished work-location longitude.
number_of_offersnumberNumber of published offers.
opportunity_typestringPublished opportunity type.
research_fieldsarrayPublished research fields.
researcher_profilesarrayPublished researcher profiles.
positionsarrayPublished position values.
education_levelsarrayPublished education levels.
languagesarrayPublished language values.
contract_typestringPublished contract type.
job_statusstringPublished job status.
hours_per_weeknumberPublished weekly hours.
funding_programmestringPublished funding programme.
funding_typestringPublished funding type.
offer_categorystringPublished offer category.
is_research_infrastructurebooleanExplicit source flag for research infrastructure.
description_htmlstringPublished description markup.
description_textstringPlain-text description.
requirements_textstringPublished requirements.
benefits_textstringPublished benefits.
additional_information_textstringPublished additional information.
where_to_apply_textstringPublished application guidance.
apply_urlURLPublic application link.
organisation_websiteURLPublic organisation website.
contact_emailstringPublic contact email.
contact_phonestringPublic contact phone.
changed_fieldsarrayExact job fields changed since the prior snapshot.
error_codestringStable code for a partial or diagnostic row.
messagestringHuman-readable source or run message.
retry_after_secondsnumberPublished retry delay when available.
detail_fetchedbooleanWhether 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 NEW when onlyNewSinceLastRun is enabled.
  • An altered fingerprint emits UPDATED with exact changed_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