Ghosted
A terminal-based job application tracker built with Go and Bubble Tea, featuring a TUI for interactive tracking and a CLI for automation and AI agent integration.
- Go
- Bubble Tea
- Lip Gloss
- JSON
Highlights
- Built dual-interface system with interactive TUI and scriptable CLI for AI agent integration
- Designed 8-stage status pipeline tracking the full recruitment lifecycle
- Implemented vim-style navigation with quick-action keyboard shortcuts
- Developed in collaboration with Claude Code, open-sourced under MIT license
Overview
Ghosted is a terminal-based job application tracker designed for developers navigating the modern hiring process. Built in collaboration with Claude Code, it provides both an interactive TUI for daily use and a CLI for automation—making it ideal for integration with AI agents that can parse job postings and update statuses automatically.
The project is open-sourced under the MIT license.
Dual Interface Design
The project offers two ways to interact: a rich Terminal User Interface for exploration and manual updates, and a CLI for programmatic access. Both share the same JSON data store, so changes sync instantly.
The CLI was specifically designed for AI agent integration—commands accept and output JSON, making it trivial to build automation that parses job postings from emails or websites and automatically creates tracked applications.
Status Pipeline
Applications flow through an 8-stage pipeline reflecting the real recruitment journey:
- Saved - Bookmarked for later
- Applied - Application submitted
- Screening - Initial review
- Interview - In progress
- Offer - Received
- Accepted - Job secured
- Rejected - Application declined
- Withdrawn - Candidate withdrew
Quick keyboard shortcuts (1-8) let you update status without leaving the list view.
Rich Data Tracking
Each application tracks comprehensive details beyond just company and status:
- Compensation: Salary range with smart formatting ($150k display)
- Contacts: Recruiter name and email for follow-ups
- Documents: Links to resume version and cover letter used
- Interviews: Multiple interviews with type, date, interviewer, and notes
- Follow-ups: Next action reminders
Technical Highlights
- Bubble Tea Framework: Elm-inspired architecture with clean state management and a view state machine
- Zero Database Overhead: Plain JSON files make data portable, version-controllable, and human-readable
- Smart Partial Matching: CLI accepts partial UUIDs (
ghosted get abcfinds first match starting with “abc”) - Cross-Platform: Single Go binary compiles for macOS, Linux, and Windows
- Sample Data Seeding: New installations auto-populate with example applications for immediate exploration
Building with Claude Code
This project was developed in collaboration with Claude Code, Anthropic’s AI coding assistant. The pairing workflow proved especially effective for:
- Designing the data model and status state machine
- Implementing the Bubble Tea view architecture
- Building the CLI command structure with proper flag handling
- Writing comprehensive documentation
The experience reinforced how AI-assisted development can accelerate solo projects while maintaining code quality and architectural consistency.
Roadmap
Looking ahead, Ghosted has room to grow into a more comprehensive job search companion. Here are the planned expansions:
Embedded Agent Integration
The current CLI-first design enables external AI agents to interact with Ghosted, but the next step is bringing the agent inside the tool itself. An embedded agent could monitor your application pipeline, suggest when to follow up on stale applications, draft outreach messages, and even analyze job posting patterns to identify which opportunities match your profile best. The goal is proactive assistance without leaving the terminal.
Add Postings via Clipboard or Drag-and-Drop
Currently, adding job postings requires manual entry or external automation. A more fluid workflow would let you paste a job posting URL or description directly from your clipboard, or drag-and-drop a file path into the TUI. The system would parse key details—company name, role title, requirements, compensation—and pre-populate the application record, reducing friction between finding a job and tracking it.
Add Resumes via Clipboard or Drag-and-Drop
Tracking which resume version you sent to each company is easy to forget. This feature would let you attach resume files to applications by pasting a path or dragging the file into the interface. Each application would link to the specific resume used, making it simple to reference what the employer has seen and tailor your interview prep accordingly.
Add Cover Letters via Clipboard or Drag-and-Drop
Similarly, cover letters deserve the same treatment. Drag-and-drop or clipboard input would associate cover letter files with their applications, building a complete document trail. When you land an interview, you’d have instant access to exactly what you wrote—no more hunting through folders trying to match files to companies.