• Stars
    star
    209
  • Rank 188,325 (Top 4 %)
  • Language
    Python
  • License
    The Unlicense
  • Created about 4 years ago
  • Updated about 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Fully generated fake resumes using machine learning models trained off ~6000 JSON resumes.

Almost Real Resume

https://fake.jsonresume.org

Fully generated fake resumes using machine learning models trained off ~6000 JSON resumes.

This repo generates the website, and also includes code for people who would like to see how to train text based models and generate sample outputs.

This is just for a bit of fun, all ideas are welcome (create an issue) and we hope you learn something along the way.

We did not include the real data the models are currently trained off for privacy purposes. Though, thousands of people host their resume.json on Github Gist which you can see results for here

Note: The models/output obviously suck. We didn't clean the data enough. And we didn't train them for long enough. (Who can afford that)

Getting Started

You will need Node and Python3 for this project (sorry)

git clone https://github.com/jsonresume/jsonresume-fake
# Install dependencies
npm i
pip3 install -r requirements.txt

This entire project largely works off a beautiful Python lib called textgenrnn. (Built on top of Keras/Tensorflow). It was created by Max Woolf (thanks and great job man).

Start the web server

To launch the fake resume viewer;

node server.js

It should start on http://localhost:3000

Refresh the page each time, it will load a new pre-generated resume from the ./resumes folder.

Generate Sample Output

Every field in the fake resume is generated, there are 10 models in total.

To generate a sample company name;

python3 sample.py
# You should get something like "Javelin Group"

We hope that worked, if not, leave an issue.

If you want to try the other models;

./models/cities/
./models/company_highlights/
./models/company_names/
./models/company_position/
./models/company_summaries/
./models/interests/
./models/labels/
./models/names/
./models/references/
./models/summaries/

You have to edit the ./sample.py to reflect which model you want to run.

Each folder contains;

./textgenrnn_config.json
./textgenrnn_vocab.json
./textgenrnn_weights.hdf5

Which is the entirety of a trained "model".

Train your own model

From this repo, you can only train a new ./models/names/ model, the learning set for other models was not included for privacy reasons.

The textgenrnn lib expects that you have a single text file that has a new line for every text it should train off e.g.

// e.g. names.txt
Thomas Davis
Maximus Kolesnyk
Jimmy Barnes
Beyonce Knowles

If you look inside the ./models/names directory, you can see we have included a file called names.txt already based off some random dataset off the internet.

To start generating random names, simply run;

cd models/names
python3 train.py

You should see some output!

It will suck for some time, much like the samples used in the fake resumes, the longer you train it for the better your results may be. (ML obviously eventually gets a lot more difficult than this)

The script is set to run 10000 epochs (iterations).

There are some caveats with the train.py script.

Fortunately, it will save the model if you exit it before finishing the epochs/iterations.

Unfortunately, you can't stop and start the training process in this tutorial.

Everytime you train the model, it will override the original.

Once you've trained for some time, try run again;

python3 sample.py

If it is still pointing at ./models/names then it should generate a sample from what your computer had been training.

Generate fake resumes

Be warned, the script for generating a fake resume is not optimal but it does the job.

It involves loading the 10 models that are pre-trained into a Python script and inserting the sample output into valid places in a JSON Resume. (browse the ./resumes/ folder to see what it outputs)

To generate a fake resume;

python3 generate.py

There will be some quasi-useful logs and it will also output the results to ./resumes/.

Type git status, if you want to see which new ones you are generating.

Conclusion

We will make this repo better over time, but as stated at the start, it is just a bit of fun.

Please ask any questions though, basic machine learning stuff is kind of easy, and cool to play with.

There have been some great suggestions as to why a fake resume might be a good thing;

- Apply to jobs and see if a recruiter perhaps takes the bait
- HR DDOS (spam a company with fake resumes, where it is hard to tell what is real or fake) (Don't do this)

Contributors

Thomas Davis

Max Kolesnyk

More Repositories

1

resume-cli

CLI tool to easily setup a new resume πŸ“‘
JavaScript
4,556
star
2

resume-schema

JSON-Schema is used here to define and validate our proposed resume json
JavaScript
2,126
star
3

resume-website

Website for JSON Resume. 🏑 DEPRECATED - SEE MONO
HTML
439
star
4

theme-manager

Theme server for JSON Resume
JavaScript
166
star
5

jsonresume-theme-boilerplate

Boilerplate theme for JSON Resume.
HTML
157
star
6

resumeToPDF

Convert your resume.json into a PDF, it runs through our HTML parser
JavaScript
111
star
7

registry-server

This repo is deprecated in favor of https://github.com/jsonresume/registry-functions
JavaScript
95
star
8

jsonresume.org

The mono repo that builds the homepage, utils, ui components, registry and anything else
JavaScript
85
star
9

jsonresume-gpt3

Fake JSON Resumes generated with GPT-3
JavaScript
51
star
10

vscode-jsonresume

JSONResume creation, validation, and code completion in VSCode
24
star
11

theme-utils

Utility methods for theme developers
JavaScript
20
star
12

registry-functions

DEPRECATED - SEE MONO REPO -
HTML
17
star
13

resumeToText

Prefer your resume to just get straight to the point? Convert it to plaintext!
JavaScript
15
star
14

jsonresume-theme-modern

Prototyping a theming system based off NPM.
JavaScript
14
star
15

jsondocs

JsonDocs generates minimalistic documentation for a given JSON schema
JavaScript
13
star
16

jsonresume-theme-class

A modern theme for JSON Resume which is self-contained. The content of the resume will work offline and can be hosted without depending on or making requests to third-party servers.
Handlebars
12
star
17

jsonresume-theme-polymer

fnu
JavaScript
8
star
18

jsonresume-theme-business-card

A business card theme for JSON Resume
Handlebars
7
star
19

resume-docs

Work in progress
4
star
20

competition-parser

Parses twitter for theme hashtags
JavaScript
4
star
21

theme-functions

Serverless handler for theme rendering.
HTML
3
star
22

translations

NPM module that allows theme developers to use translations
2
star
23

jsonresume

A mono repo
2
star