Jobs MCP Server – EU, Remote & ATS Job Search for AI Agents avatar

Jobs MCP Server – EU, Remote & ATS Job Search for AI Agents

Pricing

from $5.00 / 1,000 tool calls

Go to Apify Store
Jobs MCP Server – EU, Remote & ATS Job Search for AI Agents

Jobs MCP Server – EU, Remote & ATS Job Search for AI Agents

Job-search MCP server for Claude, ChatGPT & Cursor: German federal job board (Arbeitsagentur), EURES (2M EU & Swiss jobs), Jobicy, Remote OK, Arbeitnow, plus any company's Greenhouse, Lever, Ashby, Workable or SmartRecruiters board. Attribution-safe. Pay per call.

Pricing

from $5.00 / 1,000 tool calls

Rating

0.0

(0)

Developer

Cemal Atakli

Cemal Atakli

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

a day ago

Last modified

Categories

Share

Give Claude, ChatGPT, Cursor or your own agent job-search tools over MCP. One server searches official and terms-cleared job sources:

  • Bundesagentur für Arbeit (Jobbörse): the German federal job board, about 1M jobs, through its official API.
  • EURES: about 2M vacancies in 30 EU/EEA countries and Switzerland, run by the European Labour Authority.
  • Company career boards on Greenhouse, Lever, Ashby, Workable and SmartRecruiters. Pass a company slug, a board URL or just the company website.
  • Jobicy, Remote OK and Arbeitnow, remote and EU job feeds whose terms allow re-use with credit.

It does not scrape LinkedIn, Indeed or Google Jobs. It needs no API key apart from your Apify token, and you pay only for calls that return something.

Tools

ToolWhat it does
search_jobsSearch jobs by keyword, country (ISO code or name), city, remote, posted_since and source. With sources: auto, the server picks the sources: the Arbeitsagentur, EURES and Arbeitnow for Germany, EURES for other EU countries, and the remote feeds for remote: true. Each result shows the total number of matches per source.
company_jobsEvery open job at one company, read from its official career board (Greenhouse, Lever, Ashby, Workable, SmartRecruiters). You can filter by keyword, country, city, remote and date. Results include the department, workplace type, salary (when the company publishes it) and the company's own apply link.
job_detailsThe full description, salary, contract, deadline, required languages and skills (EURES) and apply link for one job id.
count_jobsHiring and demand signals. For a search, it gives totals per source, with EURES broken down by country or region and Arbeitsagentur by city, profession and working time. For one company, it breaks open jobs down by department, location, workplace and employment type.
list_sourcesThe coverage, terms and attribution of each source. Free.

Each job carries id, title, company, location, country, remote, postedAt, employmentType, salary (when given), applyUrl, sourceUrl, source and attribution.

Use cases

  • Job-search assistants: "Find remote DevOps jobs posted this week that are open to people in Spain."
  • Recruiting and sales intelligence: "How many engineers is OpenAI hiring, and in which cities?" or "Which companies in Berlin are hiring Python developers?"
  • Labour-market research: "How many nursing vacancies are open in the Netherlands, and in which regions?" (EURES totals by region, Arbeitsagentur totals by profession.)
  • Career agents and relocation tools: search the official EU job boards in several countries with one tool.
  • Automations in n8n, Make or Zapier, or scheduled batch runs that send new jobs to Slack or a sheet.

Connect it to your AI client (MCP)

The server runs in Apify Standby mode and speaks MCP over Streamable HTTP:

https://gazidev--jobs-mcp-server.apify.actor/mcp

Authenticate with your Apify API token (Authorization: Bearer <APIFY_TOKEN>).

Claude Desktop / Cursor (mcp.json):

{
"mcpServers": {
"jobs": {
"url": "https://gazidev--jobs-mcp-server.apify.actor/mcp",
"headers": { "Authorization": "Bearer YOUR_APIFY_TOKEN" }
}
}
}

Claude Code: claude mcp add --transport http jobs https://gazidev--jobs-mcp-server.apify.actor/mcp --header "Authorization: Bearer YOUR_APIFY_TOKEN"

It also works through the Apify MCP server and with any client that supports remote MCP servers, such as the OpenAI Agents SDK, LangChain or n8n.

Query tips

  • country accepts de, fr, nl, pl, es, ch, us, or names like "Germany". Outside the EU/EEA, search_jobs returns remote jobs that are open to that country. Use company_jobs for specific employers anywhere.
  • posted_since accepts a number of days (7), "24h", "2w" or a date ("2026-10-01").
  • keyword matches every word you give. Use OR for alternatives, for example "data engineer OR analytics engineer". German keywords work best on the Arbeitsagentur, for example Pflegefachkraft or Elektriker.
  • company_jobs accepts greenhouse:stripe, lever:palantir, ashby:openai, https://jobs.lever.co/palantir, or a website such as linear.app, from which the server detects the board.

Batch mode (normal Actor run)

