Skip to main content
Glama

Linkedin Posts Job Radar

Echte Stellenangebote auf LinkedIn finden – ohne das Rauschen

MCP Server TypeScript Playwright React Express Vite Tailwind CSS SQLite Lizenz: ISC


Bitte deinen KI-Assistenten, LinkedIn zu durchsuchen. Linkedin Posts Job Radar erfasst die Ergebnisse, verwirft alles, was kein Arbeitgeber ist, der in einem Markt einstellt, der dich interessiert, und gibt dir ein Dashboard, um das Übriggebliebene in Ok, Vielleicht und Nicht interessiert zu sortieren.

Alles bleibt auf deinem Rechner. Keine Konten, keine Server, keine Daten verlassen deinen Laptop.

Das Linkedin Posts Job Radar-Dashboard, gefiltert auf Beiträge mit Gehaltsangabe


Warum

Suche auf LinkedIn nach „Senior Data Scientist" und du bekommst offene Stellen vermischt mit Leuten, die ihre Verfügbarkeit ankündigen, Kursanzeigen, Newsletter-Zusammenfassungen und denselben Personalvermittlungs-Repost zwanzigmal – das meiste davon in Ländern, in denen du nicht arbeiten kannst.

Linkedin Posts Job Radar prüft jeden Beitrag bevor er gespeichert wird, sodass du eine kurze Liste sichtest, statt dich durch Hunderte zu wühlen:

Harvest complete: 9 new posts added, 3 duplicates skipped,
12 rejected as outside allowed markets,
18 rejected as non-vacancy or agency posts

Related MCP server: LinkedIn-Posts-Hunter-MCP-Server

Installation

Du brauchst Node.js 18+ und einen MCP-Client wie Claude Code, Claude Desktop oder Cursor. Chromium lädt sich bei der ersten Verwendung selbst herunter.

Am schnellsten: ohne Klonen

Richte deinen Client direkt auf das Repo – npm holt und baut es für dich.

claude mcp add job-radar -- npx -y github:MaryemeBay/linkedin-posts-job-radar
{
  "mcpServers": {
    "job-radar": {
      "command": "npx",
      "args": ["-y", "github:MaryemeBay/linkedin-posts-job-radar"]
    }
  }
}
{
  "mcpServers": {
    "job-radar": {
      "command": "npx",
      "args": ["-y", "github:MaryemeBay/linkedin-posts-job-radar"]
    }
  }
}

Der erste Start dauert ein paar Minuten, während gebaut und Chromium geladen wird; spätere Starts sind sofort da.

Wenn du die Filterregeln ändern willst, brauchst du den Quellcode – klone also, wenn du festlegen möchtest, welche Märkte erlaubt sind.

Klonen, um die Regeln zu ändern

git clone https://github.com/MaryemeBay/linkedin-posts-job-radar.git
cd linkedin-posts-job-radar
npm run setup
npm run build

Registriere es mit dem absoluten Pfad zu deinem Klon:

claude mcp add job-radar -- node /absolute/path/to/linkedin-posts-job-radar/build/main.js

Für Claude Desktop oder Cursor verwende das JSON oben, mit "command": "node" und "args": ["/absoluter/pfad/.../build/main.js"].

Als Bundle

npm run bundle erzeugt eine .mcpb-Datei, die Clients mit MCP-Bundle-Unterstützung direkt installieren können – ohne Node-Werkzeuge auf dem Zielrechner.

Deine Märkte festlegen

Öffne src/intake/market-policy.ts und liste die Orte auf, an denen du tatsächlich einen Job annehmen würdest:

export const ALLOWED_COUNTRIES = [
  'France',
  'United Kingdom',
  'Remote (Europe)',
  'Remote (Worldwide)',
]

Nur nötig, wenn du geklont hast. Führe nach dem Bearbeiten npm run build aus – alles außerhalb dieser Liste erreicht deine Datenbank nie.


Verwendung

Sprich mit deinem Assistenten in normaler Sprache:

„Melde mich bei meinem LinkedIn-Konto an" Ein Browserfenster öffnet sich. Melde dich einmal an – die Sitzung wird lokal gespeichert, sodass du nicht erneut gefragt wirst.

„Suche auf LinkedIn nach Senior Data Scientist-Rollen in London" Erfasst die Ergebnisse und berichtet, was behalten und was herausgefiltert wurde.

„Öffne das Dashboard" Öffnet localhost:7391. Bewerte Beiträge mit Ok / Vielleicht / Nicht interessiert.

