Claude-Guardian
Claude Guardian는 계정 안전과 위험 방지를 위한 올인원 기능으로, 기기·계정 이력·네트워크·결제 옵션을 지능적으로 평가해 제공합니다
전문 LinkedIn 프로필 분석을 위한 Claude 협업 스킬: 가중치 점수, 헤드라인 최적화, 배너 제작, 콘텐츠 전략 및 DOCX 보고서
Claude Cowork Skill für professionelle LinkedIn-Profilanalyse: Gewichtetes Scoring, Headline-Optimierung, Banner-Erstellung, Content-Strategie und DOCX-Report.
스킬Python · HTMLGitHub @GodModeAI2025온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Claude skill for evidence-based LinkedIn profile analysis, headline and About editing, banner briefs, competitor comparison and report generation.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Ein Skill zur professionellen Analyse und Optimierung von LinkedIn-Profilen. Entwickelt für Berater, Agenturen und Freelancer, die Kunden strategisch als Thought Leader positionieren und auf das LinkedIn Top Voice Badge vorbereiten. Acht Phasen, von der Datenerhebung bis zur Übergabe. Jede Zahl im Skill hat eine Quelle oder ist als Erfahrungswert gekennzeichnet; was sich nicht belegen ließ, ist entfernt und gegen die Rückkehr gesperrt. Für den laufenden Betrieb danach, also Wochensystem, Content-Kalender, Community und Monetarisierung, gibt es den Schwester-Skill linkedin-community-builder.README 전문 보기 ↗
Ein Skill zur professionellen Analyse und Optimierung von LinkedIn-Profilen. Entwickelt für Berater, Agenturen und Freelancer, die Kunden strategisch als Thought Leader positionieren und auf das LinkedIn Top Voice Badge vorbereiten.
Acht Phasen, von der Datenerhebung bis zur Übergabe. Jede Zahl im Skill hat eine Quelle oder ist als Erfahrungswert gekennzeichnet; was sich nicht belegen ließ, ist entfernt und gegen die Rückkehr gesperrt.
Für den laufenden Betrieb danach, also Wochensystem, Content-Kalender, Community und Monetarisierung, gibt es den Schwester-Skill linkedin-community-builder.
„Analysiere mein LinkedIn-Profil und gib mir einen Score."
„Optimiere meine Headline."
„Erstelle mir ein LinkedIn-Banner."
„Wie stehe ich gegen meine Wettbewerber da?"
„Bin ich reif für ein Top Voice Badge?"
Der Skill führt durch die Phasen und fragt nach, was er nicht sehen kann.
| Weg | Befehl |
|---|---|
| Claude Code (CLI, Desktop, IDE) | /plugin marketplace add GodModeAI2025/LinkedInOptimizer, dann /plugin install linkedin-profil-optimierung@linkedin-optimizer |
| claude.ai (Web) | Skills in der Seitenleiste → Add from GitHub → GodModeAI2025/LinkedInOptimizer |
| Release-Artefakt | siehe unten |
| Selbst gebaut | python scripts/build_skill_package.py dist/linkedin-optimizer.skill |
Der Skill liegt im Wurzelverzeichnis, nicht unter skills/. Claude Code lädt eine SKILL.md im
Plugin-Wurzelverzeichnis; .claude-plugin/plugin.json sagt es zusätzlich mit "skills": ["."].
Das Release-Artefakt heißt linkedin-optimizer.skill und liegt am jeweils letzten Release:
curl -LO https://github.com/GodModeAI2025/LinkedInOptimizer/releases/latest/download/linkedin-optimizer.skill
Die Datei entweder in Claude Chat ziehen oder lokal auspacken:
unzip linkedin-optimizer.skill -d /path/to/skills/user/linkedin-profil-optimierung/
Im Archiv liegen SKILL.md, CHANGELOG.md, references/ einschließlich der acht Phasendateien und SOURCES.md, scripts/create_banner.py, scripts/generate_report.js, LICENSE und requirements.txt. Landingpage, Workflows und die Repo-Werkzeuge check_versions.py, check_sources.py und build_skill_package.py sind nicht enthalten.
Aus einem Klon lässt sich dasselbe Archiv selbst bauen, ohne Netz und ohne GitHub:
python scripts/build_skill_package.py dist/linkedin-optimizer.skill
Das Skript setzt feste Zeitstempel und eine feste Reihenfolge und speichert unkomprimiert. Zwei Läufe liefern dieselben Bytes, auch auf verschiedenen Rechnern.
scripts/create_banner.py braucht Pillow ab 10.1: pip install -r requirements.txt. scripts/generate_report.js braucht das npm-Paket docx.
| Deliverable | Beschreibung |
|---|---|
| Gewichteter Profil-Score | 10-Kategorie-Bewertung (0–100) nach dem Raster in references/SCORING.md |
| Wettbewerbsanalyse | Positionierungsmatrix auf zehn Achsen gegen 3–5 Nischen-Konkurrenten, Erhebungsrahmen in references/COMPETITIVE.md |
| Optimierte Headline | 3 Varianten mit SEO-Score, Zeichenzahl und Begründung |
| Optimierter About-Text | Orwell-inspiriert, strategische Hashtags, starker CTA |
| Banner | 1584×396px mit Safe-Zone-Validierung |
| Content Skill | Personalisierter Posting-Skill mit 10 Hook-Typen |
| Kommentar Skill | 5 Kommentar-Typen, 15–20 Ziel-Accounts |
| SSI-Aktionsplan | Social Selling Index Optimierung über 4 Säulen, aufgeteilt auf Tag 1–30, 31–60 und 61–90, je mit Hypothese und Messweg |
| DOCX-Report | Word-Dokument mit 9 Kapiteln, Scoring-Tabellen und 30/60/90-Tage-Roadmap |
Neben diesem Skill gibt es LinkedIn-Orchestrator mit dem Skill linkedin-community-builder. Die beiden bleiben getrennt, weil sie verschiedene Aufgaben haben.
| linkedin-profil-optimierung (dieses Repo) | linkedin-community-builder | |
|---|---|---|
| Aufgabe | Einmalige Ist-Analyse und Profil-Artefakte | Laufender Betrieb über Wochen und Monate |
| Ergebnis | Score, Headline, About, Banner, Wettbewerbsmatrix, SSI-Plan, DOCX-Report | Wochensystem, Content-Kalender, Community, Analytics, Monetarisierung |
| Zeitform | Bestandsaufnahme mit Übergabe am Ende | Zustandsgesteuert, läuft weiter |
| Werkzeuge | Chrome-Plugin, Banner-Skript, Report-Template | Rein konversationell |
Beide reagieren heute auf dieselben Formulierungen: „Profil optimieren", „Profil verbessern", „Personal Branding", „Content-Strategie", „Top Voice". Das ist kein Schönheitsfehler, sondern führt dazu, dass Claude bei solchen Sätzen zwischen zwei Skills wählen muss. Die Auflösung steht im Abschnitt Abgrenzung zum Schwester-Skill in SKILL.md: Ist-Analyse und Artefakte hier, laufender Betrieb dort, bei beidem zuerst hier und danach Übergabe.
Der Orchestrator führt dieselbe Regel inzwischen in der Gegenrichtung, im Abschnitt „Abgrenzung zum Schwester-Skill" seiner LinkedIn-Orchestrator/skills/linkedin-community-builder/SKILL.md. Beide Beschreibungen im Frontmatter nennen den jeweils anderen Skill beim Namen und bleiben unter 400 Zeichen; scripts/check_descriptions.py prüft Länge, Strichzeichen und das Vorhandensein des Abgrenzungssatzes bei jedem Push. Was das Skript nicht sieht: ob die Abgrenzung inhaltlich stimmt.
Der Skill positioniert Menschen öffentlich, unter ihrem Klarnamen. Deshalb schreibt er keine Behauptung ins Profil, die der Kunde nicht belegen kann, und er baut keine Reichweite, die nicht aus dem Interesse echter Leser entsteht. Das gilt auch dann, wenn ein Kunde ausdrücklich etwas anderes beauftragt.
Abgelehnt wird: erfundene Titel, Rollen, Auszeichnungen oder Kundenzahlen; gekaufte Follower, Reaktionen und Kommentare; Pods und abgesprochene Kommentar-Runden; Automatisierung von Kontaktanfragen, Kommentaren oder Nachrichten; Fremdprofile über den Anlass hinaus.
Die Regeln stehen mit ihrer Begründung in references/ETHICS.md, der
Abgleich vor der Übergabe in SKILL.md Phase 8.0. Was davon geprüft wird und was nicht, steht in
ETHICS.md unter „Was diese Seite nicht leistet": tests/run_eval.py bindet die gesperrten
CTA-Formulierungen an vier Fundstellen und prüft, dass der Abgleich in SKILL.md verankert ist.
Ob eine Angabe im Profil stimmt, ob der Kunde den Text gelesen hat und ob sich jemand im
Gespräch über eine Regel hinwegsetzt, sieht kein Skript.
Jede Zahl im Skill hat in references/SOURCES.md entweder eine Zeile mit Quelle, URL, Veröffentlichungs- und Abrufdatum, oder sie steht dort unter „Zurückgezogen“ und ist aus dem Skill entfernt. Stand: 04.09.2026, nächste Prüfung: 04.03.2027.
Belegt:
Zurückgezogen, weil nicht belegbar: der genannte Plattformdurchschnitt der Engagement-Rate, die Engagement-Prozentwerte je Postformat, die Wirkungsfaktoren für Kommentieren und Kontaktanfragen, die Angabe zur Sichtbarkeitsdauer eines Beitrags, die branchenspezifische Benchmark-Zeile, die Rahmung des Punkterasters als Branchen-Benchmark und die Selbstbeschreibung des Skills als evidenzbasiert. Die vollständige Liste mit Begründung steht in SOURCES.md.
scripts/check_sources.py baut die Sperren gegen diese Aussagen aus der Spalte „Sperrmuster“ derselben Tabelle und läuft in der CI. Es prüft Schreibweisen, keine Aussagen. Ein Muster fängt die Zahl mit Komma und mit Punkt, das Prozentzeichen und das ausgeschriebene Wort, das geschützte Leerzeichen als HTML-Entity und das ASCII-x als Faktorzeichen. Ein frei formulierter Satz, der dieselbe Behauptung ohne die gesperrte Schreibweise aufstellt, fällt nicht auf. Jede Zeile der Tabelle trägt ein Muster; eine Zeile lässt sich über die Tabelle nicht von der Sperre befreien. Für die Behauptung, bei der ein reines Textverbot die richtigen Verneinungen im Skill mit treffen würde, kommt eine zweite Prüfung dazu: Ein Absatz, der „Collaborative Articles“ und ein Badge in einem Zug nennt, muss Q3 zitieren. Das hält einen neu formulierten Satz auf, der die Badge-Behauptung ohne Quelle wieder aufstellt. Wer die falsche Aussage mit der richtigen Quellenangabe hinschreibt, kommt weiterhin durch.
Die zehn Kategorien, ihre Gewichte und die Begründung je Gewicht stehen in references/SCORING.md. Dort liegt auch das Engagement-Rate-Bewertungsraster samt Berechnungsformel und die Score-Interpretation, die einen Gesamtscore in einen Zeithorizont bis Top Voice übersetzt.
references/SCORING.md ist ein erfundenes Profil aus tests/fixtures/, keine Messung. Ein belastbares Vorher-Nachher braucht zwei datierte Messungen desselben Profils im Abstand von 60 bis 90 Tagen.scripts/generate_report.js schätzt die Engagement-Rate deshalb aus der Follower-Zahl, während das Bewertungsraster in SCORING.md Impressions als Nenner voraussetzt. Der geschätzte Wert liegt systematisch höher, beide sind nicht direkt vergleichbar.scripts/generate_report.js steht fest auf /mnt/user-data/outputs/, also auf die Sandbox von claude.ai. Für einen lokalen Lauf muss die letzte Zeile angepasst werden.scripts/create_banner.py braucht Pillow ab 10.1. Ältere Versionen wenden die angeforderte Schriftgröße nicht auf den Ersatz-Font an; die Safe-Zone-Messung ist dann nicht belastbar, und --strict bricht ab.docx gibt es weiterhin keine package.json, seine Version ist damit offen.| Problem | Ursache |
|---|---|
| Der Skill springt nicht an | Nach der Installation eine neue Unterhaltung beginnen. Die Beschreibung wird beim Start gelesen. |
| Es kommt der andere LinkedIn-Skill | Beide reagieren auf ähnliche Sätze. Sag dazu, ob es um die einmalige Analyse oder um den laufenden Betrieb geht. |
| Die Profildaten bleiben leer | LinkedIn hat das Markup geändert oder die Chrome-Sitzung ist nicht angemeldet. Die Selektoren stehen in references/PHASE-1-discovery.md. |
create_banner.py bricht ab | Pillow ist älter als 10.1, siehe requirements.txt. |
generate_report.js wirft ENOENT | Der Ausgabepfad ist auf die claude.ai-Sandbox verdrahtet. Letzte Zeile anpassen. |
LinkedInOptimizer/
├── README.md # Diese Übersicht
├── SKILL.md # Router: Abgrenzung, Ressourcen, Ablauf, Gates
├── CHANGELOG.md # Versionsgeschichte
├── CLAUDE.md # Regeln für Agenten, Pre-Push-Block, Invarianten
├── SECURITY.md # Bedrohungsmodell, Vertrauensgrenzen, bekannte Lücken
├── .claude-plugin/
│ ├── plugin.json # Plugin-Manifest
│ └── marketplace.json # Marketplace-Eintrag
├── VERSION # Quelle der Versionsnummer, alles andere ist Kopie
├── requirements.txt # Pillow-Untergrenze für create_banner.py
├── LICENSE # MIT-Lizenz
├── index.html # Landingpage (GitHub Pages, Quelle ist der Repo-Root)
├── scripts/
│ ├── create_banner.py # Banner-Generator mit Safe-Zone-Validierung
│ ├── check_versions.py # Prüft die Versionsangaben gegen VERSION
│ ├── check_sources.py # Prüft SOURCES.md und sperrt zurückgezogene Aussagen
│ ├── check_descriptions.py # Länge, Strichzeichen und Abgrenzungssatz im Frontmatter
│ ├── check_hooks.py # Zehn Hook-Namen in kanonischer Reihenfolge
│ ├── check_links.py # Verweise im Skill, in der Doku und im Archiv
│ ├── build_skill_package.py # Baut linkedin-optimizer.skill, reproduzierbar und offline
│ └── generate_report.js # DOCX-Report-Template (Node.js, npm-Paket docx)
├── references/
│ ├── PHASE-1-discovery.md # Phase 1: Datenerhebung, Interview, SSI
│ ├── PHASE-2-scoring.md # Phase 2: Scoring und Gap-Analyse
│ ├── PHASE-3-wettbewerb.md # Phase 3: Wettbewerbsanalyse
│ ├── PHASE-4-profil.md # Phase 4: Headline, About, Quick Wins
│ ├── PHASE-5-banner.md # Phase 5: Banner-Erstellung
│ ├── PHASE-6-content.md # Phase 6: Content- und Kommentar-Strategie
│ ├── PHASE-7-ssi.md # Phase 7: SSI-Massnahmenplan
│ ├── PHASE-8-report.md # Phase 8: Ethik-Abgleich, Report, Uebergabe
│ ├── SCORING.md # Gewichtete Bewertungsmatrix mit Sub-Kriterien und Bewertungsraster
│ ├── SOURCES.md # Quellen mit Datum, zurückgezogene Zahlen, Prüfrhythmus
│ ├── ETHICS.md # Ethische Leitplanken, gesperrte CTA-Formulierungen, Ethik-Abgleich
│ ├── COMPETITIVE.md # Erhebungsrahmen der Wettbewerbsanalyse: Auswahlregel, zehn Achsen, Ausgabe
│ ├── TEMPLATES.md # Vorlagen für Headline, About, Content, Kommentare
│ ├── UNTRUSTED.md # Erhobener Seitentext ist Daten, nie Anweisung
│ └── BANNER.md # Technische Banner-Anleitung mit Viewport-Matrix
├── tests/
│ ├── fixtures/ # Drei frei erfundene Profile als JSON
│ ├── expected/ # Erwartete Score-Bänder je Fixture
│ └── run_eval.py # Eval-Runner, prüft Matrix, Namen und Bänder
└── .github/workflows/
├── ci.yml # Syntax, Banner, Versionen, Trigger, Quellen, Hooks, Eval, Paket
├── dependabot.yml # Hält die Actions monatlich aktuell
└── release.yml # Hängt das Artefakt an ein Tag v*
python tests/run_eval.py
Der Runner liest das Gewichtsmodell aus references/SCORING.md und prüft damit drei erfundene
Profil-Fixtures gegen erwartete Score-Bänder. Er stellt außerdem sicher, dass die zehn Kategorien
in SCORING.md, SKILL.md, auf der Landingpage und in scripts/generate_report.js wortgleich
heißen, dass die 18 Profil-Elemente aus der Checkliste in SCORING.md in derselben Reihenfolge in
SKILL.md Phase 4.3 und in der Audit-Tabelle des Report-Generators stehen, dass die Zahlen der
Scoring-Engine auf der Landingpage aus tests/fixtures/profile_mid.json stammen und dass die
Landingpage den Dialog als Beispiel ausweist und die Fixture dazu nennt.
Seit v2.5.0 kommen drei Bindungen dazu: die vier gesperrten CTA-Formulierungen aus
references/ETHICS.md stehen vollständig an allen vier Stellen, die dieselbe Liste führen; die
zehn Achsen der Wettbewerbsmatrix stehen in references/COMPETITIVE.md und in SKILL.md Phase 3.1
in derselben Reihenfolge, und die Mindestzahl der Wettbewerber lautet überall gleich; der
Maßnahmenplan läuft an allen vier Stellen über Tag 1–30, 31–60 und 61–90, und die abgelösten
Horizonte dürfen nicht danebenstehen. Alle drei prüfen Schreibweisen und Listen. Was sie nicht
sehen, steht in den beiden Referenzdateien jeweils im letzten Abschnitt.
Die Fixtures sind frei erfunden, nicht anonymisiert. Ein reales Profil zu erheben und danach zu verfremden wäre genau die Datenverarbeitung, die SECURITY.md einschränkt.
Ein echter Lauf lässt sich gegen dieselben Bänder prüfen:
python tests/run_eval.py --fixture profile_mid --result lauf.json
Offene Punkte, ohne Termin:
docx, dazu gepinnte Versionen statt der Untergrenze in requirements.txt.Die Versionsnummer steht in der Datei VERSION. README, SKILL.md, Landingpage und Report-Template führen sie als Kopie; scripts/check_versions.py vergleicht sie bei jedem Push gegen VERSION und schlägt bei Abweichung fehl. Der Release-Workflow prüft zusätzlich, dass der Tagname zu VERSION passt.
Aktuelle Version: v2.6.0. Was sich je Version geändert hat, steht in CHANGELOG.md.