Research Radar: Automatische Literaturrecherche zu Medizinischen Publikationen mit n8n

von Janine Burek | Mai 3, 2026 | Automatisierung

Wie ich mit n8n, PubMed, EuropePMC und ClinicalTrials einen automatischen Forschungs-Radar für medizinische Studien gebaut habe – mit Relevanz-Scoring, deutschen Obsidian-Notizen und täglichen Telegram-Updates.

Lesezeit: 3 Minuten

Medical Research Radar

Ich interessiere mich sehr für offizielle Publikationen zu bestimmten medizinischen Themen. Also habe ich einen Automations-Workflow gebaut, der das für mich erledigt: der Medical Research Radar.

Das System durchsucht PubMed, EuropePMC und ClinicalTrials.gov laufend nach neuer Literatur zu von mir vorher fest definierten Themen, bewertet Treffer mit einem Relevanz-Score und erstellt für die vielversprechendsten Fundstücke automatisch deutschsprachige Obsidian-Notizen. Ziel ist ein belastbares Wissenssystem, ohne bei jeder Suche blind alles per KI zusammenzufassen (Kostenfalle).


Wie es aufgebaut ist

Das System besteht aus drei n8n-Workflows, die ineinandergreifen:

1. Core Backfill – der historische Bestand

Der erste Workflow baut den Kern-Bestand auf, getrennt nach Quelle:

  • PubMed: läuft im Update-Betrieb und dedupliziert gegen bereits bekannte PMIDs
  • EuropePMC: paginierter Voll-Backfill mit strikten Titel- und Metadatenfiltern auf Themen-Kernbezug
  • ClinicalTrials: fokussierter historischer Backfill gegen Titel und Condition

Alle drei Zweige schreiben in dasselbe Google Sheet, in eigene Tabs (PubMed, EuropePMC, ClinicalTrials).

2. Summary – täglich um 08:00 Uhr

Der Summary-Workflow liest täglich alle als candidate markierten Einträge aus dem Sheet und erstellt daraus kontrolliert deutsche Obsidian-Notizen:

  • PubMed: high-Bucket → Abstract via efetch → OpenAI → Google Drive → Telegram
  • EuropePMC: bei leerem Abstract Fallback auf PubMed efetch möglich → OpenAI → Telegram → Upload
  • ClinicalTrials: Markdown-Template ohne KI (Studieninfos brauchen keine Zusammenfassung)

Sheet-Update und Telegram-Benachrichtigung laufen bewusst vor dem Google-Drive-Upload (dazu gleich mehr unter Learnings).

3. Offene Punkte (geplant)

  • Optional: EuropePMC-Abstract-Endpoint für non-MED-Quellen (Preprints) prüfen
  • Optional: Score-Schwellen nach mehr Praxis-Läufen nachjustieren
  • Optional: quellenübergreifende Sammelansicht (Radar_All) ergänzen

Das Relevanz-Scoring

Damit nicht jede halbwegs passende Veröffentlichung in Obsidian landet, bewertet ein Scoring-Algorithmus jeden Treffer anhand seiner Metadaten (Titel, Publikationstyp, Journal, Jahr):

KriteriumPunkte
Thema direkt im Titel5
Studientyp: Review/Guideline4
Studientyp: klinisch/Beobachtung3
Studientyp: Case Report1
Praxisrelevante Begriffebis 4
Aktualität ≤5 Jahre3
Aktualität ≤10 Jahre2
Pädiatrischer Bezug+2
Versorgungsrealität (Fehldiagnose etc.)+2

Alles ab Score 9 landet im high-Bucket und wird für eine Obsidian-Notiz vorgemerkt. EuropePMC-Kandidaten sind noch strenger gefasst: nur Reviews/Guidelines aus den letzten 10 Jahren, kein PubMed-Duplikat.

Das Scoring arbeitet bewusst nur mit Metadaten – Studien mit schwachem Titel aber starkem Abstract können zu niedrig einsortiert werden. Das ist ein bekannter Kompromiss.


Was ich dabei gelernt habe

Google Drive Upload bricht die pairedItem-Kette. Nach dem Upload sind alle Node-Referenzen kaputt, Telegram überschreibt danach zusätzlich $json. Fix: Sheet-Update und Telegram laufen VOR Convert/Upload; ein Restore-Set-Node stellt fileContent/fileName danach aus einem früheren Node wieder her.

EuropePMC-Paginierung war ein längerer Debugging-Weg. Verschiedene Code-Node-Ansätze (new URL(), fetch(), $helpers.httpRequest()) scheiterten alle an fehlenden globalen APIs in der n8n-Code-Node-Runtime. Lösung: n8n-natives HTTP-Pagination-Pattern (Response Contains Next URL / nextPageUrl) statt Code-Node-Requests.

PubMed-Rate-Limit (429) kommt schnell. Count- und Search-Requests laufen jetzt seriell über Loop Over Items + Wait, und Count-Nodes haben executeOnce gesetzt.


Status und nächste Schritte

Das System läuft. Der historische Bestand wird batchweise aufgebaut, der Summary-Workflow erstellt täglich neue Notizen für die besten Treffer, und ich bekomme per Telegram Bescheid wenn eine neue Obsidian-Notiz fertig ist.

Was noch fehlt:
– Den Update-Workflow aktivieren und auf monatlichen Trigger umstellen
– Optional: EuropePMC-Abstract-Endpoint für Preprints prüfen
– Optional: Score-Schwellen nach mehr Praxis-Läufen nachjustieren

Inhalt