Automatically create the most effective version of your resume, ensuring your skills are tailored to match every role you apply for.
- You define dynamic sections in your CV template
- You provide the program a job description (via Seek or Textfile)
- The algorithm will insert the most relevant information and generate a CV pdf
usage: ./CVForYou --seek-stats -a
-cv,--cv-generator Generate a dynamic CV
-h,--help print this message
-sn,--seek-notes Write notes on saved SEEK roles
-sr,--seek-resumes Upload CV directly to SEEK
-ss,--seek-stats Aggregate stats from Seek
usage: ./CVForYou --cv_generator -d <document_path> -c <compare_path> -s
<section_paths>
-c,--compare <arg> file to compare keywords to
-ca,--compare-seek-all compare from your seek saved job
-cc,--compare-cache <arg> compare from a previous cached seek saved
job
-cs,--compare-seek <arg> pull JD from seek to compare
-d,--document <arg> path to the dynamic document
-h,--help print this message
-o,--output <arg> output directory
-s,--section <arg> path to section definition files
-sd,--section directory <arg> directory of section definition files
Either:
- Maven, Chrome
- Docker
- Build the project
./build
- Build sample document via textfile job description
./CVForYou -d assets/sample_components/document.html \
-c assets/sample_components/description1.txt \
-s assets/sample_components/sections/projects.json assets/sample_components/sections/tags.json
- Build the project
./build
- Obtain a Seek Job URL
- e.g.
https://www.seek.com.au/job/12345678
- Build the sample document via seek integration
./CVForYou -d assets/sample_components/document.html \
-cs <seek_job_url> \
-s assets/sample_components/sections/projects.json assets/sample_components/sections/tags.json
The command line argument -ca, --compare-seek-all
pulls data from your 'Saved Jobs' list in Seek to generate CVs. As such it requires an extra step to configure the auth token.
- Login to Seek
- Open browser console
- Run Script in console
let auth = {};
const cookies = document.cookie.split('; ');
cookies.forEach(cookie => {
const [key, value] = cookie.split('=');
if(key == "JobseekerSessionId") {
auth[key] = value;
}
});
for (let i = 0; i < localStorage.length; i++) {
const key = localStorage.key(i);
// Check if the key contains a specific pattern or substring
if (key.includes("auth0spajs")) {
const value = localStorage.getItem(key);
let obj = JSON.parse(value);
auth["access_token"] = obj.body.access_token;
auth["refresh_token"] = obj.body.refresh_token;
auth["client_id"] = obj.body.client_id;
}
}
console.log(JSON.stringify(auth));
- Copy-paste result in file named
auth
in repo directory
- Build the docker image
docker build -t cv-for-you .
Note: You will need to rebuild if you manually update the auth key
- Generate the sample document
docker run -v ./assets:/app/assets \
-v ./cache:/app/cache cv-for-you \
-d assets/sample_components/document.html \
-c assets/sample_components/description1.txt \
-s assets/sample_components/sections/projects.json assets/sample_components/sections/tags.json \
-o ./assets/sample_components/
As you add more dynamic sections you may prefer to run the following to shrink the command size
docker run \
-v ./assets:/app/assets \
-v ./cache:/app/cache \
cv-for-you \
-d /app/assets/sample_components/document.html \
-ca \
-sd /app/assets/sample_components/sections/ \
-o ./assets/sample_components/
Note: Be sure to output to a mounted location
Define generic sections in your CV, so they be programmatically populated
Given a .NET job description, generate a CV tailored for .NET roles
Given a Javascript job description, generate a CV tailored for Javascript roles