2.7 KiB
2.7 KiB
Contributing Guidelines
Thanks for your interest in improving this project. Contributions are welcome, including documentation updates, bug reports, feature requests, and code changes.
Reporting Bugs
- Check that the bug has not already been reported: https://github.com/interviewstreet/hiring-agent/issues
- Open a new bug report: https://github.com/interviewstreet/hiring-agent/issues/new
- Please include:
- Clear description of the issue and expected behavior
- Environment info: OS, Python version, hiring-agent commit or version
- Steps to reproduce
- Relevant logs or stack traces
Tip
If the bug involves PDF parsing or model output, attach a minimal PDF and the exact model you used.
Feature Requests
- Check for existing requests: https://github.com/interviewstreet/hiring-agent/issues
- Open a new feature request: https://github.com/interviewstreet/hiring-agent/issues/new
- Describe the problem, the proposed solution, and any alternatives you considered.
Contributing Code
- Pick an issue from https://github.com/interviewstreet/hiring-agent/issues or open one first.
- Comment that you are working on it to avoid duplicate efforts.
- Fork the repo, then create a feature branch for your change.
Development
- Fork and clone your fork.
- Create a fresh branch per change. Avoid pushing changes to the default branch of your fork.
- Set up the environment and run the pipeline locally to validate changes
- Run the CLI on a small sample to verify behavior:
Coding Style
- Use Black for formatting.
- Keep functions short and focused. Prefer pure helpers for prompt assembly and transformations.
Prompts and Providers
- Keep prompts declarative and provider agnostic.
- Avoid model specific tokens or formatting that only one provider supports.
- Changes to prompts should include short before and after examples in the pull request description.
Tests and Smoke Checks
-
Validate changes with a couple of real resumes under different providers when possible:
- One run with Ollama using the default local model.
- One run with Gemini if you have an API key.
-
Add or adjust small smoke tests that exercise each stage with minimal inputs:
- PDF to Markdown
- Section extraction to JSON Resume
- GitHub enrichment on a known username
- Evaluation to JSON with the required fields
Commit Messages
- Use clear, imperative subjects, for example:
fix: handle en dash date ranges in work parser. - Reference the issue number when applicable.
Code of Conduct
Be respectful and collaborative. If you see unacceptable behavior, report it through an issue or contact the maintainers.