Ikerbasque Jobs Scraper — Basque Research, Spain avatar

Ikerbasque Jobs Scraper — Basque Research, Spain

Pricing

from $3.10 / 1,000 job results

Go to Apify Store
Ikerbasque Jobs Scraper — Basque Research, Spain

Ikerbasque Jobs Scraper — Basque Research, Spain

Scrape open calls from Ikerbasque, the Basque Foundation for Science in Spain: postdoc Research Fellow, Associate & Professor programmes plus permanent science jobs in the Basque Country. Records give title, status, dates, optional AI deadline, snippet and apply URL.

Pricing

from $3.10 / 1,000 job results

Rating

0.0

(0)

Developer

Nomad.Dev

Nomad.Dev

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

9 days ago

Last modified

Categories

Share

Scrape current research openings and calls from Ikerbasque, the Basque Foundation for Science: postdoc fellowships (Research Fellow), Research Associate and Research Professor programmes, and permanent science jobs in Spain's Basque Country. Ikerbasque researchers are hosted across the region's universities and CIC/BERC research institutes, making this the definitive source for PhD-to-professor research positions in the Basque Country — and a natural companion to EU research portals like EURAXESS or EURES for anyone tracking postdoc and faculty jobs in Spain.

What Ikerbasque data does this scraper extract?

Each result is one flat JSON record per call:

