

Yeah, done two separate things in this space.
Cover letter fine-tuning: Llama-3.2-3B-Instruct as the base, QLoRA via Unsloth (rank 16, 10 epochs). Trained on ~62 of my own cover letters, exported to GGUF, loaded into Ollama. Fits comfortably on 8GB VRAM with 4-bit quantisation. Noticeably more consistent than prompting a generic model for voice and style matching.
Email classification: completely different story. Classifier models for routing emails into categories (rejection, interview scheduled, offer, etc.) don’t need a GPU at all. DeBERTa-small runs on CPU in milliseconds. The hard part is the labeling pipeline. We bootstrapped with deterministic heuristics to auto-label high-confidence cases, then routed uncertain ones to a human review queue. Around 2,000 labeled examples was enough for meaningful accuracy.
vs RAG: for classification, fine-tuning wins cleanly. RAG is better when you need to reason over retrieved documents. If you’re making a consistent categorical judgment, you want it baked into the weights, not reconstructed from context at inference time.
I build local-first process pipeline tooling at circuitforge.tech
This is exactly why I stopped using LinkedIn for job search. The filters were already broken before they added the AI layer.
Built something to sidestep it: Peregrine. Scrapes job boards directly, runs the AI parts locally on your own hardware. No LinkedIn account needed. Cover letters stay on your machine unless you opt into cloud tier.
Still early (alpha) but functional: https://git.opensourcesolarpunk.com/Circuit-Forge/peregrine
Happy to take bug reports and feedback.