EURACTIV Jobs | Normalized avatar

EURACTIV Jobs | Normalized

Pricing

Pay per usage

Go to Apify Store
EURACTIV Jobs | Normalized

EURACTIV Jobs | Normalized

Unofficial independent Actor for bounded public EURACTIV Jobs searches. Returns strict normalized records with source links, descriptions, dates, locations, compensation when published, and application details.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Job Atlas

Job Atlas

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 hours ago

Last modified

Categories

Share

Search stored EURACTIV jobs with complete original descriptions, optional owner-funded AI enrichment, optional English display text, and advanced filters. This independent Actor is not affiliated with EURACTIV.

How it works

A private collector reads public source data and stores reliably parsed facts and complete descriptions. This public Actor queries that shared inventory. It never searches or requests the EURACTIV website during your run.

A job is available only when the collector has verified its full description. Snippets, truncated bodies, and unverified historical records are withheld. If the inventory is unavailable or stale, the run fails instead of falling back to website scraping. Coverage can therefore be smaller than the current website listing.

When requested, AI enrichment fills supported unknown fields and records provenance in llm. It cannot overwrite known source facts. Jobs whose requested enrichment fails are withheld. Optional translation converts selected human-readable fields into English, while raw.description and raw.descriptionHtml preserve the original source content. Without enrichment, llm.status is not_requested. The collector verifies the rendered job narrative against the source data and retains the separate application instructions in the original description.

First run

{
"schemaVersion": "nomad-agent-inventory-search-v1",
"maxItems": 5,
"postedWithin": "any",
"keyword": "",
"aiEnrichment": {"enabled": false, "accuracy": "silver"},
"translateToEnglish": false,
"dedupe": {"enabled": false, "key": ""}
}

maxItems is an upper bound of 200; zero also means 200. Filtering, repeat suppression, and failed enrichment can produce fewer results. A keyword is a case-insensitive phrase matched against the stored title, employer, and complete original description. It is never sent to the source website.

postedWithin accepts any or a positive duration such as 7d. When EURACTIV has no reliable original posting date, the stored date is the job's first admission to the inventory. Later refreshes do not make the posting appear new.

Advanced filters

workArrangements accepts remote, hybrid, and onsite. For other normalized fields, use the shared nomad-agent-job-filter-v1 expression contract:

{
"schemaVersion": "nomad-agent-job-filter-v1",
"expression": {
"field": "data.compensation.minimum",
"operator": "gte",
"value": 50000
}
}

Place that object under the input's filters field. With AI disabled, filters evaluate source facts only; unknown values do not satisfy ordinary comparisons. With AI enabled, known source mismatches are removed before AI calls and unknown enrichable values are checked again after enrichment. Filters operate on normalized values before English display translation. Compare compensation only with the appropriate currency and period filters.

Output and repeat delivery

Every dataset item follows nomad-agent-job-v1, with six roots: schemaVersion, identity, data, llm, raw, and custom. Missing facts remain null; a known empty collection is []. Original identity and complete description evidence remain stable across enrichment and translation. The rich format is intended for v3 scoring and advanced filtering.

The default key-value store contains RUN-SUMMARY, including inventory freshness, candidates, withheld enrichment failures, delivery counts, and terminal status. OWNER-USAGE separates actual provider costs from unpriced token counts when enrichment runs. Diagnostic receipts are not inserted into the jobs dataset.

Repeat suppression is enabled by default. It uses a persistent ledger scoped to the Apify user, Actor, and search. Set dedupe.enabled to false for a stateless run. A nonempty dedupe.key deliberately shares delivery history within that user's scope. Ambiguous delivery or ledger failures fail the run rather than claiming successful delivery.

Owner-funded processing

AI enrichment and translation are independent opt-ins, both off by default. Enable aiEnrichment.enabled for extraction and translateToEnglish for English display text. You do not supply API keys. Only when enabled, the owner sends 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. Sanitized extracted facts and translations may be cached by the owner. V3 callers can explicitly request the processing they need.

The existing Apify pricing configuration is preserved by this migration. This Actor is unmonetized; platform compute or storage charges can still apply. No new per-result, enrichment, or translation price is introduced.

Use nomad-agent-inventory-search-v1 for this database-only release. The previous nomad-agent-job-search-input-v1 accepts a limited keyword alias: nonempty euractiv.q takes precedence over keyword, and empty q falls back to keyword. A missing or blank effective query is rejected. The keyword searches stored title, company and original description; it is not equivalent to the old WordPress search. Legacy pageLimit is validated from 1 to 10 but is deprecated and has no effect on inventory reads or output. Use maxItems for a result bound. Nonempty legacy country or sort is rejected; use supported normalized filters. includeRaw: false is unsupported because original descriptions are always included.

The top-level accuracy field remains a compatibility override for aiEnrichment.accuracy; it never enables enrichment by itself.

Relative posting-age windows are limited to 36500 days. Use any for an unrestricted search. AI enrichment and translation remain independent opt-ins, both off by default.

Source-specific facts use the public EURACTIV schema.

Identity migration

The inventory 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. Source URLs and original descriptions remain available.

Job Atlas

Explore the Job Atlas job-data and matching Actors. Use latest and retain the immutable build ID returned by each run.

Product guide | Source and client examples