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_NAMEis 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.
Metadata
Release files for ResumeGPT 2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| resumegpt-2.1.tar.gz | 25.5 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ResumeGPT-2.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 56.6 kB
Release files / resumegpt-2.1.tar.gz
| Download URL | resumegpt-2.1.tar.gz |
|---|---|
| Size | 25.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1f1f001da1bcf5c54486a99728e0ed0a94f5c50cfbc336b2db327e31ab899ef8
|
|
BLAKE2b-256 checksum How to use checksums |
b5ac7376d7613b07d68619fff5b07592027afb2db211bb70ea754cf3e4ffc34e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.12.7
|
Release files / ResumeGPT-2.1-py3-none-any.whl
| Download URL | ResumeGPT-2.1-py3-none-any.whl |
|---|---|
| Size | 31.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a6ae2ba72b2c7892f983d0cf12f4586d84c18522c47e7a0c4a536e9a157f46a5
|
|
BLAKE2b-256 checksum How to use checksums |
5516452c1d52dfabc169e20a2e12450dddb666e44dbd58ff00d8f0a0ef3f5a33
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.12.7
|
Security for ResumeGPT 2.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.