KaRiya is a terminal user interface for capturing career achievements and generating tailored CVs. Built with Go and Bubble Tea, it transforms your career events into professional, role-specific CVs directly from your terminal—no external tools required.
- Go 1.24 or higher
- Ginkgo v2
- Make (optional, for task automation)
- Node.js 18+ and npm (for commitlint)
- Clone the repository
- Run
go mod tidyto install dependencies - Run
npm installto install Node.js dependencies - Run
make install-git-hooksto set up git hooks
KaRiya includes an interactive terminal user interface. Use ./kariya --help for full command information.
# Option 1: Build from source
make build
# Option 2: Download a release binary from GitHub
# See https://github.com/baphled/KaRiya/releases# Run with defaults
./kariya
# Run with custom database
./kariya --db ~/.kariya/events.db
# Start in specific capture mode
./kariya --mode timeline
# Import CSV with automatic burst and fact detection
./kariya --import events.csv
# View help
./kariya --help- Event Capture: Timeline journaling, CV backfill, and manual entry modes
- Event Management: List, filter, search, sort, and edit event details
- Metadata Enrichment: Review and validate event metadata with quality scoring
- Bulk Operations: Update metadata for multiple events with conditional logic
- CSV Import: Import events with automatic metadata review and processing
- Intelligent Processing: Automatic burst detection and fact extraction from events
- CV Generation: Transform events into role-specific, audience-tailored CVs
- Interactive TUI: 7-section help system and first-run tutorial for new users
KaRiya transforms your career events into professional CVs tailored to specific roles (Principal, Staff, EM, Senior IC) and audiences (Hiring Manager, Recruiter, Peer).
# Manage CV configurations
./kariya --manage-cv
# Generate a CV from existing config
./kariya --generate-cv "My Staff Engineer CV"
# List all CV configurations
./kariya --list-cv-configsFeatures include intelligent bullet ranking, automatic compression to respect role caps, and full source traceability for every bullet point.
c- Capture new eventi- Import from CSVl- List eventsm- Open metadata reviewu- View burst suggestionsv- Manage CV configurationsg- Generate CVh- Help systemq- Quittab/shift+tab- Navigate form fieldsup/down- Move through listsspace- Select or deselect itemsa- Select all /d- Deselect ally/n- Confirm or reject suggestions
- Run:
./kariya --mode timeline - Press
cto capture - Enter: "Led API redesign for performance improvement"
- Date: "today" (or leave blank)
- Company: "TechCorp"
- Project: "API Modernisation"
- Tags: technical, achievement, leadership
- Submit
- Run:
./kariya --mode backfill - Press
cto capture - Enter: "Architected microservices migration"
- Date: "2023-06-15"
- Company: "StartupXYZ"
- Project: "System Architecture"
- Tags: technical, leadership, achievement
- Submit
- Startup: Less than 1 second
- Event Listing: Under 100ms for 1,000 events
- Search & Filtering: Real-time and instant
- Memory: Efficiently handles 10,000+ events
Cause: Using the default in-memory database.
Solution: Use the --db flag with a persistent SQLite path:
./kariya --db ~/.kariya/events.dbCause: Terminal window is too small.
Solution: Increase terminal width to at least 80 columns.
Cause: Terminal does not support UTF-8.
Solution: Ensure your terminal is set to UTF-8 encoding.
Cause: Terminal height is insufficient.
Solution: Increase terminal window height.
See AGENTS.md for development guidelines, testing workflow, architecture, and contribution rules.