A CLI tool for optimizing and tailoring resumes based on job descriptions using AI.
Project description
Resume Enhancer CLI Tool
Table of Contents
Overview
The Resume Enhancer is a command-line interface (CLI) tool designed to optimize and tailor resumes based on specific job descriptions. By leveraging AI capabilities, this tool analyzes the content of a resume and compares it with a job description to suggest improvements, highlight relevant skills, and emphasize qualifications that match the desired role.
Demo Video
Features
- Automated Resume Enhancement: Analyzes resumes and job descriptions to provide tailored suggestions.
- Multiple Input Formats: Supports input files in various formats such as
.pdf
,.txt
,.docx
, and.doc
. - Customizable AI Parameters: Allows customization of AI model parameters like temperature, maximum tokens, and model choice.
- Groq API Integration: Uses the Groq API for chat-based AI model interactions.
- Command-Line Options: Includes various command-line options for ease of use, such as help, version, and output file specifications.
Usage
You can use this tool by running it locally. Clone the repository and directly run the tool on your computer.
python app/resume_enhancer.py --resume path_to_resume --description path_to_description --api_key groq_api_key
Configuration File Usage
This tool allows you to specify various settings through a configuration file, ~/.ResumeEnhancer.toml
, which can simplify your command-line usage and help manage your options in a centralized manner.
The configuration file should be created in your home directory and it is read upon execution. It allows you to set default values for various parameters such as the API key, paths to files, model options, and more.
Configuration File Format
The configuration file should be in TOML format. Below is an example of a configuration file (~/.ResumeEnhancer.toml
):
api_key = "your_api_key_here"
resume = "path/to/your/resume.pdf"
description = "path/to/your/job_description.txt"
model = ["llama3-8b-8192"]
temperature = 0.5
maxTokens = 1024
output = "output/result.txt"
token_usage = true
stream = false
Specifying Paths
Absolute Paths
You can specify absolute paths in the configuration file. An absolute path points to a location in the file system from the root directory, which means it will always refer to the same file regardless of the current working directory.
Example of an absolute path:
resume = "/Users/username/Documents/my_resume.pdf"
description = "/Users/username/Documents/job_description.txt"
Relative Paths
You can also specify relative paths. A relative path points to a location relative to the current working directory from which you are running the tool. This can be useful for portability, allowing you to share your configuration without worrying about absolute paths that might differ between systems.
Example of a relative path:
resume = "documents/my_resume.pdf"
description = "documents/job_description.txt"
When using relative paths, ensure that the specified files are located in the correct directories relative to the directory from which you execute the tool.
Options
Option | Shortcut | Type | Description | Default |
---|---|---|---|---|
--version |
-v |
Flag | Print the version of the tool | - |
--help |
-h |
Flag | Show the help message and exit | - |
--resume |
- | PATH | Path to the resume file (Required). Supports .pdf , .txt , .docx , or .doc . |
- |
--description |
- | PATH | Path to the job description file (Required). Supports .pdf , .txt , .docx , or .doc . |
- |
--api_key |
-a |
String | Groq API key (Required) | - |
--model |
-m |
String | Model to be used for AI processing | llama3-8b-8192 |
--output |
-o |
PATH | Specify an output file to save the response (Optional, accepts .txt ) |
None |
--temperature |
-t |
Float | Controls the randomness of the AI's responses (Optional) | 0.5 |
--maxTokens |
-mt |
Int | Maximum number of tokens for the AI response (Optional) | 1024 |
--models |
- | Flag | List available models | - |
--token-usage |
-tu |
Flag | Displays token usage statistics to the user via stderr |
- |
--stream |
-s |
Flag | Allow Streaming of response | No Streaming |
Error Handling
- Invalid Input Files: The tool checks if the specified input files exist and are in the correct format.
- API Key Validation: If the API key is missing or invalid, the tool will prompt for correction.
- Command-Line Errors: Usage errors are reported with a helpful error message indicating the correct usage of the tool.
Logging
The tool uses a logging system to track errors and important events. Logs are generated using the Python logging module and can be customized by modifying the setup_logging()
function in the utils
module.
License
This project is licensed under the MIT License. See the LICENSE file for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file resume_enhancer-0.9.0.tar.gz
.
File metadata
- Download URL: resume_enhancer-0.9.0.tar.gz
- Upload date:
- Size: 373.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f52bd099737e2beb8e9c42b8baca651e2984f3d7b3b7d3455786e193bdfec48f |
|
MD5 | 60edabcaee8d01a1c415f28b7123a6ca |
|
BLAKE2b-256 | 2cff4efd4adb5d3d884d0473884b5f33912a853c74e675a1dbc2b373e7545d07 |
File details
Details for the file resume_enhancer-0.9.0-py3-none-any.whl
.
File metadata
- Download URL: resume_enhancer-0.9.0-py3-none-any.whl
- Upload date:
- Size: 10.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b98c5902d6134e08f8b82bbbbb9df2b89e05a65d9f2071285ef832bfd8572976 |
|
MD5 | 6a8e56f122ade09a56af9be94eaa3781 |
|
BLAKE2b-256 | ba28f06f7c2933de39bf9aae96d84d175a69e126ff480492c0bb63caa9c5bc73 |