Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cptmeetkat/cv-for-you
Generates the best variation of a CV for a job description
https://github.com/cptmeetkat/cv-for-you
Last synced: 20 days ago
JSON representation
Generates the best variation of a CV for a job description
- Host: GitHub
- URL: https://github.com/cptmeetkat/cv-for-you
- Owner: CptMeetKat
- Created: 2024-07-03T11:14:16.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2024-12-03T04:42:12.000Z (about 1 month ago)
- Last Synced: 2024-12-03T05:30:33.317Z (about 1 month ago)
- Language: Java
- Homepage:
- Size: 424 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# CV 'For You'
Automatically create the most effective version of your resume, ensuring your skills are tailored to match every role you apply for.
### Table of contents
- [How does it work?](#how-does-it-work)
- [How to use?](#how-to-use)
- [Basic Usage](#basic-usage)
* [Pre-requisites](#pre-requisites)
* [Use Textfile as input](#use-textfile-as-input)
* [Use Seek URL as input](#use-seek-url-as-input)
- [Using SEEK integration as input](#using-seek-integration-as-input)
* [How to configure Seek auth token?](#how-to-configure-seek-auth-token)
- [Using Docker](#using-docker)
- [Demo](#demo)
* [Demo 1 - .NET](#demo-1---net)
* [Demo 2 - Javascript](#demo-2---javascript)## How does it work?
1. You define dynamic sections in your CV template
2. You provide the program a job description (via Seek or Textfile)
3. The algorithm will insert the most relevant information and generate a CV pdf## How to use?
```
usage: ./CVForYou -d -c -s
-c,--compare file to compare keywords to
-ca,--compare-seek-all compare from your seek saved job
-cs,--compare-seek pull JD from seek to compare
-d,--document path to the dynamic document
-h,--help print this message
-o,--output path of output
-s,--section path to section definition files
```# Basic Usage
## Pre-requisites
Either:
- Maven, Chrome
- Docker## Use Textfile as input
1. Build the project
``` bash
./build
```
3. Build sample document via textfile job description
``` bash
./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
```## Use Seek URL as input
1. Build the project
``` bash
./build
```
2. Obtain a Seek Job URL
- e.g. `https://www.seek.com.au/job/12345678`
3. Build the sample document via seek integration
``` bash
./CVForYou -d assets/sample_components/document.html \
-cs \
-s assets/sample_components/sections/projects.json assets/sample_components/sections/tags.json
```# Using SEEK integration as input
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.### How to configure Seek auth token?
1. Login to Seek
2. Open browser console
3. Run Script in console
``` js
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));
```
4. Copy-paste result in file named `auth` in repo directory
# Using Docker
1. Build the docker image
``` bash
docker build -t cv-for-you .
```Note: You will need to rebuild if you manually update the auth key
2. Generate the sample document
``` bash
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
``` bash
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
# Demo
Define generic sections in your CV, so they be programmatically populated![image](https://github.com/user-attachments/assets/5b89d723-d546-43b3-af23-e0d68a8bf846)
### Demo 1 - .NET
Given a .NET job description, generate a CV tailored for .NET roles![image](https://github.com/user-attachments/assets/dfc8fea7-4a8f-445b-987e-07526c2c4fa8)
### Demo 2 - Javascript
Given a Javascript job description, generate a CV tailored for Javascript roles![image](https://github.com/user-attachments/assets/fec42896-58c6-4996-950c-b94741bd3dd3)