ResumeFlow: An LLM-facilitated Pipeline for Personalized Resume Generation and Refinement
For Video Demonstration visit the YouTube link: https://youtu.be/Agl7ugyu1N4
Project can be:
- Access as a Web Tool from https://job-aligned-resume.streamlit.app/
- Install as a Python Package from https://pypi.org/project/zlm/
- download as Source Code from https://github.com/Ztrimus/job-llm.git
All other known bugs, fixes, feedbacks, and feature requests can be reported on the GitHub issues page.
Empower others, just like they helped you! Contribute to this open source project & make a difference. ✨ Create a branch, improve the code, & raise a pull request!
Author & Contributor List
- Saurabh Zinjad | Ztrimus | szinjad@asu.edu
- Amey Bhilegaonkar | ameygoes | abhilega@asu.edu
- Amrita Bhattacharjee | Amritabh | abhatt43@asu.edu
1. Introduction:
1.1. Motivation: LLMs as Components in an ML Pipeline
In this project, we will investigate how to effectively use Large Language Models (LLMs) to automate various aspects of this pipeline.
Because, Solving a task using machine learning methods requires a series of steps that often require large amounts of human effort or labor. Furthermore there might be more steps after the training the ML model, such as evaluation, explaining the behavior of the model, interpreting model outputs, etc. Many of these steps are also often human labor intensive.
1.2. Our Proposal
We're aiming to create a automated system that makes applying for jobs a breeze. Job hunting has many stages, and we see a chance to automate things and use LLM (Language Model) to make it even smoother. We're looking at different ways, both the usual and some new ideas, to integrate LLM into the job application process. The goal is to reduce how much you have to do and let LLM do its thing, making the whole process easier for you.
1.3. References
1.3. Refer to this Paper for more details.
2. Setup, Installation and Usage
2.1. Prerequisites
- OS : Linux, Mac
- Python : 3.11.6 and above
- LLM API key: OpenAI OR Gemini Pro
2.2. Package Installation - Use as Library
pip install zlm
- Usage
from zlm import AutoApplyModel
job_llm = AutoApplyModel(
api_key="PROVIDE_API_KEY",
provider="ENTER PROVIDER <gemini> or <openai>",
downloads_dir="[optional] ENTER FOLDER PATH WHERE FILE GET DOWNLOADED, By default, 'downloads' folder"
)
job_llm.resume_cv_pipeline(
"ENTER_JOB_URL",
"YOUR_MASTER_RESUME_DATA" # .pdf or .json
) # Return and downloads curated resume and cover letter.
2.4. Setup & Run Code - Use as Project
git clone https://github.com/Ztrimus/job-llm.git
cd job-llm
- Create and activate python environment (use
python -m venv .envor conda or etc.) to avoid any package dependency conflict. - Install Poetry package (dependency management and packaging tool)
pip install poetry
- Install all required packages.
- Refer pyproject.toml or poetry.lock for list of packages.
poetry installOR - If above command not working, we also provided requirements.txt file. But, we recommend using poetry.
pip install -r resources/requirements.txt
- Refer pyproject.toml or poetry.lock for list of packages.
- We also need to install following packages to conversion of latex to pdf
- For linux
sudo apt-get install texlive-latex-base texlive-fonts-recommended texlive-fonts-extra
NOTE: trysudo apt-get updateif terminal unable to locate package. - For Mac
brew install basictex sudo tlmgr install enumitem fontawesome
- For linux
- If you want to run ollama models
ollama pull llama3.1
- Run following script to get result
>>> python main.py /
--url "JOB_POSTING_URL" /
--master_data="JSON_USER_MASTER_DATA" /
--api_key="YOUR_LLM_PROVIDER_API_KEY" / # put api_key considering provider
--downloads_dir="DOWNLOAD_LOCATION_FOR_RESUME_CV" /
--provider="openai" # openai, gemini
3. Citations
If you find JobLLM useful in your research or applications, please consider giving us a star 🌟 and citing it.
@inproceedings{10.1145/3626772.3657680,
author = {Zinjad, Saurabh Bhausaheb and Bhattacharjee, Amrita and Bhilegaonkar, Amey and Liu, Huan},
title = {ResumeFlow: An LLM-facilitated Pipeline for Personalized Resume Generation and Refinement},
series = {SIGIR '24},
booktitle = {Proceedings of the 47th International ACM SIGIR Conference on Research and Development in Information Retrieval},
publisher = {Association for Computing Machinery},
doi = {10.1145/3626772.3657680},
url = {https://doi.org/10.1145/3626772.3657680},
year = {2024},
isbn = {9798400704314},
location = {Washington DC, USA},
address = {New York, NY, USA},
}
@misc{zinjad2024resumeflow,
title={ResumeFlow: An LLM-facilitated Pipeline for Personalized Resume Generation and Refinement},
author={Saurabh Bhausaheb Zinjad and Amrita Bhattacharjee and Amey Bhilegaonkar and Huan Liu},
year={2024},
eprint={2402.06221},
archivePrefix={arXiv},
primaryClass={cs.CL}
}
4. License
JobLLM is under the MIT License and is supported for commercial usage.
5. TODO
Need to find way to install following command in streamlit
ollama
playwright
"ollama pull llama3.1"
"ollama pull bge-m3"
4. References
Metadata
Release files for zlm 0.1.35
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| zlm-0.1.35.tar.gz | 167.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| zlm-0.1.35-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 314.1 kB
Release files / zlm-0.1.35.tar.gz
| Download URL | zlm-0.1.35.tar.gz |
|---|---|
| Size | 167.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
03c176aa05a6de2153ddfaad75628ce8fb265406656139669b51d2141d554aaa
|
|
BLAKE2b-256 checksum How to use checksums |
fb465e612ecd75d64d7b965c3fb140841318ef5b591f717e28da3e37b7007574
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.8.1 CPython/3.12.1 Darwin/23.4.0
|
Release files / zlm-0.1.35-py3-none-any.whl
| Download URL | zlm-0.1.35-py3-none-any.whl |
|---|---|
| Size | 146.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4a5d95db50fb5776612d9dd31869a646d172864fab8144be6d83fb9b09ca93f5
|
|
BLAKE2b-256 checksum How to use checksums |
225ad0905742fedcf1928bbb51715e7471af5ecfa58d4669e2c62efe513f6af3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.8.1 CPython/3.12.1 Darwin/23.4.0
|