EURACTIV Jobs API: EU Affairs & Policy + Only New avatar

EURACTIV Jobs API: EU Affairs & Policy + Only New

Pricing

$0.20 / 1,000 job results

Go to Apify Store
EURACTIV Jobs API: EU Affairs & Policy + Only New

EURACTIV Jobs API: EU Affairs & Policy + Only New

$0.2/1K jobs | Get EU affairs, policy and communications jobs from the EURACTIV job board with full descriptions, job function, industry, work arrangement and posting date. No login or API key. Repeats skipped on re-runs.

Pricing

$0.20 / 1,000 job results

Rating

0.0

(0)

Developer

Job Atlas

Job Atlas

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Categories

Share

EURACTIV Jobs Scraper: EU Affairs & Policy (No Login)

$0.2/1K jobs | Get EU affairs, policy and communications jobs from the EURACTIV job board with full descriptions, job function, industry, work arrangement and posting date. No login or API key. Repeats skipped on re-runs. Independent, unofficial tool. Not affiliated with or endorsed by EURACTIV.

EURACTIV EU Affairs Jobs Bulk Scraper

Our Actor searches the EURACTIV job board for EU affairs, policy, public affairs and communications jobs and returns them as structured rows. Every row carries the complete original description in text and HTML, the employer, the location, the posting date and the board's own labels for job function, industry, experience, education level and work arrangement. It is ideal for Brussels job alerts, hiring research on the EU affairs sector and career sites for EU professionals.

This Actor reads postings that Job Atlas has already collected and stored. It does not contact EURACTIV while your run is going. Only postings with a verified complete description are included, so the count can be lower than what the live site shows.

  • Want a second Brussels board? EuroBrussels Jobs Scraper adds association, think tank and NGO roles. Its rows have fewer structured fields than this Actor, and some roles appear on both boards, so expect repeats if you run both.
  • Browse all Job Atlas job-data Actors: https://jobatlas.dev/actors

Key Benefits

  • No login or API key: nothing to set up and no account at risk. Your run reads stored postings and never contacts EURACTIV.
  • Low pricing: $0.20 per 1,000 jobs, with no start fee. Apify platform usage for the run is included in that price.
  • Full descriptions: every row has the complete original text and HTML. Snippets and cut-off bodies are left out.
  • Fast and fresh: a 10-job test run finished in about 10 seconds. Each run also reports when the source was last checked (sourceFreshAt); it was 30 minutes before our test run.
  • No repeats across runs: schedule the same search daily and postings you already received are skipped.
  • Optional AI enrichment and English translation, both off by default, funded by us: no API key and no extra charge.

How It Works

  1. Provide your search (all optional):
    • Keyword (e.g., public affairs, energy, intern): a case-insensitive phrase matched against the title, employer and complete original description. Leave it empty to search all stored jobs.
    • Posted within (e.g., 7d): any, or a duration in hours, days, weeks or months such as 24h, 7d, 2w or 1m. Default is any. If the board shows no reliable posting date, the date we first saw the posting is used.
    • Work arrangements: remote, hybrid or onsite. Empty means all.
  2. Set the maximum number of jobs (up to 200; 0 also means 200).
  3. Run the Actor. Jobs land in the dataset; the run's key-value store holds RUN-SUMMARY with data freshness, candidates scanned, delivery counts and the final status.

Example input:

{
"schemaVersion": "nomad-agent-inventory-search-v1",
"maxItems": 10,
"postedWithin": "any",
"workArrangements": [],
"dedupe": {
"enabled": true,
"key": ""
},
"keyword": "policy"
}

Run the same search again and you get only postings you have not received yet; set dedupe.enabled to false to see everything again.

More settings:

  • maxItems - Maximum number of jobs to return. Default is 100. Filters, repeat suppression and failed enrichment can produce fewer results.
  • filters - Advanced filter over normalized fields in the shared nomad-agent-job-filter-v1 format; see the product guide for the expression format. With AI enrichment off, filters check only facts the board states, and unknown values never satisfy a comparison.
  • aiEnrichment - Optional AI fill of unknown fields. Default is off.
  • translateToEnglish - Optional English display text. Default is off.
  • dedupe - Repeat-delivery suppression. Default is on.

Restrictive filters or repeat-delivery suppression can produce zero results. If the stored data is unavailable or stale, the run fails with an error instead of falling back to scraping the website.

Employer names are the board's labels. Some postings are placed by individuals or agencies, so the employer can differ from the hiring organisation (one of the 10 test rows showed a person's name for a European Aluminium posting).

Salary is a text band, not a number. The board shows bands such as More than €50.000; they are in data.compensation.raw, while numeric minimum and maximum stay null, so numeric salary filters do not match these jobs.

No closing dates. data.application.deadline was empty on all 10 test rows.

Pricing

You pay $0.20 per 1,000 jobs ($0.0002 per delivered job). There is no start fee, and Apify platform usage for the run is included in that price (pay-per-event). AI enrichment and English translation add no extra charge.

Data You'll Receive

  • Job details: title, complete description (text and HTML), posting date and a link to the posting page on the board (identity.url).
  • Employer: name on every job; the employer's website on some (3 of 10 in our test).
  • Location: as the board wrote it in data.locations[].raw (Brussels on all 10 test rows).
  • Board labels: job function, industry, experience band and work arrangement (remote, hybrid or on-site) on every test row; education level on 8 of 10; contract type and schedule on 5 of 10 each.
  • Pay: the board's salary band as text on most jobs (8 of 10 in our test); numeric amounts stay null.
  • Identity: identity.source and the board's numeric identity.externalId (for example 6364), stable across runs and usable as a deduplication key.
  • Board extras in custom.data: category labels, language and last-modified time.
  • AI block llm: not_requested unless you switch on enrichment.

Every row follows the nomad-agent-job-v1 format with six roots: schemaVersion, identity, data, llm, raw and custom. Missing facts are null; a known empty list is [].

Source-specific facts in custom use the public EURACTIV schema.

Sample output data

Here is an example job from this Actor. Empty fields, custom.schemaId and the tail of long text are left out.

{
"llm": {
"status": "not_requested"
},
"raw": {
"description": "At Bayer we’re visionaries, driven to solve the world’s toughest challenges and striving for a world where ‘Health for all Hunger for none’ is no longer a dream, but a real possibility. We’re doing it with energy, curiosity and sheer dedica…",
"descriptionHtml": "<p><b><strong class=\"font-bold\" style=\"white-space: pre-wrap\">At Bayer we’re visionaries, driven to solve the world’s toughest challenges and striving for a world where &#8216;Health for all Hunger for none’ is no longer a dream, but a real…"
},
"data": {
"title": "Manager EU Agricultural Policy",
"company": {
"name": "Bayer"
},
"locations": [
{
"raw": "Brussels"
}
],
"employment": {
"workSchedules": [
"full_time"
],
"workArrangements": [
"hybrid"
]
},
"application": {
"postedAt": "2026-10-13T08:05:58Z"
},
"compensation": {
"raw": "More than €50.000"
},
"requirements": {
"education": [
{
"level": "Master's Degree"
}
],
"experience": [
{
"raw": "7-10 Years"
}
]
},
"classification": {
"industries": [
"Agrifood"
],
"jobFunctions": [
"Policy & EU Affairs"
]
}
},
"custom": {
"data": {
"link": "https://jobs.rapporteur.com/jobs/manager-eu-agricultural-policy-brussels-hybrid-bayer/",
"slug": "manager-eu-agricultural-policy-brussels-hybrid-bayer",
"status": "publish",
"excerpt": "At Bayer we’re visionaries, driven to solve the world’s toughest challenges and striving for a world where ‘Health for all Hunger for none’ is no longer a dream, but a real possibility. We’re doing it with energy, curiosity and sheer dedica…",
"dateLocal": "2026-10-13T10:05:58",
"modifiedGmt": "2026-10-13T08:05:58Z",
"wordpressId": 6364,
"languageTerms": [
"English"
],
"taxonomyTerms": {
"salary": [
"More than €50.000"
],
"job-type": [
"Full Time"
],
"language": [
"English"
],
"location": [
"Brussels"
],
"experience": [
"7-10 Years"
],
"industries": [
"Agrifood"
],
"job-category": [
"Policy & EU Affairs"
],
"qualification": [
"Master's Degree"
],
"work-arrangement": [
"Hybrid"
]
}
}
},
"identity": {
"url": "https://jobs.rapporteur.com/jobs/manager-eu-agricultural-policy-brussels-hybrid-bayer/",
"source": "euractiv",
"externalId": "6364"
},
"schemaVersion": "nomad-agent-job-v1"
}

