Overview
Job searching is usually fragmented across browser tabs, spreadsheets, notes, AI chats, resumes, and repetitive application forms. I built Job Application Workbench (JAW) to bring those workflows into one system.
JAW captures job information, analyzes role fit against a structured career model, tracks applications, accelerates repetitive form entry, and generates tailored resumes and cover letters from reusable templates. It supports both local AI through Ollama and hosted models through OpenAI, allowing the user to choose between privacy, cost, and model capability.
This project gave me the opportunity to work across product design, desktop and web UX, data modeling, AI integration, document generation, testing, and release architecture rather than treating any one feature in isolation.
Core Workflow
Architecture
JAW combines a desktop shell with a local web application and a relational persistence layer.
Capability Model
Instead of treating skills as a flat keyword list, JAW maintains a structured capability graph.
Capabilities can represent technologies, professional competencies, products, and related concepts. They can be organized into multiple views without changing the underlying entity identity.
Paste Assistant, Cursor Rolodex, Custom Key Layouts
Many application systems still require repetitive manual entry.
JAW includes a compact desktop interface designed to remain beside the browser while completing an application. Its cursor-aware iterators let the user cycle through structured information.
Document IDE
One of the larger parts of JAW is a source-driven document workbench for building resumes, cover letters, and other application documents.
Rather than hiding document generation behind a form, the workbench exposes the underlying composition model
Templates use Jinja2 + LaTeX and render through Tectonic.
The editor supports:
- reusable Templates, Sections, and Functions
- private and global resources
- document-specific job context
- structured JAW runtime objects
- AI generation blocks embedded in source
- live preview
- PDF generation
- reusable template packages
- local recovery buffers for unsaved edits
- relationship-aware resource management
Rule-Based Document Routing
Different roles need different application material.
JAW supports deterministic document routing based on job-title rules. For example:
Management keywords
→ Management resume
→ Management cover letter
Architecture keywords
→ Architecture resume
→ Architecture cover letter
No rule matched
→ Platform / SRE defaults
