LinkedIn Job Automation & AI Resume Generator

A local-first automation system that converts saved LinkedIn jobs into tailored DOCX resumes using a custom browser extension, a persistent SQLite queue, and OpenAI.
The Problem
Applying to jobs is a grind. You find a role, read the description, figure out what they want, and then spend hours tweaking your resume to match. It’s repetitive, time-consuming, and prone to formatting errors. I decided to change that by building a local-first automation system that completely transforms how I prepare job applications.
The Solution
Instead of manually copying and pasting details for dozens of applications, I built a custom browser extension that lives directly inside my active LinkedIn session. Whenever I save an interesting job, the extension instantly collects the URL and sends it to my local server.
From there, a persistent background worker takes over. The system seamlessly extracts the job details (title, company, skills, and core responsibilities) and passes them through an OpenAI-powered customization pipeline. The AI intelligently rewrites and positions my experience to perfectly align with the specific role. Finally, it generates a polished, properly formatted DOCX resume, ready for a quick final review.
Built for Speed and Resilience
I designed the tool to run entirely locally, prioritizing a lean, reliable architecture. The backend is powered by Bun and TypeScript, making the execution incredibly fast.
Rather than relying on complex external databases, I used SQLite to build a durable, crash-proof job queue. If the application restarts or a network error occurs, no job is lost. The system simply picks up right where it left off. To keep API costs low and prevent unnecessary duplicate processing, I implemented intelligent HTML and LLM caching layers.
Overcoming Edge Cases
Web automation and AI generation both come with their own set of unpredictable challenges. LinkedIn layouts change, and free-form AI responses can easily break document templates.
To make the pipeline rock-solid, I enforced strict data contracts using validation tools. The AI is forced to output structured data, guaranteeing that the final Word document always maintains its professional layout. I also built robust retry mechanisms and fallback parsers to gracefully handle incomplete pages or temporary blocks.
The Outcome
What used to take hours of manual effort now happens effortlessly in the background while I browse.
The system transforms a tedious chore into a fully automated, observable pipeline, complete with a local dashboard that tracks my processing queue, token usage, and generated files. Most importantly, it cuts manual workflow hours by over 90%, keeping me organized and in control without the busywork.