MICHALINAKOWALCZYK

JL Engine — Job Search Infrastructure

Personal projectJan 2025 — Present

A Python CLI system for intelligent job search with AI-assisted CV tailoring, featuring persistent context, human review controls, and deterministic scoring.

60%
LLM cost reduction
5x
faster on warm runs
Full
audit trail per CV

The Problem

AI is useful for things like tailoring a CV to a job posting, but it needs guardrails, direction, and human review to produce output you can trust and repeat. I didn't want to open a new conversation each time, re-explain my background, and hope the LLM doesn't invent things. I needed persistent context, clear criteria applied consistently, and full control over what goes into every CV.

What I Built

A Python CLI system where all my background lives in structured YAML. LLMs are used for understanding job context and matching it to my experience, not for coming up with content. Every CV point traces back to real source data. Deterministic scoring handles what can be done programmatically (saving credits), LLM refinement kicks in only where context understanding matters. Lead discovery automates job board scanning against defined criteria. A Next.js web UI gives me an overview of the full pipeline, and the architecture supports multi-user profiles for when I'm ready to share it.

The Result

Human in the loop with full control over output and review stages. Every generated CV is traceable, editable, and based on real data. 60% cost reduction on LLM calls by scripting what doesn't need AI. 5x faster on warm runs. Retains data on what works and what doesn't so the process improves over time.

Architecture

CLI Command (draft / finalize / compare)
        ↓
  Job Input (URL scrape + cache, file, or stdin)
        ↓
  Job Analysis (LLM → structured tags + requirements)
        ↓
  Content Selection
    ├─ Deterministic scoring (tag overlap + recency + diversity)
    ├─ Shortlist (top candidates + must-haves)
    └─ LLM refinement (optional, constrained to shortlist)
        ↓
  Selection Manifest (human-editable YAML with provenance)
        ↓
  CV Rendering (Jinja2 → HTML → WeasyPrint PDF)
        ↓
  Next.js Web UI (pipeline management, visual review)

Tech Stack

PythonClickPydanticOpenAI/Anthropic SDKsNext.jsReactTypeScriptWeasyPrint