„Zeig mir alles, was ich mit Ok markiert habe und das ein Gehalt nennt" Filtert das Dashboard aus dem Gespräch heraus.

„Lösche alles, was ich mit Nicht interessiert markiert habe"

Das Dashboard

Bewerte einen Beitrag und seine farbige Seitenleiste nimmt diese Farbe an, damit eine lange Liste auf einen Blick lesbar bleibt. Eine „Nicht interessiert"-Karte wird abgedunkelt, bis du mit der Maus darüberfährst. Ein Klick auf eine Bewertung, die ein Beitrag bereits hat, entfernt sie – ein Fehlklick braucht also einen weiteren Klick statt eines vierten Buttons.

Applied wird separat erfasst – die Bewertung ist deine Meinung zur Rolle, Applied ob du aktiv geworden bist.

Jeder Beitrag zeigt das Land und eine eventuelle Bezahlung, beides automatisch aus dem Beitragstext extrahiert.

Tabellenansicht

Dunkles Design


Was verworfen wird

Drei Filter, angewendet sobald Beiträge eintreffen:

Filter

Verwirft

Relevanz

Beiträge ohne Anzeichen einer offenen Stelle – Kommentare, Zusammenfassungen, Kursanzeigen

Autor

„Open to work"-Beiträge und Reposts von Personalvermittlungen

Markt

Rollen außerhalb deiner erlaubten Länder

Relevanz sucht breit nach Einstellungsabsicht, weil viele echte Anzeigen nie „hiring" schreiben – Lead Data Analyst opportunity at HelloFresh in London ist eine Stellenanzeige.

Autor erkennt Vermittlungen auf zwei Wegen: Formulierungen wie our client, on behalf of, C2C oder Outside IR35, sowie Titel wie Recruitment Consultant oder Executive Recruiter. Titel, die auf beiden Seiten existieren – schlicht „Recruiter", „Talent Acquisition" – führen nie allein zur Ablehnung, und Corporate Recruiter wird als intern behandelt. Der eigene Recruiter eines Arbeitgebers ist genau der, von dem du hören willst.

Markt akzeptiert einen Beitrag, der ein erlaubtes Land nennt. Die Erwähnung eines unerwünschten Landes ist nicht disqualifizierend – eine Pariser Rolle, die Visabestimmungen für Bewerber anderswo erwähnt, ist immer noch eine Pariser Rolle. Beiträge ohne erkennbaren Ort werden behalten, da viele echte Anzeigen keinen nennen.

Freelance-/Vertragsrollen gewünscht? umbrella, Outside IR35 und C2C werden als Vermittlungssignale behandelt. Entferne sie aus AGENCY_BODY in src/intake/relevance.ts, um Vertragsarbeit durchzulassen.

Ortserkennung

Erkennt rund 105 Länder nach Name und Stadt, auf Englisch, Französisch, Deutsch, Spanisch und Portugiesisch, plus Ländercode-Listen wie Remote EU (CZ/EE/FI/PL/ES/SE).

Eine explizite Ortszeile gewinnt eindeutig. Wenn ein Beitrag 📍 Location: London, UK oder Lieu : Paris sagt, entscheidet diese Zeile – ein Beitrag mit 📍 Islamabad, Pakistan, der weiter unten London erwähnt, ist also korrekt eine Islamabad-Rolle, keine Londoner.

Gehaltserkennung

Jeder Währungsbetrag wird nach Zahlungszeitraum klassifiziert und nur behalten, wenn der Betrag für diesen Zeitraum sinnvoll ist. So unterscheidet sich ein echtes Gehalt von einem $2,000 welcome bonus oder €12.50/day Essensgutscheinen, und so bleibt $100/hour erhalten, während ein nacktes $100 abgelehnt wird.

Behandelt $128,470 - $208,770, 96k€, £75k-£115k, 110000USD-135000USD, 60,4K GBP/yr (französisches Dezimalkomma), £830/day und $7,000/month.


Deine Daten

Was

Wo

Erfasste Beiträge

~/.linkedin-mcp/resources/linkedin.db

LinkedIn-Sitzung

~/.linkedin-mcp/auth.json

Beides liegt außerhalb dieses Repos und wird nie eingecheckt. Es wird nichts irgendwohin gesendet – das Dashboard ist ein lokaler Server, und der einzige Netzwerkverkehr ist Playwright, das wie dein eigener Browser mit LinkedIn spricht.

Um alles zu löschen: rm -rf ~/.linkedin-mcp


Werkzeuge, die dein Assistent aufrufen kann