FieldMeaning
idStable source-side identifier (the call's URL slug)
titleCall title as posted
companyAlways "Ikerbasque" — the foundation publishing the call
locationAlways "Bilbao, Spain" (Ikerbasque's HQ) — the calls page does not list a per-role duty station
status"Open" or "Closed" as shown on the calls page, or null if the source page carries no status label
postedAtLast-updated date of the call's detail page (YYYY-MM-DD), or null when it can't be determined — see note below
deadlineStructured application deadline (YYYY-MM-DD), added only when AI enrichment is enabled; null otherwise — see "AI deadline extraction" below
urlDirect link to the call
snippetShort description excerpt, prefixed with the status label
isNewtrue when this call was first seen on a delta-mode run (onlyNewSinceLastRun); absent otherwise

A note on postedAt: Ikerbasque does not publish a distinct "date first posted" for its calls. postedAt is read from the call's own detail page (its OpenGraph/article modified/updated meta tag), which tracks when that page's content was last edited — in practice this lines up closely with the active call cycle. This Actor does not invent or guess a date; if the detail page fetch fails or carries no timestamp, postedAt is null.

On deadline: Ikerbasque calls mention an application deadline only as free-form prose inside the description (phrasing varies call to call — "Deadline: 10th September 2026.", "Apply before June 30, 2024", etc.), not as a structured field. Rather than guess with brittle date regex, the structured deadline field is filled by an opt-in AI extraction (see below) that returns null whenever the text states no specific calendar date, and never fabricates one. With AI enrichment off, deadline stays null — read the deadline from snippet/the call url instead.

How to scrape Ikerbasque with this Actor

  1. Click Try for free / Run — no login to the target site, no cookies, no proxies to configure.
  2. Adjust the input (includeClosed, postedSince, maxItems) or keep the defaults.
  3. Run it and export the dataset as JSON, CSV or Excel, or read it over the API.

Run it from your own code:

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

Or a single HTTP call that runs the Actor and returns items in one response:

curl -X POST \
"https://api.apify.com/v2/acts/nomad-agent~ikerbasque-scraper/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"maxItems": 50}'

Input

FieldTypeDefaultNotes
includeClosedbooleanfalseWhen enabled, closed calls (no longer accepting applications) are included alongside open ones. By default only open calls are returned.
postedSinceinteger0Only return calls last posted/updated within this many days. Applied client-side against the source page's own last-updated date; calls whose date can't be determined are kept rather than dropped. Set 0 to disable and return all calls regardless of age.
maxItemsinteger50Maximum number of calls to return. Each result returned is a billed event — see Pricing. Applied before AI enrichment, so you never pay to enrich rows you capped out. Set 0 for no limit.
onlyNewSinceLastRunbooleanfalseDelta / alert mode — only return calls not seen on a previous flagged run. See "Delta mode / alerts" below.
aiEnrichmentbooleanfalseAdd a structured deadline field via your own Anthropic/Mistral key. See "AI deadline extraction" below.
aiProviderstringanthropicanthropic (Claude) or mistral — which provider runs deadline extraction when aiEnrichment is on.
anthropicApiKeystring (secret)Your Anthropic API key. Used only when aiEnrichment is on and aiProvider=anthropic; billed by Anthropic.
aiModelstringclaude-haiku-4-5-20251001Claude model for extraction (aiProvider=anthropic).
mistralApiKeystring (secret)Your Mistral API key. Used only when aiEnrichment is on and aiProvider=mistral; billed by Mistral.
mistralModelstringmistral-small-latestMistral model for extraction (aiProvider=mistral).
cacheTtlSecondsinteger1800(Advanced) How long to reuse a previous fetch of the Ikerbasque pages before checking the site again, in seconds. Set 0 to always fetch fresh data.

Delta mode / alerts

Set onlyNewSinceLastRun: true and this Actor only returns calls it has not seen on a previous run that also had the flag on — the mechanical way to "alert researchers to Ikerbasque calls the day they open". Already-seen calls are dropped before they are pushed or billed, so a scheduled cron run only costs you the Actor start plus any genuinely new calls. Seen state is tracked per Actor in a dedicated named key-value store, keyed by each call's stable URL slug (id); a call is only marked seen after it is successfully pushed, so nothing is lost if a run is interrupted. The cache is best-effort — if it can't be read, the run degrades to "everything is new" rather than failing.

AI deadline extraction

Ikerbasque states application deadlines only as free-form prose, so the structured deadline field is filled by an optional, bring-your-own-key LLM pass rather than brittle regex. Set aiEnrichment: true and supply a key for your chosen aiProvider:

  • Anthropic (aiProvider: anthropic, default) — supply anthropicApiKey, pick aiModel.
  • Mistral (aiProvider: mistral) — supply mistralApiKey, pick mistralModel.

The model reads each call's description and returns the deadline as an ISO YYYY-MM-DD date, or null whenever the text states no specific calendar date — it is instructed never to guess, infer or fabricate a date, and never to invent a day when only a month/year is given. Your API key is billed by that provider, not by this Actor. If aiEnrichment is on but no matching key is supplied, extraction is skipped (a warning row is emitted) and calls are still returned normally with deadline left null.

Output example

{
"id": "permanent-positions-2026",
"title": "Permanent Positions 2026",
"company": "Ikerbasque",
"location": "Bilbao, Spain",
"status": "Open",
"postedAt": "2026-06-10",
"url": "https://www.ikerbasque.net/en/calls/permanent-positions-2026",
"snippet": "[Open] Ikerbasque offers 10 permanent positions for researchers willing to develop a long-term scientific career in the Basque Country..."
}

Integrations

Export the dataset as JSON, CSV or Excel from the Console, or pull it programmatically: apify-client (Python/JS), a single run-sync-get-dataset-items HTTP call (see above), Make/Zapier/n8n via the Apify integration, or directly from AI agents through the Apify MCP server.

Pricing

Pay per event: a small per-run start fee plus a per-job fee for each result returned — see the Pricing tab for current rates (volume discounts apply on higher Apify plans). No subscription, no rental — you pay only for what you fetch.

Use cases

  • Alerting researchers to Ikerbasque calls the day they open
  • Academic job boards covering postdoc, research fellow and professor positions in Spain
  • Research-mobility consulting for PhD holders and scientists relocating to the Basque Country
  • Aggregating EU research portals — pairs naturally with EURAXESS, EURES and other academic sources
  • Tracking Basque science hiring over time

FAQ

Is it legal to scrape Ikerbasque? This Actor reads only publicly available job postings — data any visitor can see without logging in. No personal data behind authentication is touched. Review the target site's terms and your local regulations for your specific use case.

Do I need an account on the target site? No. Postings are fetched from public pages/APIs — no login, cookies or session tokens.

How fresh is the data? Every run fetches live listings. Results are cached for cacheTtlSeconds (default 30 min, set 0 to always hit the source live).

How many jobs can I get? maxItems caps the run (set 0 for no cap). The Ikerbasque calls page is a small, rolling list of currently open and recently closed calls, not a paginated archive — expect a handful of results per run, not thousands.

Something broken or missing? Open an issue on the Actor's Issues tab — it is monitored and reliability fixes ship fast.


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.