You can also start the Actor like any other Actor, from the Console, the API, a schedule or an integration. Pick a tool and pass arguments, or list several calls. Each job becomes one dataset row.

{
"tool": "search_jobs",
"arguments": { "keyword": "python", "country": "de", "posted_since": 14, "limit": 20 }
}
{
"calls": [
{ "tool": "search_jobs", "arguments": { "keyword": "data engineer", "remote": true } },
{ "tool": "company_jobs", "arguments": { "company": "greenhouse:stripe", "country": "ie" } },
{ "tool": "count_jobs", "arguments": { "keyword": "nurse", "country": "nl" } }
]
}

Output example (dataset row)

{
"tool": "search_jobs",
"status": "ok",
"id": "arbeitsagentur:12265-271357_JB5283341-S",
"title": "Softwareentwickler Python/C# (m/w/d)",
"company": "FERCHAU GmbH Niederlassung Friedrichshafen",
"location": "88046, Friedrichshafen",
"country": "DE",
"postedAt": "2026-10-27T00:00:00+00:00",
"employmentType": "full-time",
"applyUrl": "https://www.arbeitsagentur.de/jobsuche/jobdetail/12265-271357_JB5283341-S",
"sourceUrl": "https://www.arbeitsagentur.de/jobsuche/jobdetail/12265-271357_JB5283341-S",
"source": "Bundesagentur für Arbeit (Jobbörse)",
"attribution": "Source: Bundesagentur für Arbeit, Jobbörse (arbeitsagentur.de). Link to sourceUrl.",
"details": { "sourceKey": "arbeitsagentur", "profession": "Softwareentwickler/in", "offerType": "job" }
}

A count_jobs call for one company returns, for example: {"company": "OpenAI", "ats": "ashby", "totalOpenJobs": 811, "byDepartment": {"Go To Market": 153, "Applied AI": 118, ...}, "byLocation": {"San Francisco": 570, "New York City": 98, ...}}.

Pricing

Pay per event, with no subscription:

EventPriceWhen
tool-call$0.005A successful search_jobs, company_jobs, job_details or count_jobs call that returns a result
job-returned$0.0003Each job record returned by search_jobs or company_jobs
Actor start$0.00005Once per run or Standby session

Failed calls, calls that find nothing, invalid input and list_sources are free. A search that returns 20 jobs costs $0.011. When your maximum charge for a run is reached, the job list is cut short and further calls are refused, so you never pay more than you set.

Compared with other job MCP servers on Apify (November 2026)

ActorSourcesPrice
This serverArbeitsagentur, EURES, 5 ATS, Jobicy, Remote OK, Arbeitnow$0.005 per call + $0.0003 per job
India Jobs MCPIndian job platforms$0.035–0.475 per tool call
Google Jobs scraper ("MCP-ready")Google Jobs$0.003 per job
LinkedIn Jobs MCP ServerLinkedInnot listed

Data sources and attribution

  • Bundesagentur für Arbeit: the official Jobsuche API. Each job links to its Jobbörse page.
  • EURES: © European Labour Authority. Re-use is authorised if ELA is acknowledged as the source, so each EURES job carries source and attribution. Requests are spaced 10 seconds apart, as europa.eu's robots.txt asks.
  • Greenhouse, Lever, Ashby, Workable and SmartRecruiters: the public job-board APIs behind the companies' own career pages. Links go to the company's board.
  • Jobicy: redistribution is allowed with credit, and apply links must point to the original Jobicy listing, which applyUrl does. Responses are cached for 1 hour.
  • Remote OK: link back to the Remote OK listing and mention Remote OK. Only the latest ~100 public jobs are available. Cached for 30 minutes.
  • Arbeitnow: free public API, used with a link back. Cached for 30 minutes.
  • Not used: Himalayas and Remotive, whose terms forbid passing their jobs to other boards or aggregators, and LinkedIn, Indeed and Google Jobs.

When you show jobs to users, keep source, sourceUrl and applyUrl unchanged.

FAQ

Which countries are covered? Germany in depth (Arbeitsagentur, EURES and Arbeitnow), all 30 EURES countries (EU, Iceland, Liechtenstein, Norway and Switzerland), remote jobs worldwide, and any company on the five supported ATS platforms, wherever it hires.

Why do totals differ from the number of jobs returned? totalAvailable is the number of matches at the source. A call returns up to limit jobs, and you can raise limit (max 100) or narrow the query.

Are there duplicates? Many German employers post on both the Arbeitsagentur and EURES. Results are de-duplicated by title and company within a call.

Is the UK covered? The UK is not part of EURES. Use company_jobs for UK employers, or search_jobs with remote: true.

Is the data fresh? The Arbeitsagentur, EURES and company boards are queried live. The remote feeds are cached for 30–60 minutes because of their polling rules.

Use with AI agents / Apify MCP

This Actor is an MCP server. Connect it directly (see above), or add it through mcp.apify.com next to other Apify Actors. In batch mode, call it from the Apify API, the Python or JS client, or any integration.