magpie (Content Desk): How I Built an Offline AI Work Journal to Manage My Side Hustles, Societies, & Applications A student developer built magpie (cdesk), an open-source, local-first work journal and posting desk that ingests git commits, notes, and exported Gemini/Claude chat histories, then drafts cited updates for Substack, LinkedIn, and society channels. The system runs offline LLMs via Ollama inside LangGraph pipelines, where the model writes but deterministic Python audits every draft for hallucinated numbers, handles, links, and dates, retrying up to twice before falling back to Jinja2 templates. It also includes a Kanban job tracker with a citation-backed resume and cover-letter tailor. This is a submission for the Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle https://dev.to/challenges/hacktoberfest-week2-2026-10-12 What I Built As a student developer balancing coursework, side projects, job applications, and leadership roles in university societies, my biggest bottleneck was chaos. My technical progress lived in scattered git commits, draft ideas were lost in private Gemini/Claude chats, I constantly lost track of job application deadlines, and sitting down to write updates for Substack or LinkedIn felt like starting from a blank void every single time. I built magpie cdesk โ€” an offline, local-first work journal, posting desk, and productivity hub. Instead of an AI that generates generic marketing fluff, magpie starts with the work you actually did: 1. Frictionless Capture Inbox: One-command ingestion of daily git commits, raw notes, or exported AI chat histories Gemini / Claude JSON , tagged by origin and deduplicated. 2. Source-Linked Work Journal: Daily and weekly summaries where every single line cites the exact capture receipts . 3. Multi-Channel Workspaces: Tailored drafting for Substack, LinkedIn, and university society channels. Each workspace has its own voice profile via vector embeddings , platform formatting rules, and banned-phrase filters. 4. Deterministic Fact-Checking & Receipt Checking: The local model drafts, but pure Python deterministically audits the text. If the model hallucinates numbers, handles, links, or dates not grounded in your source captures, it catches them and retries. 5. Content Planner & Nudges: Visual calendar views, .ics Google Calendar export, and gentle "you haven't posted in $N$ days" cadence nudges. 6. Job Tracker & Resume Tailor: A Kanban tracker for internships and jobs, paired with a pipeline that tailors resume bullets and cover letters backed strictly by citations from your real work journal. 7. Context Pack Generator: Instantly compiles recent journal lines, decisions, and open questions into a single markdown brief to paste into any new AI session. Who would pay for this? Freelancers, solopreneurs, student builders, and developer advocates managing multiple side projects who want to maintain an active public presence and organized career pipeline without spending hours manually collating notes or paying hefty monthly SaaS subscriptions. Demo Here is a full walkthrough of magpie in action โ€” from ingesting git logs and chat exports to generating verified, cited drafts and managing the job application pipeline: You can also run the full Streamlit interface locally in one command: streamlit run src/cdesk/app/Home.py or use the CLI via cdesk Code magpie is 100% open-source and local-first: How I Built It magpie was engineered with a strict principle: The model writes; deterministic code verifies, schedules, and counts. 1. Open-Source AI & Local Inference - Local LLMs via Ollama: Runs completely offline with open-weight models such as qwen2.5:3b , llama3.2 , or mistral . - Local Embeddings: Embeddings are generated locally and stored as binary BLOBs directly in SQLite for cosine-similarity voice matching and near-duplicate idea detection. - Offline Template Fallback: Every LLM node has a deterministic Jinja2 template fallback, meaning the entire system remains functional even on a low-spec laptop with Ollama turned off. 2. Stateful Graph Pipelines with LangGraph magpie splits work into three distinct LangGraph cycles: - Journal Graph: select - summarize LLM - verify receipt check - store . Unsupported claims are kicked back with exact violation feedback up to 2 retries before falling back. - Drafting Graph: gather - voice matching - write LLM - fact check - rules check - save . - Job Tailor Graph: parse jd LLM - match evidence - write bullets LLM - verify citations - store . 3. Architecture & Stack - Database: SQLite with SQLite FTS5 full-text search synchronized via SQLite triggers. - Frontend: Streamlit multi-page app with clean kanban boards, markdown editors, and visual diff badges for rules violations. - CLI: Python Typer + Rich cdesk capture , cdesk journal , cdesk draft , cdesk tailor , cdesk ics . Why Does Open Innovation Matter? Open-source and local-first AI are essential for personal productivity tools: 1. Absolute Privacy for Sensitive Data: A work journal contains unreleased code commits, internal team notes, personal thoughts, and job hunt statuses. Sending this raw telemetry to proprietary cloud APIs is a non-starter. Open innovation allows everything to run 100% on localhost. 2. Accessible on Student Hardware: Proprietary frontier models demand ongoing credit card subscriptions and API fees. By leveraging 4-bit quantized open-weight models 1Bโ€“7B parameters , Content Desk runs efficiently on an everyday student laptop. 3. Auditability & Determinism: Open frameworks allow us to insert rigid verifiers between reasoning steps, eliminating hallucinations and ensuring the assistant remains grounded in real facts rather than speculative marketing fluff. My First User I built magpie out of personal necessity, and I was my own first user. Before this, I had three persistent friction points: - Deadlines slipping away: Missing application deadlines and forgetting where I had applied or who I needed to follow up with. - University Society updates: Spending hours every weekend trying to remember what our student team shipped during the week to write announcement posts. - Content creation paralysis: Knowing I needed to share technical learnings on Substack and LinkedIn, but getting stuck on the blank page. Dogfooding magpie during its development changed my workflow: - Running cdesk capture --git