Skip to content

gdellis/career-compass

Repository files navigation

Career Compass

A comprehensive CLI tool to track job applications, analyze interview transcripts and notes, and seamlessly integrate with your Obsidian vault.

Features

  • Track Job Applications: Store and manage all your job applications with detailed information
  • Interview Management: Track multiple interviews per application with dates, types, and interviewers
  • Obsidian Integration: Automatically create and link markdown notes in your Obsidian vault
  • Fabric Integration: Analyze interview transcripts and notes using AI-powered Fabric patterns
  • Audio Transcription: Transcribe interview recordings using Fabric
  • Statistics Dashboard: View insights and analytics about your job search
  • Export Data: Export your applications to CSV or JSON

Installation

  1. Clone this repository or download the source code

  2. Create and activate a virtual environment:

python -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate
  1. Install dependencies:
pip install click sqlalchemy pyyaml rich python-dateutil
  1. Run Career Compass using one of these methods:

Option A: Using the wrapper script (recommended):

./career-compass.sh --help

Option B: Direct Python module:

python -m career_compass.cli --help

Option C: Add an alias to your shell (optional):

# Add to ~/.bashrc or ~/.zshrc
alias career-compass="$PWD/career-compass.sh"
  1. Make sure you have Fabric installed if you want to use analysis features:
# Follow Fabric installation instructions at:
# https://github.com/danielmiessler/Fabric

Quick Start

1. Initialize the tracker

./career-compass.sh init

This will:

  • Prompt for your Obsidian vault path
  • Create the Job-Tracker folder in your vault
  • Initialize the SQLite database
  • Set up configuration

2. Add your first application

./career-compass.sh add

Follow the interactive prompts to enter:

  • Company name
  • Position
  • Status (Interested, Applied, Interview Scheduled, etc.)
  • Date applied
  • Salary range
  • Job URL
  • Contact person
  • Notes

3. View your applications

./career-compass.sh list

Filter by status:

./career-compass.sh list --status Applied

4. View application details

./career-compass.sh show <app_id>

Command Reference

Application Management

# Add a new application
./career-compass.sh add

# List all applications
./career-compass.sh list [--status STATUS]

# Show application details
./career-compass.sh show <app_id>

# Update application
./career-compass.sh update <app_id>

# Update application status
./career-compass.sh status <app_id> <new_status>

# Delete application
./career-compass.sh delete <app_id>

Available Statuses:

  • Interested
  • Applied
  • Interview Scheduled
  • Interviewed
  • Rejected
  • Withdrawed
  • Ghosted

Interview Management

# Add interview to application
./career-compass.sh interview add <app_id>

# List interviews for an application
./career-compass.sh interview list <app_id>

# Update interview details
./career-compass.sh interview update <interview_id>

# Delete interview
./career-compass.sh interview delete <interview_id>

Obsidian Integration

# Create Obsidian note for application
./career-compass.sh note create <app_id>

# Link existing note to application
./career-compass.sh note link <app_id> <note_path>

# Sync applications from Obsidian vault
./career-compass.sh sync

The sync command scans your Job-Tracker folder and imports applications found in markdown files.

Fabric Analysis

# Analyze interview transcript or notes
./career-compass.sh analyze interview <app_id> [--interview-id ID] [--pattern PATTERN]

# List available Fabric patterns
./career-compass.sh analyze patterns

# Transcribe audio file
./career-compass.sh transcribe <audio_file> <app_id> [--interview-id ID] [--save-to PATH]

Common Fabric Patterns:

  • extract_interview_feedback - Extract key feedback from interviews
  • analyze_interview_performance - Assess your performance
  • extract_wisdom - Extract insights from notes
  • improve_response - Suggest better answers

Statistics & Export

# View statistics dashboard
./career-compass.sh stats

# Export to CSV
./career-compass.sh export --format csv [--output filename.csv]

# Export to JSON
./career-compass.sh export --format json [--output filename.json]

Obsidian Vault Structure

The tool creates the following structure in your vault:

Obsidian Vault/
└── Job-Tracker/
    ├── Google/
    │   ├── Google-SWE.md                    # Main application note
    │   ├── Interview-1-Phone-20250112.md    # Interview notes
    │   └── Interview-2-Technical-20250119.md
    ├── Amazon/
    │   └── Amazon-SDE.md
    └── templates/
        ├── application-template.md
        └── interview-template.md

