AI DEV JOBS

Aggregator fΓΌr AI/ML/Dev-Jobs aus offenen APIs β€” mit MCP-Tool-Export, damit jede Suchanfrage direkt als Model Context Protocol Tool nutzbar ist.

–
Jobs geladen
–
AI/ML-Treffer
–
Remote
–
Firmen

Lade Jobs von RemoteOK...

Was ist MCP?

Das Model Context Protocol (Anthropic, 2024) standardisiert, wie LLM-Clients (Claude Desktop, Cursor, etc.) auf externe Tools/Daten zugreifen β€” via JSON-RPC ΓΌber stdio oder HTTP/SSE. Ein MCP-Server deklariert tools (aufrufbare Funktionen) und resources (lesbare Datenquellen). Dieses Tool zeigt, wie sich der Job-Feed als echtes MCP-Tool-Schema exportieren lΓ€sst β€” eine HTML-Datei kann keinen Server hosten, aber das Schema ist 1:1 in einen echten Node/Python-MCP-Server kopierbar.

Live-generiertes Tool-Schema (basierend auf aktueller Suche)

// Lade zuerst Jobs im "Job-Feed"-Tab, das Schema aktualisiert sich automatisch.

Beispiel: minimaler MCP-Server in Node.js (zum Kopieren)

import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";

const server = new Server({ name: "ai-dev-jobs", version: "1.0.0" });

server.setRequestHandler("tools/list", async () => ({
  tools: [{
    name: "search_ai_jobs",
    description: "Durchsucht aktuelle Remote AI/ML-Jobs nach Keyword",
    inputSchema: {
      type: "object",
      properties: { keyword: { type: "string" } },
      required: ["keyword"]
    }
  }]
}));

server.setRequestHandler("tools/call", async (req) => {
  const jobs = await fetch("https://remoteok.com/api").then(r => r.json());
  const filtered = jobs.filter(j => j.tags?.includes(req.params.arguments.keyword));
  return { content: [{ type: "text", text: JSON.stringify(filtered.slice(0, 10)) }] };
});

const transport = new StdioServerTransport();
await server.connect(transport);

Demonstrierte Skills

πŸ”Œ Protokoll-VerstΓ€ndnis

MCP-Tool/Resource-Schema korrekt nach JSON-Schema modelliert, inkl. inputSchema-Validierung.

🌐 API-Aggregation

Live-Fetch von RemoteOK (ΓΆffentliche API, kein Key), Normalisierung uneinheitlicher Tag-Daten.

🧹 Daten-Bereinigung

HTML-Entities in Job-Titeln dekodiert, Duplikate/leere Felder gefiltert, AI/ML-Keyword-Matching gegen Tag-Liste.

⚑ Client-Side Filtering

Echtzeit-Filterung ohne erneuten API-Call β€” alle Jobs einmal geladen, dann lokal durchsucht.

πŸ“€ Datenexport

Strukturierter JSON-Export im MCP-Resource-Format, direkt downloadbar als .json.

🎨 UI-Architektur

Tab-basierte SPA-Struktur ohne Framework, reines Vanilla-JS mit State-Management ΓΌber DOM.

Architektur-Diagramm (Text)

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  RemoteOK API   β”‚ ──> β”‚  Normalisierung   β”‚ ──> β”‚  UI: Job-Feed        β”‚
β”‚  (ΓΆffentlich)   β”‚     β”‚  + AI-Keyword-Tag  β”‚     β”‚  + Filter + Export   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                                              β”‚
                                                   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                                                   β”‚  MCP Resource Export  β”‚
                                                   β”‚  (JSON, Tool-Schema)  β”‚
                                                   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