The aim of this project is to build a WEB application in Streamlit that will scan and improve a resume using instruction-tuned Large Language Models (LLMs).
We leveraged the power of LLMs, specifically Chat GPT from OpenAI and Gemini-pro from Google, to extract, assess, and enhance resumes.
We used Langchain, prompt engineering and retrieval augmented generation techniques to complete these steps.
This project requires Python 3 and the following Python libraries installed:
streamlit
, langchain
,langchain-openai
, langchain-google-genai
, faiss-cpu
, tiktoken
, python-dotenv
, pdfminer
, markdown
The full list of requirements can be found in requirements.txt
-
Streamlit_App folder: contains the Streamlit application.
requirements.txt
: contains the required packages for installation.keys.env
: Your OpenAI, Gemini, and Cohere API keys are stored here.llm_functions.py
: reads LLM API keys from keys.env and instantiates the LLM in Langchain.retrieval.py
: the script used to create a Langchain retrieval, including document loaders, embeddings, vector stores, and retrievers.app_constants.py
: contains templates for creating LLM prompts.app_sidebar.py
: the sidebar is where you can choose the LLM model and its parameters, such as temperature and top_p values, and enter your API keys.resume_analyzer.py
: this file contains the functions used to extract, assess, and improve each section of the resume using LLM. It is the core of the application.pp_display_results.py
: the script used to display resume sections, assessments, scores, and improved texts.app.py
: It's the main script of the app. It calls all the scripts and is used to run the Streamlit application.
-
Notebooks folder: contains the project's notebook.
To run the app locally:
-
Create a virtual environment:
python -m venv virtualenv
-
Activate the virtual environment :
Windows:
.\virtualenv\Scripts\activate
Linux:
source virtualenv/bin/activate
-
Install the required dependencies
pip install -r requirements.txt
-
Add your OpenIA, Gemini, and Cohere API keys to the
keys.env
file. You can get your API keys from their respective websites.
- OpenAI API key: Get an API key
- Google API key: Get an API key
- Cohere API key: Get an API key
- Start the app:
streamlit run ./Streamlit_App/app.py
- Select the LLM provider (either OpenAI or Google Generative AI) from the sidebar. Then, choose a model (GPT-3.5, GPT-4 or Gemini-pro) and adjust its parameters.
- Use the file uploader widget to upload your resume in PDF format.
- π To analyze and improve your resume, simply click the 'Analyze resume' button located in the main panel.
Here is a screenshot of the application.
The results of the resume analysis and improvement are shown below.
First, the resume's overview, top 3 strengths, and top 3 weaknesses are displayed.
The scores are then displayed to give a general indication of the resume's quality. The resume is evaluated based on eight sections, each scored out of 100: contact information, summary, work experience, skills, education, language, projects, and certifications.
Finally, the analysis of each section is presented in a st.expander. For instance, here is how the work experience is displayed.