Obsidian Note Templates

Application Note

Each application note includes:

  • YAML frontmatter with metadata (company, position, status, etc.)
  • Job description section
  • Application timeline
  • Links to interview notes
  • Discussion notes
  • Follow-up checklist

Interview Note

Each interview note includes:

  • YAML frontmatter with interview metadata
  • Preparation notes
  • Interview notes section
  • Questions asked
  • Questions you asked
  • Technical topics covered
  • Follow-up actions
  • Feedback and reflection
  • Link back to main application note

Configuration

Configuration is stored in ~/.config/career-compass/config.yaml:

obsidian_vault_path: /path/to/your/vault
job_tracker_folder: Job-Tracker
database_path: ~/.config/career-compass/jobs.db
fabric_command: fabric
default_status: Interested

Workflow Example

Here's a typical workflow:

  1. Save a job listing

    ./career-compass.sh add
    # Enter: Company, Position, Status=Interested
  2. Apply to the job

    ./career-compass.sh status 1 Applied
  3. Schedule an interview

    ./career-compass.sh status 1 "Interview Scheduled"
    ./career-compass.sh interview add 1
    # This creates an Obsidian note for prep
  4. Record the interview (optional)

    • Use your preferred tool to record
  5. Transcribe and analyze

    ./career-compass.sh transcribe interview_audio.mp3 1 --interview-id 1
    ./career-compass.sh analyze interview 1 --interview-id 1
  6. Review statistics

    ./career-compass.sh stats
  7. Update status after decision

    ./career-compass.sh status 1 Rejected
    # or
    ./career-compass.sh status 1 Interviewed

Tips

  • Use the Obsidian notes to prepare for interviews by reviewing company research and technical topics
  • Leverage Fabric patterns to get insights from your interview performance
  • Regularly run ./career-compass.sh stats to track your application-to-interview ratio
  • Use ./career-compass.sh sync if you prefer creating notes in Obsidian first
  • Export your data periodically as a backup

AI Agents

Career Compass includes specialized Claude agents to supercharge your job search:

Available Agents

Job Researcher - Research companies and analyze job postings

  • Company background, culture, and recent news
  • Job requirement analysis
  • Interview topic predictions

Interview Coach - Improve your interview performance

  • Mock interviews with realistic questions
  • Transcript analysis and feedback
  • STAR method coaching
  • Answer improvement suggestions

Application Writer - Craft compelling application materials

  • Tailored cover letters
  • Resume optimization
  • Application question responses
  • Follow-up email drafts

Using Agents

Agents are available when using Career Compass with Claude Code. They integrate seamlessly with your tracked applications and Obsidian notes.

See .claude/agents/README.md for detailed usage instructions and example workflows.

Development

Project Structure

.
├── career_compass/
│   ├── __init__.py
│   ├── cli.py                    # Main CLI and core commands
│   ├── models.py                 # Database models
│   ├── config.py                 # Configuration management
│   ├── interview_commands.py     # Interview management
│   ├── analysis_commands.py      # Fabric integration
│   ├── note_commands.py          # Obsidian note commands
│   ├── stats_commands.py         # Statistics and export
│   ├── obsidian.py               # Obsidian integration
│   └── fabric_integration.py     # Fabric API wrapper
├── tests/
├── pyproject.toml
└── README.md

Running Tests

pytest

Code Formatting

black career_compass/
flake8 career_compass/

Requirements

  • Python 3.8+
  • SQLAlchemy
  • Click
  • Rich (for beautiful terminal output)
  • PyYAML
  • Fabric (optional, for analysis features)

Troubleshooting

Error: "Please run './career-compass.sh init' first"

  • Run ./career-compass.sh init to set up configuration and database

Fabric command not found

  • Ensure Fabric is installed and in your PATH
  • Update the fabric_command in config.yaml if needed

Obsidian notes not appearing

  • Check that your vault path is correct in config
  • Ensure the Job-Tracker folder exists in your vault

License

This project is open source and available for personal use.

Contributing

Feel free to submit issues and enhancement requests!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors