Spaces:
Running
Running
title: Resume Tailor | |
emoji: π | |
colorFrom: yellow | |
colorTo: purple | |
sdk: streamlit | |
sdk_version: 1.38.0 | |
app_file: app/streamlit_app.py | |
pinned: false | |
license: mit | |
<a id="readme-top"></a> | |
 | |
 | |
 | |
 | |
 | |
 | |
<!-- PROJECT LOGO --> | |
<br /> | |
<div align="center"> | |
<!-- <a href="https://github.com/sandesh-bharadwaj/VidTune"> --> | |
<img src="https://github.com/user-attachments/assets/8ba70d9d-e2c6-4225-b29c-95e3d5080dd2" alt="Logo" width="80" height="80"> | |
<!-- </a> --> | |
<h3 align="center">Resume Optimizer</h3> | |
<p align="center"> | |
Automation of Resume Tailoring | |
<!-- <br /> | |
<br /> --> | |
| | |
<a href="https://huggingface.co/spaces/NvkAnirudh/resume-tailor">Resume Optimizer</a> | |
</p> | |
</div> | |
If you find this project helpful, I'd appreciate it if you could give this repo a star β Cheers! | |
<!-- TABLE OF CONTENTS --> | |
<details> | |
<summary>Table of Contents</summary> | |
<ol> | |
<li> | |
<a href="#introduction">Introduction</a> | |
<ul> | |
<li><a href="#built-with">Built With</a></li> | |
</ul> | |
</li> | |
<li><a href="#problem-statement">Problem Statement</a></li> | |
<li><a href="#project-overview">Project Overview</a></li> | |
<li><a href="#source-code">Source Code</a></li> | |
<li><a href="#getting-started">Getting Started</a></li> | |
<li><a href="#deployment">Deployment</a></li> | |
<li><a href="#usage">Usage</a></li> | |
<li><a href="#pricing">Pricing</a></li> | |
<li><a href="#license">License</a></li> | |
<li><a href="#contributions">Contributions</a></li> | |
<li><a href="#contact">Contact</a></li> | |
<li><a href="#acknowledgments">Acknowledgments</a></li> | |
</ol> | |
</details> | |
## Introduction | |
This project automates the tailoring of resumes to a given job description using the Claude 3.5 sonnet model from Anthropic. The goal is to save time and increase efficiency in the job application process. | |
### Built With | |
 | |
 | |
 | |
 | |
 | |
<p align="right">(<a href="#readme-top">top</a>)</p> | |
## Problem Statement | |
Tailoring a resume to a job description can be a tedious and time-consuming process. This project aims to consolidate everything in one place, allowing users to simply copy-paste the job description and update their resume accordingly. | |
<p align="right">(<a href="#readme-top">top</a>)</p> | |
## Project Overview | |
The project consists of the following components: | |
- A Streamlit application for user input and output | |
- A Python script for Google Docs API authentication and text styling | |
- A source code directory containing the following files: | |
- api_client.py: initializes the Claude 3.5 sonnet model | |
- config.py: initializes the required Anthropic API key | |
- pdf_handler.py: reads and returns the attached PDF content | |
- resume_analyzer.py: initializes the prompt and passes it to the Claude 3.5 API | |
- text_processing.py: processes the response from Claude to output a structured analysis and updated resume | |
<p align="right">(<a href="#readme-top">top</a>)</p> | |
## Source Code | |
The source code is organized into the following directories and files: | |
- ```app```: contains the Streamlit application code | |
- ```src```: contains the source code files listed above | |
- ```credentials_creation.py```: generates the credentials.py file for Google Docs API authentication | |
<p align="right">(<a href="#readme-top">top</a>)</p> | |
## Getting Started | |
To get started in the **local environment**, follow these steps: | |
1. Clone the repository using git clone https://github.com/your-username/resume-tailor-automation.git | |
2. Install the required packages using pip install -r requirements.txt | |
3. Set up your Anthropic API key as an environment variable | |
4. Enable the ```Google Docs API``` on GCP console by going to APIs & Services -> Enabled APIs & Services -> 'Search for Google Docs API' | |
5. Download the ```credentials.json``` file from GCP console after creating a OAuth2.0 Client ID by going to Credentials -> OAuth 2.0 Client IDs (you may want to fill out the OAuth Consent Screen first) | |
6. Once you have all the required keys, you can run ```app/streamlit_app.py``` | |
<p align="right">(<a href="#readme-top">top</a>)</p> | |
## Deployment | |
The application was deployed on Hugging Face Spaces using GitHub Actions. | |
To get started in **Hugging Face Spaces**, follow these steps: | |
1. Create your own GitHub repo | |
2. Create a **GitHub Secret** with your ```HF_Token``` (access token from Hugging Face) | |
3. Go to ```Actions``` in your GitHub repo, click **Set up a workflow yourself** and add the yml file from [Hugging Face Spaces documentation](https://huggingface.co/docs/hub/spaces-github-actions) | |
4. Since you won't have your ```credentials.json``` (because you put this file in .gitignore so that it doesn't get committed), add ```Google Client ID``` and ```Google Client Secret``` to Spaces environment variables. This is when you need ```credentials_creation.py``` to create a credentials.json file. | |
5. Once the above steps are executed properly, your app should be up and running. | |
<p align="right">(<a href="#readme-top">top</a>)</p> | |
## Usage | |
To use the application, follow these steps: | |
1. Copy-paste the job description into the input field | |
2. Upload your resume as a PDF file | |
3. Click the "Optimize Resume" button to generate an updated resume | |
<p align="right">(<a href="#readme-top">top</a>)</p> | |
## Pricing | |
The pricing for using the Claude 3.5 sonnet model can be found [here](https://docs.anthropic.com/en/docs/about-claude/models#model-comparison-table) | |
<p align="right">(<a href="#readme-top">top</a>)</p> | |
## License | |
This project is licensed under [MIT](https://github.com/NvkAnirudh/resume-tailor-automation/blob/main/LICENSE). | |
<p align="right">(<a href="#readme-top">top</a>)</p> | |
## Contributions | |
Contributions are welcome! If you'd like to contribute to this project, please fork the repository and submit a pull request. | |
<p align="right">(<a href="#readme-top">top</a>)</p> | |
## Contact | |
[](https://www.linkedin.com/in/nvkanirudh/) | |
[](mailto:[email protected]) | |
<p align="right">(<a href="#readme-top">top</a>)</p> | |
## Acknowledgements | |
- Anthropic | |