PhD, Postdoc & Research Jobs Scraper — 12 Sources in 1 avatar

PhD, Postdoc & Research Jobs Scraper — 12 Sources in 1

Pricing

from $3.00 / 1,000 job results

Go to Apify Store
PhD, Postdoc & Research Jobs Scraper — 12 Sources in 1

PhD, Postdoc & Research Jobs Scraper — 12 Sources in 1

Every PhD, postdoc and research job source behind one endpoint: EURAXESS, jobs.ac.uk, UN Careers, ReliefWeb, Impactpool, Devex, Ikerbasque, EURES, LinkedIn, AcademicPositions + 2 university boards. One run returns a merged, deduped dataset - billed once. Incremental mode surfaces only new postings.

Pricing

from $3.00 / 1,000 job results

Rating

0.0

(0)

Developer

NomadDev

NomadDev

Maintained by Community

Actor stats

0

Bookmarked

15

Total users

3

Monthly active users

8 days ago

Last modified

Categories

Share

Claude / Codex skill to describe and setup this actor: SKILL.md

Every PhD, postdoc, academic, research, policy and NGO job board behind one endpoint, one run, one bill.

Most academic job scrapers cover a single portal. This one merges 12 of them, dedupes across all of them, and hands you a single flat dataset — so you stop running (and paying for) a dozen scrapers and stitching their output together yourself.

EURAXESS · jobs.ac.uk · UN Careers · ReliefWeb · Impactpool
Ikerbasque · U. of Copenhagen · Universitat de Barcelona
AcademicPositions · EURES · LinkedIn

Why this one

This ActorTypical single-portal scraperOther academic aggregators
Sources1219 (EU only)
CoverageEU + UK + global academia and UN / NGO / policyone boardEU academia only
Cross-source dedupen/a
Price per 1,000 jobs$3.00 all-in$0.50 – $4.90$4.00

No other Actor in the store combines academic boards and the UN / NGO / development-career sources (UN Careers, ReliefWeb, Impactpool). If you track research careers that cross between a university and an international organisation, this is the only single feed that sees both.

Pricing

Pay-per-event. You are billed by this Actor and nothing else — the sources run inside this Actor, so there are no hidden child-Actor fees stacked on top.

EventPrice
Actor start$0.01 per run
Job result$0.003 per unique job returned

$3.00 per 1,000 unique jobs. A default run (all boards, 20 jobs each) returns ~170 deduped postings and costs about $0.52.

One detail that keeps the bill honest:

  • You pay per unique job. Cross-source duplicates are dropped before billing, not after. A posting that shows up on both EURAXESS and jobs.ac.uk is one charge, not two.

One exception: AcademicPositions needs a real browser to clear Cloudflare, so it runs as a separate child Actor and adds that Actor's own fees on top of this one's. It is off by default — tick it only if you want it.

Input

Everything is optional. Run it with {} and you get a sensible default sweep.

FieldDefaultWhat it does
sourcesall 11 in-process boardsWhich boards to include.
keywordFree-text filter, forwarded to the boards that support it (machine learning, climate, postdoc…).
maxItemsPerSource20Cap per board before merging.
maxItems220Hard cap on the merged output — and therefore on your bill. 0 = no cap.
mistralApiKey / anthropicApiKeyOptional keys retained for compatible source features; not needed for full-description extraction.
{
"keyword": "machine learning",
"sources": ["euraxess", "jobs_ac_uk", "un_careers", "eures"],
"maxItemsPerSource": 25
}

Devex availability

Devex is excluded from the bundle until its canonical job pages can be fetched reliably. Search-result snippets and model reconstructions are not accepted as complete position descriptions.

Output

One flat, deduped row per posting:

{
"source": "euraxess",
"id": "123456",
"title": "Postdoctoral Researcher in Machine Learning",
"company": "KU Leuven",
"location": "Leuven, Belgium",
"url": "https://euraxess.ec.europa.eu/jobs/123456",
"postedAt": "2026-07-10",
"deadline": "2026-08-31",
"description": "The complete position description...",
"snippet": "The complete position description...",
"salary": ""
}
FieldMeaning
sourceWhich board the record came from, e.g. "euraxess"
idStable source-side identifier ("" when the board has none)
titleJob title as posted
companyHiring organisation
locationLocation / duty station (may include remote hints)
urlDirect link to the posting — also the cross-source dedupe key
postedAtPosting date where the board provides it, else ""
deadlineApplication deadline — populated by euraxess, jobs_ac_uk, un_careers, reliefweb, math_ku_phd, ub_doctoral; the others return ""
descriptionComplete posting description; records without one are omitted
snippetBackward-compatible alias of the complete description
salarySalary text — only jobs_ac_uk populates this today; the others return ""
hiringContactNameLinkedIn rows: person named as the job poster (null elsewhere)
hiringContactTitleThat person's LinkedIn headline
hiringContactUrlTheir LinkedIn profile URL

Fields a board doesn't provide come back as "", never missing — so the schema stays stable across all 11 boards. Warning rows carry an extra warning field, with every other field null.

Run it from your own code

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("nomad-agent/researcher-bundle").call(
run_input={"keyword": "postdoc", "maxItems": 50}
)
for job in client.dataset(run["defaultDatasetId"]).iterate_items():
print(job["title"], "—", job["company"], "—", job["url"])

Typical uses

  • Job-alert products — schedule full-snapshot runs and compare the rows downstream before piping alerts into email, Telegram or Slack.
  • Academic labour-market research — one dataset spanning EU, UK and international-organisation research posts.
  • Recruiting and talent mapping — see who is hiring researchers, where, and on what deadline cadence.

Reliability

Every board fails open: if one is down or slow, the run still returns everything the others found, and the failing board is named in the log. A run that hits an unexpected error still finishes SUCCEEDED carrying a diagnostic row, rather than failing and losing the results you already paid for.


Found a bug, or want a board added? Open an issue on the Actor page — we read them. If this saved you time, a review helps other researchers find it.

Is this Actor useful to you? A quick ⭐ review on the Actor's Reviews tab helps other researchers and PhD applicants find it — and tells us what to build next.


From the maker of Oink — an open-source, AI-powered job-search bot for Telegram that runs on these Actors. Try the free bot, get a managed instance at oinkjobsearch.com, or browse the full catalog of 50+ Actors.