Latest version here: resume-builder.js.org
Gotta find a job! Alright, let's make a new resume with this awesome template I found on Google, the problem is, this template might not be as awesome next month, or you might need to constantly add your new experience to the document. Gosh. Wouldn't be better to focus on adding new experiences in a raw format and let a automation process handle the layout? I agreed, and that's why Resume Builder is here.
"Imagine you're an employer, and you have two resumes in front of you. One is filled wall-to-wall with text and uses four different fonts. It's also peppered with dozens of bolded, italicized, and underlined words and phrases. The second resume also offers a lot of information, but you can quickly scan the document because it makes good use of white space, features clear and consistent section headings, and uses bullets to make important items stand out. Which resume would you look at first?"
TESTED ONLY ON GOOGLE CHROME
Resume Builder is a free open-source project that allows anyone to easily maintain and build any kind of resume using Google Spreadsheets. This was develop as a personal project to help a friend who was struggling spending up to an hour to make a custom resumes. TRY IT NOW.
For the latest version, access https://resume-builder.js.org.
- Multiple Resume templates
- Parse data from Google Spreadsheet or .xls file
- 21 different types of "data"
First of all you need to create a Google Spreadsheet following the same rules as this one (you can make a copy if you like) and populate with your resume information.
- Full Name: Your full name
- Job Title: Your resume Job Title
- Summary: Summary of yourself
- Website: Your website URL
- Languages: Languages you speak
- Email: Your email
- Phone: Your phone number
- GitHub: Your GitHub profile link
- City: City where you're located
- Country: Country where you're located
- Skills: Your skills
- Experience: Job Title for your experience
- Company: Company where you had this experience (must fill the
data-for
with the Experience ID) - From: Date of when you started the experience (must fill the
data-for
with the Experience ID) - To: Date of when you ended the experience (must fill the
data-for
with the Experience ID) - Local: Where you had this experience (must fill the
data-for
with the Experience ID) - Item: List here things you've done (must fill the
data-for
with the Experience ID)
- Company: Company where you had this experience (must fill the
- Education: Name of the course you've studied
- From: Date of when you started the education (must fill the
data-for
with the Education ID) - To: Date of when you ended the education (must fill the
data-for
with the Education ID) - Local: Where did you studied (must fill the
data-for
with the Education ID) - Item: List here things you've done (must fill the
data-for
with the Education ID)
- From: Date of when you started the education (must fill the
- Side Project: Name of your Side Project
- Description: Description of your Side Project (must fill the
data-for
with the Side Project ID) - Url: URL of your Side Project (must fill the
data-for
with the Side Project ID)
- Description: Description of your Side Project (must fill the
So whenever you want a part of the resume to be an sub-item of another item, you should use the data-for
field. Use your creativity.
- For the react.js version of this project I'm using react.js, js-xlsx and Bootstrap.
- Honorable mentions: babel, webpack, IntelliJ IDEA and Squarespace.
So a big thanks to all the developers that worked really hard on these libs and make our day easier :D and also a big thanks to cdnjs.com for hosting those libs for us.
Run npm run build
then copy the dist/
folder into your website root directory. Done.
The following JSON
is a result of this Google Spreadsheet. For a better view of the JSON
click here.
{
"fullName": {
"display": true,
"content": "Your Full Name"
},
"jobTitle": {
"display": true,
"content": "Full stack developer"
},
"website": {
"display": true,
"content": "personalwebsite.com"
},
"github": {
"display": true,
"content": "github.com/yourgithub"
},
"email": {
"display": true,
"content": "yourprimaryemail@whatever.com"
},
"phone": {
"display": true,
"content": "+1 604 604 4444"
},
"city": {
"display": true,
"content": "City"
},
"country": {
"display": true,
"content": "Country"
},
"skills": {
"display": true,
"content": "React, Redux, ES6, Express, MongoDB, Sass, Webpack, Gulp, Git"
},
"languages": {
"display": true,
"content": "English, French"
},
"experience": {
"display": true,
"content": [
{
"id": "job-1",
"jobTitle": {
"display": false,
"content": "Software Developer"
},
"company": {
"display": true,
"content": "Telesoft "
},
"display": false,
"from": {
"display": true,
"content": "Feb/2015"
},
"to": {
"display": true,
"content": "Present"
},
"local": {
"display": true,
"content": "Seattle, WA"
},
"items": {
"display": true,
"content": [
{
"display": true,
"content": "Led the development and adoption of React for a dashboard web app."
},
{
"display": true,
"content": "Full stack development using Node.js, Express, React, and MongoDB."
}
]
}
},
{
"id": "job-2",
"jobTitle": {
"display": true,
"content": "Web Developer"
},
"company": {
"display": true,
"content": "Plasmid Inc"
},
"display": true,
"from": {
"display": true,
"content": "Nov/2013"
},
"to": {
"display": true,
"content": "Jan/2015"
},
"local": {
"display": true,
"content": "Denver, CO"
},
"items": {
"display": true,
"content": [
{
"display": true,
"content": "Part of the front end development team of their AngularJS web app."
},
{
"display": true,
"content": "Developed & maintained a reusable components repository."
}
]
}
}
]
},
"sideProject": {
"display": true,
"content": [
{
"id": "side-1",
"projectName": {
"display": true,
"content": "Speakasso"
},
"url": {
"display": true,
"content": "http://www.csc.kth.se/~acvds/info_vis/speakasso/"
},
"display": true,
"description": {
"display": true,
"content": "web-based generative art based on speech or conversation."
}
},
{
"id": "side-2",
"projectName": {
"display": true,
"content": "Bubbles.js"
},
"url": {
"display": true,
"content": "https://github.com/krasimir/bubble.js"
},
"display": true,
"description": {
"display": true,
"content": "open source generator of PNG images of bubbles."
}
}
]
},
"education": {
"display": true,
"content": [
{
"id": "edu-1",
"degree": {
"display": true,
"content": "B.Sc. in Computer Science"
},
"local": {
"display": true,
"content": "University of Iowa"
},
"display": true,
"from": {
"display": true,
"content": "2007"
},
"to": {
"display": true,
"content": "2012"
},
"items": {
"display": true,
"content": [
{
"display": true,
"content": "Conducted a project on comparative analysis of 10 predictive data-mining techniques and authored 2 papers on the topic."
}
]
}
}
]
}
}
- v0.0.4:
- New resume display style
- v0.0.3:
- Cleaning code to fit ESLint standards
- Get JSON object from URL to parse a Resume
- Replace CSS for SASS
- v0.0.2:
- Tiny changes on template layout
- v0.0.1:
- First working version
Q: Can you implement <???> function?
A: I can try. Open a issue and I'll see what I can do.
Q: Your project is awesome. How can I help?
A: Thank you! You can help by codding more features, creating pull requests, or donating via https://bunq.me/BuyMeASoda
- Add list of recent used documents
- Add option to save a built resume
- Remove bootstrap include from template.html
- Make build.js smaller / add lazyloader
MIT License
Copyright (c) 2018 blopa
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Free Software, Hell Yeah!