EURACTIV Jobs API

Results are stored in a dataset that you can export as CSV, JSON or Excel, or read through the Apify API. Apify schedules and webhooks work as for any Actor, so you can run a search every day and send only the new postings on.

Repeat delivery and optional processing

No repeats across runs. Repeat-delivery suppression is on by default. Postings already delivered to you for the same search are skipped, so a daily schedule returns only what is new. The delivery history belongs to your Apify account, this Actor and the search. Set dedupe.enabled to false for a stateless run. A dedupe.key of your own names the history: reuse a key to share one history across searches, or use different keys to keep alert histories apart. If the delivery history cannot be read or written, the run fails instead of claiming a successful delivery.

AI enrichment and English translation. Both are off by default and are independent opt-ins: aiEnrichment.enabled for extraction and translateToEnglish for English display text. You do not supply API keys. Only when enabled, we send description text to OpenRouter for extraction or selected display text to DeepL for translation. The configured routes deny provider data collection but do not guarantee zero retention or EU-only processing. Enrichment fills unknown fields and records its provenance in llm; it never overwrites a fact the board states. If you ask for enrichment and it fails for a job, that job is withheld from the results. raw.description and raw.descriptionHtml always keep the original text. Filters run on normalized values before English display translation.

Identity migration

The current release uses the numeric source ID as identity.externalId, for example 6190. Earlier releases prefixed this value with euractiv:. The stable posting key is the pair (identity.source, identity.externalId). Update any stored comparison keys when migrating; existing delivery history with the old prefixed key may permit a one-time repeat.

Older input formats

The previous nomad-agent-job-search-input-v1 format is still accepted for compatibility. Its euractiv.q keyword takes precedence over keyword when it is not empty. Legacy pageLimit (1 to 10) has no effect on results, a nonempty legacy country or sort is rejected, and includeRaw must stay true. New integrations should use nomad-agent-inventory-search-v1. The top-level accuracy field is a compatibility override for aiEnrichment.accuracy; it never switches enrichment on by itself.

Support and Feedback

We improve these Actors from your feedback. If something breaks or you need a filter:

  • Open an issue on the Actor's Issues tab.
  • If this Actor saved you time, a short review on the Store helps other users find it.

Run evidence

Test runs on 2026-10-16 from the Job Atlas account, using the latest build and a fresh repeat-delivery scope key:

  • Run Xk4ZRqdm0GDqnklmx (build 1.0.7), keyword policy, 10 of 10 rows with the full description from 9 distinct employers, finished in 10 seconds. The run summary showed the stored data had been checked against the source before the run (sourceFreshAt).

Measured on the 10 test rows (no AI enrichment): title, employer, location, posting date, job function, industry, experience, work arrangement and description on 10 of 10; education level on 8 of 10; salary band on 8 of 10; contract type and schedule on 5 of 10 each; employer website on 3 of 10; closing date on 0 of 10.

Use latest and keep the build ID and number your own run returns. A successful status alone does not tell you how complete the board coverage is; read RUN-SUMMARY together with the dataset.

Job Atlas

Explore the Job Atlas job-data and matching Actors:

Product guide | Source and client examples | Setup skill | Setup guide | Job Atlas Actors


Independent tool. We built and run this Actor ourselves. EURACTIV does not operate, sponsor or endorse it, and its name is used only to say which site the data comes from.