Universitat de Barcelona Jobs: PhD, Postdoc & Research
Pricing
from $3.10 / 1,000 job results
Universitat de Barcelona Jobs: PhD, Postdoc & Research
Scrape currently-open vacancies from Universitat de Barcelona's official vacancy board — PhD/predoctoral contracts by default, or postdoc, research, teaching and staff jobs via keyword. No API key needed. Incremental new-only runs for scheduled alerts.
Universitat de Barcelona Jobs Scraper — PhD, Postdoc & Research
Scrapes currently-open vacancies from Universitat de Barcelona's official public-vacancy board (the UB seu electrònica → Ofertes de feina) — the same board UB itself publishes to.
No API key. No proxy. No AI credits. Just run it.
By default it returns open PhD / predoctoral research contracts. Change one field and it returns postdoc, research, teaching, technical or administrative vacancies instead — or all of them at once.
What you get
One flat JSON record per vacancy:
| Field | Meaning |
|---|---|
id | UB's own numeric vacancy id — stable across runs |
title | Full convocatòria title (UB states the department, funding project and contract type inline) |
company | Always "Universitat de Barcelona" |
location | Always "Barcelona, Spain" |
url | Link to the official vacancy page, where the bases and application form are attached |
postedAt | Publication date (YYYY-MM-DD), or null if UB didn't state one |
deadline | Always null — see below |
snippet | Short description excerpt |
source | Always "ub_doctoral" |
Why deadline is always null: UB publishes application deadlines only inside the PDF bases attached to each vacancy — never on the listing or the detail page. This Actor never fabricates a date it cannot read, so the field stays null rather than guessing. Open the url for the real deadline.
Input
| Field | Default | What it does |
|---|---|---|
keyword | predoctoral | Full-text search against UB's own board. Try postdoctoral, investigador, Física, a project name… Set it to an empty string to get every open UB vacancy. |
maxItems | 12 | Cap on vacancies returned (0 = no limit). Each one is billed as one result. |
postedSince | — | Only vacancies published on or after this date. |
onlyNewSinceLastRun | false | Incremental mode — see below. |
stateName | — | (Advanced) Name the dedupe history so separate schedules stay independent. |
Only currently-open vacancies are ever returned — closed and in-progress calls are filtered out by UB server-side, so you never pay for a result you can't apply to.
Scheduled PhD alerts (incremental mode)
Turn on onlyNewSinceLastRun and schedule the Actor. Each run then emits — and bills results for — only the vacancies that appeared since the previous run, so a daily PhD alert costs a handful of results a week instead of re-billing the same 20 postings every day. History is kept in the Actor's key-value store, grouped by keyword + postedSince; the first run returns everything.
Run it from your own code
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("nomad-agent/ub-doctoral-scraper").call(run_input={"keyword": "predoctoral", # "" for every open UB vacancy"maxItems": 50,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["postedAt"], item["title"], item["url"])
Or a single HTTP call that runs the Actor and returns the items in one response:
curl -X POST \"https://api.apify.com/v2/acts/nomad-agent~ub-doctoral-scraper/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>" \-H "Content-Type: application/json" \-d '{"keyword": "predoctoral", "maxItems": 50}'
Export the dataset as JSON, CSV, Excel or XML, or read it over the Apify API.
Pricing
Pay per event: a small actor-start fee plus a per-vacancy result fee. A typical daily incremental run returns only the new postings, so it usually costs the start fee plus a result or two.
Notes & limits
- Covers Universitat de Barcelona only. For EU-wide academic vacancies, see our EURAXESS and jobs.ac.uk scrapers.
- UB publishes vacancy titles mostly in Catalan (some Spanish/English).
keywordmatches whatever UB actually wrote, so Catalan terms (predoctoral,investigador,professorat) match best. - If a run can't reach UB, it still finishes as a succeeded run carrying a single
warningrow that explains why — it never fails half-way or reports an empty scrape as success.
Found a bug, or want another Spanish university covered? Open an issue on the Actor — and if it works for you, a review helps a lot.
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.