Werkzeug

Was es tut

linkedin_session

Anmelden, Sitzung prüfen, gespeicherte Zugangsdaten löschen

harvest_posts

Suchen und Beiträge speichern, mit Bericht über Herausgefiltertes

vacancies

Lesen, zählen oder löschen – filtern nach Stichwort, Markt, Gehalt, Bewertung, Applied

dashboard_filters

Dashboard-Filter aus dem Gespräch heraus ändern

open_dashboard / close_dashboard

Dashboard starten und stoppen

Befehle

npm run viewer      # dashboard on :7391, without going through your assistant
npm run rederive    # recompute country and pay for stored posts
npm run seed        # import posts from a JSON export
npm run build       # rebuild after changing any rule
npm run typecheck

npm run rederive -- --all leitet jeden Beitrag neu ab statt nur die Lücken – führe es nach dem Bearbeiten eines Erkenners aus.

Um das Dashboard von Port 7391 zu verschieben:

JOB_RADAR_PORT=9090 npm run viewer

Wenn dein MCP-Client den Server startet, setze JOB_RADAR_PORT in den env-Block dieses Servers, damit open_dashboard denselben Port verwendet.


Code-Struktur

src/
  main.ts               MCP server: tool schemas and dispatch
  commands/             One module per tool
  linkedin/
    session/            Playwright login, credential storage
    harvest/            Search crawler, URL building, post parsing
  intake/               The screening pipeline
    ingest.ts             Applies every gate, then writes
    relevance.ts          Vacancy vs commentary vs agency
    market-policy.ts      Country allowlist  <- edit this
    location.ts           Country inference
    compensation.ts       Pay parsing
  store/                SQLite handle, schema, queries
  viewer/               Dashboard API and React app
  platform/             Paths, persisted filter state
scripts/                Maintenance scripts

Der Speicher ist sql.js, das die gesamte Datenbank im Speicher hält und sie komplett zurückschreibt. Bei zwei laufenden Prozessen – dem MCP-Server und dem Dashboard – würde jeder sonst einen veralteten Schnappschuss bedienen und beim nächsten Speichern die Zeilen des anderen überschreiben.

store/connection.ts erstellt einen Fingerabdruck der Datei anhand von Größe und Änderungszeitpunkt, lädt neu, wenn ein anderer Prozess geschrieben hat, und protokolliert seine eigenen Speicherungen, um nicht unnötig neu zu laden. Das Entfernen dieser Prüfung verliert stillschweigend Daten.


Namensnennung

Abgeleitet von LinkedIn-Posts-Hunter-MCP-Server von Kevin Weitgenant, verwendet unter der ISC-Lizenz.

Dieser Fork reorganisiert die Codebasis um die Erfassungspipeline, fügt die oben genannten Relevanz-, Vermittlungs- und Marktfilter hinzu, ergänzt Länder- und Gehaltserkennung, ersetzt ein gespeichertes Flag durch die Sichtungsbewertung, benennt die MCP-Werkzeuge um, baut das Dashboard neu und behebt das prozessübergreifende Überschreiben der Datenbank.

Lizenziert unter ISC – siehe LICENSE, das beide Copyright-Zeilen enthält.

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Helps users find suitable LinkedIn job opportunities by automatically scraping listings, analyzing compatibility with user profiles using AI, and sending custom match reports via email.
    1
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides tools for automating LinkedIn job post search and management. Job opportunities often appear in LinkedIn posts first, before they're posted on traditional job boards. By monitoring LinkedIn posts, you can discover opportunities earlier and get a competitive advantage in your job search.
    19
    6
    ISC
  • A
    license
    Not graded
    quality
    B
    maintenance
    An MCP server that finds recent job postings based on your LinkedIn profile, scores each against your resume, and logs the results — all without logging into or scraping LinkedIn.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Searches LinkedIn, Indeed, USAJobs, and Google Jobs from the command line, deduplicates across sources, and optionally finds hiring manager emails; also runs as an MCP server for AI agents.
    MIT

View all related MCP servers

Related MCP Connectors

  • Semantic search over 3.5M+ live US job postings pulled straight from company ATSes. Read-only.

  • Unified jobs search over official feeds + ATS boards (USAJOBS, Adzuna, Muse, Greenhouse, Lever...)

  • Search AI-native jobs, inspect application forms, and fetch free interview-prep resources.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/MaryemeBay/linkedin-posts-job-radar'

If you have feedback or need assistance with the MCP directory API, please join our Discord server