Contributing to Career-Ops banner
santifer santifer

Contributing to Career-Ops

Development community intermediate

Description

Thanks for your interest in contributing! Career-Ops is built with Claude Code, and you can use it for development too.

Installation

This entry records only its repository, not the path inside it, so there is no exact command to give. Open the source below and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

Repository README

This is the README for santifer/career-ops, shared by 4 entries in this directory. It describes the repository, not this entry specifically.

Contributing to Career-Ops

Thanks for your interest in contributing! Career-Ops is built with Claude Code, and you can use it for development too.

Before Submitting a PR

**Please open an issue first to discuss the change you'd like to make.** This helps us align on direction before you invest time coding.

PRs without a corresponding issue may be closed if they don't align with the project's architecture or goals.

What makes a good PR

  • Fixes a bug listed in Issues
  • Addresses a feature request that was discussed and approved
  • Includes a clear description of what changed and why
  • Follows the existing code style and project philosophy (simple, minimal, quality over quantity)

Quick Start

  1. Open an issue to discuss your idea
  2. Fork the repo
  3. Create a branch (git checkout -b feature/my-feature)
  4. Make your changes
  5. Test with a fresh clone (see docs/SETUP.md)
  6. Commit and push
  7. Open a Pull Request referencing the issue

What to Contribute

**Good first contributions:**

  • Add companies to templates/portals.example.yml
  • Translate modes to other languages
  • Improve documentation
  • Add example CVs for different roles (in examples/)
  • Report bugs via Issues

**Bigger contributions:**

  • New evaluation dimensions or scoring logic
  • Dashboard TUI features (in dashboard/)
  • New skill modes (in modes/)
  • Script improvements (.mjs utilities)

Guidelines

  • Keep modes language-agnostic when possible (Claude handles both EN and ES)
  • Scripts should handle missing files gracefully (check existsSync before readFileSync)
  • Dashboard changes require go build — test with real data before submitting
  • Don't commit personal data (cv.md, profile.yml, applications.md, reports/)

What we do NOT accept

  • PRs that scrape platforms prohibiting automated access (LinkedIn, etc.). We actively reject these to respect third-party ToS.
  • PRs that enable auto-submitting applications without human review. career-ops is a decision-support tool, not a spam bot.
  • PRs that add external API dependencies without prior discussion in an issue.
  • PRs containing personal data (real CVs, emails, phone numbers). Use examples/ with fictional data instead.

Development

# Scripts
npm run doctor                # Setup validation
node verify-pipeline.mjs     # Health check
node cv-sync-check.mjs        # Config check

# Dashboard
cd dashboard && go build -o career-dashboard .
./career-dashboard --path ..

Need Help?