ghosted

command module
v0.2.0-beta Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 13, 2026 License: MIT Imports: 9 Imported by: 0

README ΒΆ

GHOSTED πŸ‘»

     .-.
    (o o)  GHOSTED
    | O |  job application tracker
    |   |  for the perpetually ghosted
    '~~~'

A terminal-based job application tracker for those of us who know the void all too well.

Built with Go and Charm libraries.

Features

  • Interactive TUI - Full keyboard-driven interface with vim-style navigation
  • CLI Commands - Script-friendly commands for automation and AI agents
  • JSON Storage - Human-readable data format, easy to backup and version control
  • Status Pipeline - Track applications from saved β†’ applied β†’ ghosted into oblivion
  • Search & Filter - Quickly find applications by company, position, or status
  • Quick Actions - Change status with single keystrokes (1-8)

Installation

git clone https://github.com/celloopa/ghosted.git
cd ghosted
make install

This installs ghosted to your Go bin directory (~/go/bin by default).

Make sure it's in your PATH:

export PATH="$HOME/go/bin:$PATH"
Go Install (Latest Release)
go install github.com/celloopa/ghosted@latest

Usage

Interactive TUI
ghosted

Keyboard Shortcuts:

Key Action
j/k or arrows Navigate up/down
a Add new application
e Edit selected
d Delete selected
Enter View details
1-8 Quick status change
/ Search
f Filter by status
c Clear filters
? Toggle help
q Quit

Status Keys:

  1. Saved
  2. Applied
  3. Screening
  4. Interview
  5. Offer
  6. Accepted
  7. Rejected
  8. Withdrawn
CLI Commands
# Add new application
ghosted add --json '{"company":"Acme","position":"Engineer","salary_min":150000}'

# List all applications
ghosted list
ghosted list --json

# Get single application (supports partial ID)
ghosted get abc123
ghosted get abc123 --json

# Update application
ghosted update abc123 --json '{"status":"interview","notes":"Phone screen scheduled"}'

# Delete application
ghosted delete abc123

# Help
ghosted help

Data Storage

By default, data is stored at:

~/.local/share/ghosted/applications.json

Override with environment variable:

export GHOSTED_DATA=/path/to/your/applications.json
Sample Data

New installations are seeded with 3 sample applications to help you get started. Delete them with d in the TUI or start fresh:

rm ~/.local/share/ghosted/applications.json

JSON Schema

{
  "company": "string (required)",
  "position": "string (required)",
  "status": "saved|applied|screening|interview|offer|accepted|rejected|withdrawn",
  "date_applied": "2025-01-15T00:00:00Z",
  "salary_min": 150000,
  "salary_max": 200000,
  "job_url": "https://...",
  "location": "City, State",
  "remote": true,
  "contact_name": "string",
  "contact_email": "string",
  "resume_version": "string",
  "cover_letter": "string",
  "notes": "string",
  "interviews": [
    {
      "date": "2025-01-20T14:00:00Z",
      "type": "phone|video|onsite|technical",
      "notes": "string",
      "with_whom": "string"
    }
  ]
}

See schema.json for the complete JSON Schema specification.

Local Files (Optional)

For organizing job-related documents, create a local/ directory:

local/
β”œβ”€β”€ postings/       # Job posting files (txt, md, png)
β”œβ”€β”€ resumes/        # Resume versions
└── cover-letters/  # Cover letter templates

This directory is gitignored by default.

Development

Project Structure
β”œβ”€β”€ main.go                 # Entry point, CLI commands
β”œβ”€β”€ internal/
β”‚   β”œβ”€β”€ model/
β”‚   β”‚   └── application.go  # Data structures, status constants
β”‚   β”œβ”€β”€ store/
β”‚   β”‚   └── json.go         # JSON persistence, CRUD operations
β”‚   └── tui/
β”‚       β”œβ”€β”€ app.go          # Main TUI controller
β”‚       β”œβ”€β”€ list.go         # List view
β”‚       β”œβ”€β”€ detail.go       # Detail view
β”‚       β”œβ”€β”€ form.go         # Add/edit form
β”‚       β”œβ”€β”€ styles.go       # Lip Gloss styling
β”‚       └── keys.go         # Key bindings
β”œβ”€β”€ samples/
β”‚   └── applications.json   # Sample data for new users
└── schema.json             # JSON Schema specification
Building
make build    # Build binary locally
make install  # Build and install to ~/go/bin
make clean    # Remove local binary
Dependencies

License

MIT License - see LICENSE for details.

Contributing

Contributions welcome! Please feel free to submit a Pull Request.


Built with tears and mass rejection emails πŸ’€

Documentation ΒΆ

The Go Gopher

There is no documentation for this package.

Directories ΒΆ

Path Synopsis
internal
tui

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL