CareerOS
An AI-augmented job search pipeline that turns career transition into a system: variant-enforced resumes, 7-channel employer research, and targeted applications across two machines.
The Problem
Job searching as an immigrant is a different game. You're not just looking for a good role. You're navigating visa constraints, employer designation lists, regional programs, and the reality that every application needs to be intentional. Spray-and-pray doesn't work when quality matters more than volume.
I needed a system that could handle the full lifecycle: find relevant openings, research employers deeply, generate resumes tailored to four distinct career narratives, produce professional PDFs, and track everything in one pipeline. So I built it.
The Pipeline
Every application flows through the same stages. URLs come in from job boards, Telegram, or manual research. The system extracts the job description, selects the right resume variant, tailors it to the role, generates a cover letter, renders PDFs, and updates the tracking pipeline.
Discovery
Job URLs arrive via inbox.txt, Telegram queue, or direct CSV entry. The system extracts job descriptions using Playwright for JavaScript-heavy career pages, assigns a sequential ID, and creates a structured application folder.
Variant Selection
The system auto-selects from 4 resume variants based on the role: Insurance/Guidewire (omits indie work), BA/PM General, Tech/Data (leads with portfolio), or Off-Profile (JD-driven reframing). The generator validates every output, so it's impossible to violate variant rules.
Tailoring
A 7-step tailoring framework matches the resume to the job description: keyword extraction, experience mapping, bullet selection (5/4/3/2 rule), achievement reframing, and skills alignment. Cover letters follow a standardized framework with mandatory rules.
Production
Markdown documents are rendered to professional PDFs via Playwright and HTML templates. Page counts are enforced (1-2 pages for resumes, 1 page for cover letters). Cross-platform filename safety prevents sync issues between Windows and Linux. The CSV pipeline updates automatically.
Key Decisions
Variant enforcement over flexibility
Four resume variants serve four career narratives. The generator validates every output against variant rules. Variant A physically cannot contain indie project references. This prevents the most common resume mistake: trying to be everything to everyone.
7-channel employer research
Every employer gets researched across company website, career page (browser-first for JavaScript), LinkedIn, four job boards, industry intel, RSS feeds, and immigration designation verification. This is overkill for most job searches, but when you need to know if an employer can sponsor immigration, surface-level research isn't enough.
Session protocol discipline
Every work session starts with git pull, inbox processing, and status review. Every session ends with a 7-step checklist: CSV integrity, status counts, folder validation, PDF checks, documentation updates, cleanup, and commit. This prevents the state drift that kills long-running projects.
Two-machine deployment
Windows laptop for review and submission, Linux VPS for agent processing and research. Git master branch as sync mechanism. Cross-platform filename safety (blocking Windows-illegal characters) prevents the subtle bugs that break multi-OS workflows.
What I Built
99 Python tools
20,000+ lines of code
25+ applications
Submitted with tailored materials
4 resume variants
Enforced by validation, not convention
7-channel research
178+ employers profiled
2-machine sync
Windows + VPS via Git
14-column pipeline
CSV tracking from NEW to APPLIED
Tech Stack
Core
- Python 3
- CSV pipeline (14 columns)
- Markdown
AI / ML
- Gemini API
- Variant-enforced generation
- Prompt Engineering
Automation
- Playwright
- Weasyprint
- BeautifulSoup4
- python-jobspy
Data
- Pandas
- profile.md (source of truth)
- Git sync (Windows + VPS)
What I Learned
The biggest lesson from CareerOS is that constraint enforcement beats flexibility in high-stakes systems. The variant validation system (where the generator physically cannot produce invalid output) eliminated an entire class of mistakes. When the cost of error is high (wrong resume to wrong employer), make the wrong thing impossible instead of just unlikely.
I also learned that session discipline is infrastructure. The mandatory start/end checklist sounds bureaucratic until you realize it's the only thing preventing state drift across machines, sessions, and weeks. In a long-running system where one bad commit can corrupt the pipeline, process rigor isn't overhead. It's the product.