Sekcja F — Automatyzacje monitoringu (n8n + auto-wiki)
TL;DR: Pięć workflow + auto-wiki pipeline który trzyma tę bazę żywą bez ręcznej pracy. Codzienny cron 8:00 zbiera nowe posty z 8 YouTube + 4 Substack, transkrybuje, ekstrahuje wnioski przez Gemini, generuje wpisy do wiki. Plus 5 n8n flow do równoległego monitoringu LinkedIn/X (gdzie RSS nie istnieje) + alertów dla najważniejszych sygnałów.
TL;DR
Pięć workflow + auto-wiki pipeline który trzyma tę bazę żywą bez ręcznej pracy. Codzienny cron 8:00 zbiera nowe posty z 8 YouTube + 4 Substack, transkrybuje, ekstrahuje wnioski przez Gemini, generuje wpisy do wiki. Plus 5 n8n flow do równoległego monitoringu LinkedIn/X (gdzie RSS nie istnieje) + alertów dla najważniejszych sygnałów.
1. Auto-wiki pipeline (już działa)
Co robi
Pipeline w scripts/auto-wiki/ codziennie o 8:00:
- Sprawdza RSS z
config.yaml(8 YouTube channels + 4 Substack) - Pobiera nowe wideo przez
yt-dlp(audio only) - Transkrybuje przez mlx-whisper (lokalnie, M5)
- Wysyła do Gemini 2.0 Flash z promptem "rozszerz wiki o nowe insighty"
- Tworzy draft → walidacja → auto-merge do wiki (lub
wiki-drafts/do review) git pushjeśligit_auto_push: true
Konfiguracja po Etapie 4
Plik scripts/auto-wiki/config.yaml zawiera teraz:
youtube_channels:
- name: "AI Product Heroes"
rss_url: "https://www.youtube.com/feeds/videos.xml?channel_id=UCax6OA7YbYilcMrfQsUJG-Q"
- name: "Cole Medin"
rss_url: "https://www.youtube.com/feeds/videos.xml?channel_id=UCMwVTLZIRRUyyVrkjDpn4pA"
- name: "IndyDevDan"
rss_url: "https://www.youtube.com/feeds/videos.xml?channel_id=UC_x36zCEGilGpB1m-V4gmjg"
- name: "Nate Herk"
rss_url: "https://www.youtube.com/feeds/videos.xml?channel_id=UC2ojq-nuP8ceeHqiroeKhBA"
- name: "AI Jason"
rss_url: "https://www.youtube.com/feeds/videos.xml?channel_id=UCrXSVX9a1mj8l0CMLwKgMVw"
- name: "n8n"
rss_url: "https://www.youtube.com/feeds/videos.xml?channel_id=UCiHVTkJtWSdc9N3h0nUGWLg"
- name: "Anthropic"
rss_url: "https://www.youtube.com/feeds/videos.xml?channel_id=UCrDwWp7EBBv4NwvScIpBDOA"
- name: "Akademia Automatyzacji (PL)"
rss_url: "https://www.youtube.com/feeds/videos.xml?channel_id=UCbtwNjHMUoOPvoBCknlgdQg"
web_sources:
- name: "Anthropic Blog"
type: rss
url: "https://www.anthropic.com/rss.xml"
- name: "OpenAI Blog"
type: rss
url: "https://openai.com/news/rss.xml"
- name: "Latent.Space"
type: rss
url: "https://www.latent.space/feed"
- name: "Ben's Bites"
type: rss
url: "https://bensbites.substack.com/feed"
- name: "One Useful Thing"
type: rss
url: "https://www.oneusefulthing.org/feed"
- name: "AI w zasięgu biznesu (PL)"
type: rss
url: "https://aiwzasiegubiznesu.substack.com/feed"
Test pipeline
cd ~/projects/personal/bartoszgaca.pl
GEMINI_API_KEY="..." python3 scripts/auto-wiki/pipeline.py --dry-run
Manualne uruchomienie dla konkretnego URL
GEMINI_API_KEY="..." python3 scripts/auto-wiki/pipeline.py \
--url "https://www.youtube.com/watch?v=XXX"
2. n8n workflow — LinkedIn/X monitoring (gdzie RSS nie istnieje)
LinkedIn nie ma RSS. X (Twitter) wyłączyło RSS. Dla 25 twórców z TOP10 + TIER2 + PL, którzy publikują głównie tam, potrzebujemy n8n flow.
Workflow #1 — LinkedIn posts scrape (Apify + n8n)
Trigger: Schedule (codziennie 9:00)
Steps:
- HTTP Request → Apify Actor "linkedin-posts-scraper"
- Input: lista 25 URL profili z TOP10 + TIER2 + PL
- Output: posts z ostatnich 24h
- Filter → tylko posty z keywords:
n8n|make.com|claude|MCP|automation|AI agent|workflow - AI Summarize → Anthropic API (claude-haiku-4-5) → 2-zdaniowy summary
- IF → score > 7 → branch A; else → branch B
- Branch A (alpha signal): Telegram message + zapisz w
output/alerts/ - Branch B (low signal): tylko zapis do
output/feed/
Koszt: Apify ~$0.05/profil/dzień × 25 = ~$1.25/dzień, Anthropic Haiku ~$0.01/dzień. Razem ~$40/mc.
Workflow #2 — X (Twitter) bookmarks via nitter.net mirror
Trigger: Cron co 4h
Steps:
- HTTP Request →
nitter.net/levelsio/rss(i inne profile X) - Parse RSS → standard n8n RSS node
- Filter → ostatnie 4h
- Merge z innymi nitter feedami
- AI Summarize → Claude Haiku
- Write →
output/x-feed/{date}.md
Uwaga: nitter.net jest niestabilny. Alternatywa: Twitter API v2 ($100/mc) lub manual Twitter list w aplikacji.
Workflow #3 — Telegram daily digest
Trigger: Schedule (codziennie 8:30)
Steps:
- Read files →
output/alerts/*.mdz ostatnich 24h - Aggregate → connect node
- AI Format → Gemini 2.0 Flash → digest w formacie:
🎯 ALPHA SIGNALS (3):
- Cole Medin: nowy livestream o Archon v2
- Boris Cherny: thread o Claude Code 10 sesji
- Trzepieciński: case study n8n + Claude API u klienta
📡 NOISE (12 ignored)
Workflow #4 — GitHub trending dla AI tools
Trigger: Codziennie 7:00
Steps:
- HTTP Request → GitHub API:
repos searchz keywordsclaude-code MCP n8n agentssorted bystars-this-week - Filter → stars > 100 AND created < 90 days
- Webhook →
output/github-trending/{date}.json - AI Triage → Claude Haiku → "czy to nowy framework czy fork?"
- Telegram jeśli "nowy framework"
Workflow #5 — Automatyczna aktualizacja wiki o "co dzisiaj viraluje"
Trigger: Codziennie 20:00
Steps:
- Read →
output/feed/{today}.md(z LinkedIn workflow #1) - AI Synthesize → Gemini → "Co viraluje dzisiaj w AI ops?"
- Append → wiki page
07-twórcy-do-śledzenia/_daily-pulse.md - git commit + push raz/tydzień (niedziela)
Wartość: Roczne archiwum wskaźników "co viralowało kiedy" → spojrzenie wstecz dla content planning.
3. Cron na Macu (launchd)
Auto-wiki już zarejestrowany w ~/Library/LaunchAgents/com.bartoszgaca.autowiki.plist. Sprawdź status:
launchctl list | grep autowiki
# - 0 com.bartoszgaca.autowiki (zarejestrowany, uruchomi się o 8:00)
Logi: tail -f ~/projects/personal/bartoszgaca.pl/output/auto-wiki-pipeline.log
4. Reguły walidacji (anti-hallucination dla auto-content)
scripts/auto-wiki/validate.py ma grep zakazanych fraz (lista pełna w scripts/auto-wiki/validate.py):
- frazy typu "warto/należy + czasownik" (typowy AI-blandness)
- frazy typu "klucz* + jest"
- frazy nadające ton kazania ("przed wszystkim", "fundamentalnie")
- frazy filerowe typu "warto + zaznaczyć/podkreślić"
Plus AI quality check przez Claude Sonnet z trzema decyzjami:
PUBLISH→ auto-merge do wikiNEEDS_REVIEW→ dooutput/wiki-drafts/do manualnego reviewREJECT→ dooutput/wiki-rejected/(nie powraca)
5. Metryki monitoringu (raz/kwartał)
Co 3 miesiące sprawdź:
| Metryka | Próg do reagowania |
|---|---|
| Twórca nie publikował 60+ dni | Usuń z config.yaml |
| Twórca zmienił niszę (np. AI ops → web3) | Usuń + dopisz powód do anti-rules |
| Nowy twórca >50k followers w niszy w PL | Dodaj do TIER 2 / kontaktuj |
| Nowy framework >5k stars w 30 dni | Dodaj do GitHub trending watch |
| Polskich twórców 🥇 ALPHA w bazie | Cel: 4 do końca 2026 (obecnie 2) |
6. Komendy do regularnego refresh
# Pełny refresh tej bazy
cd ~/projects/personal/bartoszgaca.pl
GEMINI_API_KEY="..." python3 scripts/auto-wiki/pipeline.py --dry-run
python3 scripts/build-wiki.py
git status
# Test konkretnego YT channel
GEMINI_API_KEY="..." python3 scripts/auto-wiki/pipeline.py \
--url "https://www.youtube.com/watch?v=NAJNOWSZE_VIDEO_ID"
# Re-validate stare pages (lista zakazanych fraz w validate.py)
python3 scripts/auto-wiki/validate.py --check output/beecommerce-wiki/07-twórcy-do-śledzenia/
Powiązane
- 01-alpha-sources — twórcy podpięci do pipeline
- 05-kanały-poza-linkedin — wszystkie RSS feeds
- 04-automatyzacja — n8n vs Zapier — kontekst narzędzi