EuropeEnglishJobs
Pricing
from $0.01 / 1,000 results
Go to Apify Store
EuropeEnglishJobs
This scraper will help in finding jobs in Europe, specially in Germany and Switzerland
EuropeEnglishJobs
Pricing
from $0.01 / 1,000 results
This scraper will help in finding jobs in Europe, specially in Germany and Switzerland
You can access the EuropeEnglishJobs programmatically from your own applications by using the Apify API. You can also choose the language preference from below. To use the Apify API, you’ll need an Apify account and your API token, found in API & Integrations in Apify Console.
{ "openapi": "3.0.1", "info": { "version": "0.1", "x-build-id": "AugugFsaVjbixqwat" }, "servers": [ { "url": "https://api.apify.com/v2" } ], "paths": { "/acts/pillowy_scraper_2pv~europeenglishjobs/run-sync-get-dataset-items": { "post": { "operationId": "run-sync-get-dataset-items-pillowy_scraper_2pv-europeenglishjobs", "x-openai-isConsequential": false, "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.", "tags": [ "Run Actor" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/inputSchema" } } } }, "parameters": [ { "name": "token", "in": "query", "required": true, "schema": { "type": "string" }, "description": "Enter your Apify token here" } ], "responses": { "200": { "description": "OK" } } } }, "/acts/pillowy_scraper_2pv~europeenglishjobs/runs": { "post": { "operationId": "runs-sync-pillowy_scraper_2pv-europeenglishjobs", "x-openai-isConsequential": false, "summary": "Executes an Actor and returns information about the initiated run in response.", "tags": [ "Run Actor" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/inputSchema" } } } }, "parameters": [ { "name": "token", "in": "query", "required": true, "schema": { "type": "string" }, "description": "Enter your Apify token here" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/runsResponseSchema" } } } } } } }, "/acts/pillowy_scraper_2pv~europeenglishjobs/run-sync": { "post": { "operationId": "run-sync-pillowy_scraper_2pv-europeenglishjobs", "x-openai-isConsequential": false, "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.", "tags": [ "Run Actor" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/inputSchema" } } } }, "parameters": [ { "name": "token", "in": "query", "required": true, "schema": { "type": "string" }, "description": "Enter your Apify token here" } ], "responses": { "200": { "description": "OK" } } } } }, "components": { "schemas": { "inputSchema": { "type": "object", "properties": { "keywords": { "title": "Keywords", "type": "array", "description": "One or more job titles/keywords to search for, e.g. ['QA', 'security analyst', 'penetration tester']. Each keyword is searched separately across every enabled source and all results are merged and deduplicated. If left empty AND a CV is provided (cvText/cvFile), the top cvAutoKeywordCount keywords extracted from the CV are used to search automatically — without this, a CV-only run would just fetch each source's generic default feed and rely on match_score to sort it after the fact, which produces near-useless results (confirmed: LinkedIn/StepStone with no keywords returned a roofer and a florist). Leave empty with no CV either to fetch broadly with no keyword filter at all. Matching is against job TITLE only (not description) — see README for why. Note: linkedin/indeed/xing/stepstone/roberthalf/visasponsored each run a paid Actor once PER keyword, so cost multiplies by the number of keywords for those sources.", "items": { "type": "string" }, "default": [] }, "cvText": { "title": "CV / resume text", "type": "string", "description": "Optional. Paste resume/CV text directly (e.g. from a chat) to score (0-100) and sort every job by how well it matches, and get per-job 'add this to your CV' suggestions — free deterministic scoring, not AI/semantic matching (see README). Score reflects what fraction of the JOB's own requirements the CV covers, plus a bonus/penalty for how well your detected years-of-experience fits the job's seniority level. If `keywords` is left empty, the CV's own top skills are also used to drive the actual search (see cvAutoKeywordCount) — otherwise the CV can only re-rank whatever generic feed the sources return. Jobs requiring German language are always excluded entirely, regardless of CV. Privacy: this text is processed entirely inside this Actor's own code and is never sent to LinkedIn/Indeed/Xing/StepStone/Robert Half/Relocate.me or any other third-party Actor — see README's Security section for how to verify this yourself in the source. Leave blank if uploading a file below, or if you just want to search without scoring." }, "cvFile": { "title": "CV / resume file", "type": "array", "description": "Optional. Upload a PDF, DOCX, or plain-text resume — used the same way as pasted CV text above (provide one or the other, or neither). Same privacy guarantee as cvText: never sent to any third-party Actor.", "items": { "type": "string" }, "default": [] }, "cvAutoKeywordCount": { "title": "Auto-search keywords from CV", "minimum": 1, "maximum": 20, "type": "integer", "description": "Only used when `keywords` is empty and a CV is provided: how many of the CV's top extracted skills/keywords to actually search for (across all enabled sources), rather than just fetching each source's generic feed and scoring it after the fact. Higher = broader search but more paid-Actor cost if linkedin/indeed/xing/stepstone/roberthalf/visasponsored are enabled (each keyword runs once per those Actors).", "default": 5 }, "countries": { "title": "Countries", "type": "array", "description": "Countries to search in. StepStone only supports germany (also Austria/Belgium, not modeled here); all others support all three.", "items": { "type": "string", "enum": [ "germany", "switzerland", "netherlands" ] }, "default": [ "germany", "switzerland" ] }, "remoteAnywhere": { "title": "Include remote / work-from-anywhere jobs", "type": "boolean", "description": "Also include jobs that don't name a specific country — tagged Worldwide/Anywhere/Europe/EMEA/Flexible — regardless of the `countries` filter above. Applies to arbeitnow, remotive, remoteok, weworkremotely, himalayas, and themuse.", "default": true }, "sources": { "title": "Sources", "type": "array", "description": "Which job sources to query. Direct-API sources (arbeitnow/remotive/jobicy/adzuna/remoteok/weworkremotely/himalayas/themuse/jooble) are free, no legal/ToS exposure — each either has no restriction on this kind of use, or (RemoteOK) an explicit API-terms-of-service permitting it with attribution. jooble needs a free signup key (joobleApiKey) and has a lifetime cap of 500 requests on its free tier, so it's opt-in. linkedin/indeed/xing/stepstone/roberthalf/visasponsored each run a separate paid Apify Store Actor composed against a site whose own Terms of Service prohibit scraping directly — see README before enabling those.", "items": { "type": "string", "enum": [ "arbeitnow", "remotive", "jobicy", "adzuna", "remoteok", "weworkremotely", "himalayas", "themuse", "jooble", "linkedin", "indeed", "xing", "stepstone", "roberthalf", "visasponsored" ] }, "default": [ "arbeitnow", "remotive", "jobicy", "remoteok", "weworkremotely", "himalayas", "themuse" ] }, "maxItemsPerSource": { "title": "Max items per source", "minimum": 1, "maximum": 1000, "type": "integer", "description": "Cap on how many results to request from each of linkedin/indeed/xing (these are pay-per-result Actors — keep this modest while testing).", "default": 25 }, "adzunaAppId": { "title": "Adzuna App ID", "type": "string", "description": "Optional. Only needed if 'adzuna' is included in sources. Get a free key at https://developer.adzuna.com/ — sent only to Adzuna's own official API (api.adzuna.com), never anywhere else. Masked/encrypted by Apify (isSecret)." }, "adzunaAppKey": { "title": "Adzuna App Key", "type": "string", "description": "Optional. Only needed if 'adzuna' is included in sources. Sent only to Adzuna's own official API (api.adzuna.com), never anywhere else. Masked/encrypted by Apify (isSecret)." }, "joobleApiKey": { "title": "Jooble API Key", "type": "string", "description": "Optional. Only needed if 'jooble' is included in sources. Get a free key (500-request lifetime cap) at https://jooble.org/api/about — sent only to Jooble's own official API (jooble.org), never anywhere else. Masked/encrypted by Apify (isSecret)." }, "linkedinActorId": { "title": "LinkedIn Actor ID override", "type": "string", "description": "Apify Store Actor to call for LinkedIn. Default is a well-reviewed public Actor. SECURITY: only override this with an Actor ID you trust — the Actor you point this at runs under YOUR account's billing/budget (already-known risk: a run can fail if it would exceed your remaining balance). It does NOT receive your CV, API keys, or any other input field — only a plain keyword/country/max-results string, and this Actor's own LIMITED_PERMISSIONS declaration means it can't reach anything else in your account either way (see README's Security section).", "default": "curious_coder/linkedin-jobs-scraper" }, "indeedActorId": { "title": "Indeed Actor ID override", "type": "string", "description": "Apify Store Actor to call for Indeed. SECURITY: same trust boundary as linkedinActorId above — only override with an Actor ID you trust.", "default": "borderline/indeed-scraper" }, "xingActorId": { "title": "Xing Actor ID override", "type": "string", "description": "Apify Store Actor to call for Xing. SECURITY: same trust boundary as linkedinActorId above — only override with an Actor ID you trust.", "default": "fatihtahta/xing-jobs-scraper" }, "stepstoneActorId": { "title": "StepStone Actor ID override", "type": "string", "description": "Apify Store Actor to call for StepStone. Covers Germany, Austria, Netherlands, and Belgium (Austria/Belgium aren't in our countries list); Switzerland is skipped since StepStone doesn't operate there. Filters for English-language ads directly. SECURITY: same trust boundary as linkedinActorId above — only override with an Actor ID you trust.", "default": "trev0n/stepstone-scraper" }, "robertHalfActorId": { "title": "Robert Half Actor ID override", "type": "string", "description": "Apify Store Actor to call for Robert Half. Covers Germany, Netherlands, and Switzerland (via its English-language CH-en locale). SECURITY: same trust boundary as linkedinActorId above — only override with an Actor ID you trust.", "default": "studio-amba/roberthalf-scraper" }, "visaSponsoredActorId": { "title": "Visa Sponsored (Relocate.me) Actor ID override", "type": "string", "description": "Apify Store Actor to call for Relocate.me visa-sponsored international tech jobs. Covers Germany and Netherlands; Relocate.me doesn't cover Switzerland. SECURITY: same trust boundary as linkedinActorId above — only override with an Actor ID you trust.", "default": "khadinakbar/visa-sponsored-jobs-scraper" } } }, "runsResponseSchema": { "type": "object", "properties": { "data": { "type": "object", "properties": { "id": { "type": "string" }, "actId": { "type": "string" }, "userId": { "type": "string" }, "startedAt": { "type": "string", "format": "date-time", "example": "2025-01-08T00:00:00.000Z" }, "finishedAt": { "type": "string", "format": "date-time", "example": "2025-01-08T00:00:00.000Z" }, "status": { "type": "string", "example": "READY" }, "meta": { "type": "object", "properties": { "origin": { "type": "string", "example": "API" }, "userAgent": { "type": "string" } } }, "stats": { "type": "object", "properties": { "inputBodyLen": { "type": "integer", "example": 2000 }, "rebootCount": { "type": "integer", "example": 0 }, "restartCount": { "type": "integer", "example": 0 }, "resurrectCount": { "type": "integer", "example": 0 }, "computeUnits": { "type": "integer", "example": 0 } } }, "options": { "type": "object", "properties": { "build": { "type": "string", "example": "latest" }, "timeoutSecs": { "type": "integer", "example": 300 }, "memoryMbytes": { "type": "integer", "example": 1024 }, "diskMbytes": { "type": "integer", "example": 2048 } } }, "buildId": { "type": "string" }, "defaultKeyValueStoreId": { "type": "string" }, "defaultDatasetId": { "type": "string" }, "defaultRequestQueueId": { "type": "string" }, "buildNumber": { "type": "string", "example": "1.0.0" }, "containerUrl": { "type": "string" }, "usage": { "type": "object", "properties": { "ACTOR_COMPUTE_UNITS": { "type": "integer", "example": 0 }, "DATASET_READS": { "type": "integer", "example": 0 }, "DATASET_WRITES": { "type": "integer", "example": 0 }, "KEY_VALUE_STORE_READS": { "type": "integer", "example": 0 }, "KEY_VALUE_STORE_WRITES": { "type": "integer", "example": 1 }, "KEY_VALUE_STORE_LISTS": { "type": "integer", "example": 0 }, "REQUEST_QUEUE_READS": { "type": "integer", "example": 0 }, "REQUEST_QUEUE_WRITES": { "type": "integer", "example": 0 }, "DATA_TRANSFER_INTERNAL_GBYTES": { "type": "integer", "example": 0 }, "DATA_TRANSFER_EXTERNAL_GBYTES": { "type": "integer", "example": 0 }, "PROXY_RESIDENTIAL_TRANSFER_GBYTES": { "type": "integer", "example": 0 }, "PROXY_SERPS": { "type": "integer", "example": 0 } } }, "usageTotalUsd": { "type": "number", "example": 0.00005 }, "usageUsd": { "type": "object", "properties": { "ACTOR_COMPUTE_UNITS": { "type": "integer", "example": 0 }, "DATASET_READS": { "type": "integer", "example": 0 }, "DATASET_WRITES": { "type": "integer", "example": 0 }, "KEY_VALUE_STORE_READS": { "type": "integer", "example": 0 }, "KEY_VALUE_STORE_WRITES": { "type": "number", "example": 0.00005 }, "KEY_VALUE_STORE_LISTS": { "type": "integer", "example": 0 }, "REQUEST_QUEUE_READS": { "type": "integer", "example": 0 }, "REQUEST_QUEUE_WRITES": { "type": "integer", "example": 0 }, "DATA_TRANSFER_INTERNAL_GBYTES": { "type": "integer", "example": 0 }, "DATA_TRANSFER_EXTERNAL_GBYTES": { "type": "integer", "example": 0 }, "PROXY_RESIDENTIAL_TRANSFER_GBYTES": { "type": "integer", "example": 0 }, "PROXY_SERPS": { "type": "integer", "example": 0 } } } } } } } } }}OpenAPI is a standard for designing and describing RESTful APIs, allowing developers to define API structure, endpoints, and data formats in a machine-readable way. It simplifies API development, integration, and documentation.
OpenAPI is effective when used with AI agents and GPTs by standardizing how these systems interact with various APIs, for reliable integrations and efficient communication.
By defining machine-readable API specifications, OpenAPI allows AI models like GPTs to understand and use varied data sources, improving accuracy. This accelerates development, reduces errors, and provides context-aware responses, making OpenAPI a core component for AI applications.
You can download the OpenAPI definitions for EuropeEnglishJobs from the options below:
If you’d like to learn more about how OpenAPI powers GPTs, read our blog post.
You can also check out our other API clients: