Here's the pipeline that matters more than the headline:
-
Ingest raw comms — dump emails, texts, calendars into a single JSONL stream. Strip PII with Presidio before anything hits the model.
-
Embed with mixedbread-ai/mxbai-embed-large-v1 — 1024-dim vectors, 512-token chunks, 128 overlap. Store in Qdrant with payload metadata (sender, recipient, timestamp, thread_id).
-
Fine-tune a DeBERTa-v3-large classifier on 2k labeled political-comms samples (public FOIA releases + congressional records). Labels: directive, performative, coordination, noise. Training takes ~40 min on a single A100.
-
Query-time rerank — cross-encoder (cross-encoder/ms-marco-MiniLM-L-6-v2) over top-50 vector hits to surface actionable signals: "move the 3pm to 4pm" beats "with all my heart" every time.
-
Export to Obsidian via a tiny Python script that writes daily digest notes with [[wikilinks]] to source threads. Searchable, local, no cloud.
from pathlib import Path
import jsonlines
from presidio_analyzer import AnalyzerEngine
from presidio_anonymizer import AnonymizerEngine
analyzer = AnalyzerEngine()
anonymizer = AnonymizerEngine()
def clean_text(text: str) -> str:
results = analyzer.analyze(text=text, language="en")
return anonymizer.anonymize(text=text, analyzer_results=results).text
with jsonlines.open("comms.jsonl", "w") as writer:
for raw in Path("raw_emails").glob("*.eml"):
parsed = parse_eml(raw) # your parser
writer.write({
"id": parsed.message_id,
"thread_id": parsed.thread_id,
"timestamp": parsed.date.isoformat(),
"sender": parsed.from_,
"recipients": parsed.to,
"body": clean_text(parsed.body),
"subject": parsed.subject
})
The aide's sign-off? Classified as performative with 0.94 confidence. The 3pm→4pm reschedule three lines up? Directive at 0.98. That's the signal.
Political theater gets clicks. Structured extraction gets decisions.
Next Community pushback against AI data centers just hit →
these AI tool field notes, with plenty of directly applicable cases.