Tailor your resume to match any job posting effortlessly
Project description
Features · Install · Usage · Discussions · Contributors
Tailor your resume to match any job posting effortlessly with ResumeGPT.
ResumeGPT allows you to simply provide your resume and a job posting link, and it will produce a formatted ATS friendly PDF resume that is optimized and personalize your resume to align with the specific requirements and keywords of the job.
Features
- Extracts relevant skills, qualifications, and keywords from a job posting.
- Tailors your curent resume to match job requirements.
- Generates professional ATS friendly PDF resumes.
- Allows for user verification and customization before finalizing the resume.
Installation
pip install ResumeGPT
or:
pip install git+https://github.com/takline/ResumeGPT.git
or:
git clone https://github.com/takline/ResumeGPT.git
cd ResumeGPT
pip install -r requirements.txt
Usage
- Add your resume to
ResumeGPT/data/sample_resume.yaml
(make sureResumeGPT.config.YOUR_RESUME_NAME
is set to your resume filename in the.data/
folder) - Provide ResumeGPT with the link to a job posting and it will tailot your resume to the job:
Single job posting usage
url = "https://[link to your job posting]"
resume_improver = ResumeGPT.services.ResumeImprover(url)
resume_improver.create_draft_tailored_resume()
ResumeGPT then creates a new resume YAML file in a new folder named after the job posting (ResumeGPT/data/[Company_Name_Job_Title]/resume.yaml
) with a YAML key/value: editing: true
. ResumeGPT will wait for you to update this key to verify the resume updates and allow them to make their own updates until users set editing=false
. Then ResumeGPT will create a PDF version of their resume.
Custom resume location usage
Initialize ResumeImprover
via a .yaml
filepath.:
resume_improver = ResumeGPT.services.ResumeImprover(url=url, resume_location="custom/path/to/resume.yaml")
resume_improver.create_draft_tailored_resume()
Post-initialization usage
resume_improver.update_resume("./new_resume.yaml")
resume_improver.url = "https://[new link to your job posting]"
resume_improver.download_and_parse_job_post()
resume_improver.create_draft_tailored_resume()
Background usage
You can run multiple ResumeGPT.services.ResumeImprover's concurrently via ResumeGPT's BackgroundRunner class (as it takes a couple of minutes for ResumeImprover to complete a single run):
background_configs = [
{
"url": "https://[link to your job posting 1]",
"auto_open": True,
"manual_review": True,
"resume_location": "/path/to/resume1.yaml",
},
{
"url": "https://[link to your job posting 2]",
"auto_open": False,
"manual_review": False,
"resume_location": "/path/to/resume2.yaml",
},
{
"url": "https://[link to your job posting 3]",
"auto_open": True,
"manual_review": True,
"resume_location": "/path/to/resume3.yaml",
},
]
background_runner = ResumeGPT.services.ResumeImprover.create_draft_tailored_resumes_in_background(background_configs=background_configs)
#Check the status of background tasks (saves the output to `ResumeGPT/data/background_tasks/tasks.log`)
background_runner["background_runner"].check_status()
#Stop all running tasks
background_runner["background_runner"].stop_all_tasks()
#Extract a ResumeImprover
first_resume_improver = background_runner["ResumeImprovers"][0]
You will follow the same workflow when using ResumeGPT's BackgroundRunner (ex: verify the resume updates via editing=false
in each ResumeGPT/data/[Company_Name_Job_Title]/resume.yaml
file). You can also find logs for the BackgroundRunner in ResumeGPT/data/background_tasks/tasks.log
.
Once all of the background tasks are complete:
background_runner["background_runner"].check_status()
Output:
['Task completed.',
'Task completed.',
'Task completed.',
'Task completed.',
'Task completed.',
'Task completed.',
'Task completed.',
'Task completed.',
'Task completed.']
Create the pdf for each ResumeImprovers
instance:
for improver in background_runner["ResumeImprovers"]:
pdf_generator = ResumeGPT.pdf_generation.ResumePDFGenerator()
resume_yaml_path = os.path.join(improver.job_data_location, "resume.yaml")
pdf_generator.generate_resume(improver.job_data_location, ResumeGPT.utils.read_yaml(filename=resume_yaml_path))
ResumeGPT PDF Output
Example ATS friendly resume created by ResumeGPT:
pdf_generator = ResumeGPT.pdf_generation.ResumePDFGenerator()
pdf_generator.generate_resume("/path/to/save/pdf/", ResumeGPT.utils.read_yaml(filename="/path/to/resume/resume.yaml"))
Discussions
Feel free to give feedback, ask questions, report a bug, or suggest improvements:
Contributors
⭐️ Please star, fork, explore, and contribute to ResumeGPT. There's a lot of work room for improvement so any contributions are appreciated.
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 resumegpt-2.1.tar.gz
.
File metadata
- Download URL: resumegpt-2.1.tar.gz
- Upload date:
- Size: 25.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1f1f001da1bcf5c54486a99728e0ed0a94f5c50cfbc336b2db327e31ab899ef8 |
|
MD5 | 3a9a4402a7bd3627d9c8758b83a1024a |
|
BLAKE2b-256 | b5ac7376d7613b07d68619fff5b07592027afb2db211bb70ea754cf3e4ffc34e |
File details
Details for the file ResumeGPT-2.1-py3-none-any.whl
.
File metadata
- Download URL: ResumeGPT-2.1-py3-none-any.whl
- Upload date:
- Size: 31.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a6ae2ba72b2c7892f983d0cf12f4586d84c18522c47e7a0c4a536e9a157f46a5 |
|
MD5 | d5cb7bd9c15fed85bc4636ae758b00b8 |
|
BLAKE2b-256 | 5516452c1d52dfabc169e20a2e12450dddb666e44dbd58ff00d8f0a0ef3f5a33 |