AI Lab/GDPR Broker Bot
Kdo drží moje data, musí to přiznat.
Bot na mém serveru rozesílá žádosti podle GDPR firmám, které obchodují s osobními daty. Čte odpovědi, hlídá lhůty a z každé přiznané firmy udělá další cíl. Já jen schvaluju, co odejde.
K čemu to je
Firmy, které o mně vědí, a já o nich ne
Data broker je firma, kterou jsi nikdy neoslovil, a přesto o tobě má složku. Kupuje údaje, skládá je a prodává dál. Jsou jich stovky a seznam „kdo má ta moje“ neexistuje.
GDPR mi dává právo se každé zeptat, co o mně má, odkud a komu to předala. A pak chtít výmaz. Ručně je to práce na týdny.
Tak jsem si napsal bota. Rozesílá žádosti, čte odpovědi, hlídá lhůty a u firem, které mlčí, skládá podklady pro stížnost na úřad.
Proč
Otravná práce, kterou nikdo neudělá
Zkusil jsem to ručně. Pár mailů, tabulka, hlídání lhůty. Po týdnu jsem ztratil přehled a po měsíci chuť.
Přitom je to práce pro stroj: šablona, odeslat, zapsat, počkat, připomenout. Chtěl jsem jen rozhodovat, co odejde mým jménem.
Jak to funguje
Smyčka, která se rozrůstá sama
- Nejdřív přístup, výmaz až potom. Žádost o přístup nutí firmu přiznat zdroj i příjemce dat. Při výmazu by smazala dřív, než řekne, kudy data tečou.
- Nic neodejde bez mého souhlasu. Bot připraví dávku, pošle souhrn do Telegramu a čeká na moje ano. Stížnost na úřad je vždy ruční.
- Přiznaní příjemci jsou nové cíle. Claude z odpovědi vytáhne, komu firma data předala. Každá se přidá do fronty ke schválení.
- Lhůty hlídá bot. Po třiceti dnech bez odpovědi připraví urgenci. Když firma mlčí dál, sestaví podklady pro stížnost.
Co umí
Co bot umí
Články, správné pořadí
Přístup podle článku 15, výmaz podle článku 17. Ten druhý až po potvrzení, že data drží.
Ano v Telegramu
Souhrn dávky, jedno slovo, teprve pak odeslání.
Druhy odpovědí
Potvrzení, věcná odpověď, nedoručení. Bot je k žádosti páruje sám, přeposlaný mail taky.
Skóre rizika
Drží data, prodal je dál, ignoruje lhůtu. Z chování firmy vznikne číslo a vím, na koho se zaměřit první.
Urgence, pak spis
Po lhůtě urgence. Když firma mlčí dál, vznikne spis pro úřad: časová osa, citace, porušení.
Verze reportu
Veřejná bez osobních údajů pro článek, soukromá s celým auditem pro mě.
Co jsem se naučil
Tři věci, na které jsem přišel až v provozu
Nejtěžší je prokázat, kdo jsem
Firmy s profesními daty párují podle pracovní identity, ne osobního mailu. Osobní žádost tak často vrátí „nic nemáme“. Dám odkaz na veřejný profil, pracovní mail ani telefon ne. Jen by získali další vazbu.
Nejdřív zmapovat, pak mazat
První verze posílala přístup i výmaz najednou. Firma pak klidně „smazala“ a zmizela dřív, než řekla, komu data prodala. Mapa je cennější než rychlý úklid.
AI čte odpovědi líp než moje pravidla
Klasifikace podle klíčových slov se pletla. Claude na strukturovanou extrakci je výrazně přesnější. Pravidla zůstala jako záloha.
Pro AI agenta
Postav si to u sebe
Chceš si to postavit u sebe? Zkopíruj návod a dej ho svému AI agentovi, třeba Claude Code nebo Codexu. Je v něm cíl, postup krok za krokem, pasti, na které jsem narazil, a jak ověřit, že to funguje. Adresy ani hesla v něm nejsou, ty agent doplní s tebou.
Pro zvědavé
Technické detaily
Stack a běh Python stdlib · SMTP/IMAP · Claude · SQLite
- Jádro
- Python 3.12, jen standardní knihovna:
smtplib,imaplib,sqlite3. Žádnépip install, vlastní mini.envloader. Běží na home serveru. - Samostatná schránka jen pro GDPR. SMTP odesílá, IMAP čte. Párování odpovědí přes
Message-ID, detekce bounce i automatického potvrzení. Přeposlaný mail se páruje podle obsahu. - AI vrstva
- Claude Sonnet přes vlastní API klíč, jediné místo s AI. Structured output: zdroj, příjemci, drží/nedrží. Před odesláním redakce PII: známé údaje nahrazeny značkami jako
[EMAIL],[PHONE]. - Data a provoz
- SQLite: brokeři, žádosti, odpovědi, lhůty, stav. Cron denně: stáhnout odpovědi, vyřetězit příjemce, přepsat report. V pondělí navíc lhůty a follow-upy. Approval gate přes Telegram.
Životní cyklus žádosti co se s ní děje po odeslání
| Stav | Co to znamená | Co bot udělá |
|---|---|---|
| odesláno | čl. 15 odešel, běží 30 dní | zapíše deadline, čeká |
| potvrzeno | automatické „máme to“ | hlásí do Telegramu, lhůta běží dál |
| věcná odpověď | firma řekla, co má a komu dala | Claude vytáhne zdroj a příjemce, ti jdou do fronty; pokud drží data, připraví čl. 17 |
| nedoručeno | bounce | hlásí do Telegramu, kontakt hledám ručně |
| po lhůtě | 30 dní bez věcné odpovědi | připraví urgenci ke schválení |
| mlčí dál | ani po urgenci nic | vyexportuje spis a draft stížnosti; odeslání je vždy ruční |
Spis obsahuje časovou osu, Message-ID, data a lhůty, doslovné citace z odpovědí, AI rozbor a shrnutí porušení.
Skóre rizika 0–100 z chování firmy
Body přičítá za to, že firma data drží, že je předala dál (a kolika příjemcům), že ignoruje lhůtu nebo žádost odmítla. Automatické potvrzení příjmu bez věcné odpovědi je slabý, ale nenulový signál. Výsledek řadí brokery do tří pásem a určuje, komu jde urgence první. Extrakce z odpovědí jede přes Claude, klíčová slova zůstala jen jako fallback bez API.
Dál