assets | ||
src | ||
tests | ||
.gitattributes | ||
.gitignore | ||
Gruntfile.js | ||
LICENSE.md | ||
package.json | ||
README.md |
fluentCV
Generate beautiful, targeted resumes from your command line or shell.
FluentCV is a hackable, data-driven, dev-friendly resume authoring tool with support for HTML, Markdown, Word, PDF, plain text, smoke signal, carrier pigeon, and other arbitrary-format resumes and CVs.
Looking for a desktop GUI version with pretty timelines and graphs? Check out FluentCV Desktop.
Features
- Runs on OS X, Linux, and Windows.
- Store your resume data as a durable, versionable JSON, YML, or XML document.
- Generate multiple targeted resumes in multiple formats, based on your needs.
- Output to HTML, PDF, Markdown, Word, JSON, YAML, XML, or a custom format.
- Never update one piece of information in four different resumes again.
- Compatible with the JSON Resume standard and authoring tools.
- Free and open-source through the MIT license.
- Forthcoming: StackOverflow and LinkedIn support.
- Forthcoming: More themes!
Install
FluentCV requires a recent version of Node.js and NPM. Then:
- (Optional, for PDF support) Install the latest official wkhtmltopdf binary for your platform.
- Install fluentCV by running
npm install fluentcv -g
. - You're ready to go.
Use
Assuming you've got a JSON-formatted resume handy, generating resumes in different formats and combinations easy. Just run:
fluentcv [inputs] [outputs] [-t theme].
Where [inputs]
is one or more .json resume files, separated by spaces; [outputs]
is one or more destination resumes, each prefaced with the -o
option; and [theme]
is the desired theme. For example:
# Generate all resume formats (HTML, PDF, DOC, TXT, YML, etc.)
fluentcv resume.json -o out/resume.all -t modern
# Generate a specific resume format
fluentcv resume.json -o out/resume.html
fluentcv resume.json -o out/resume.pdf
fluentcv resume.json -o out/resume.md
fluentcv resume.json -o out/resume.doc
fluentcv resume.json -o out/resume.json
fluentcv resume.json -o out/resume.txt
fluentcv resume.json -o out/resume.yml
# Specify 2 inputs and 3 outputs
fluentcv in1.json in2.json -o out.html -o out.doc -o out.pdf
You should see something to the effect of:
*** FluentCV v0.7.1 ***
Reading JSON resume: foo/resume.json
Applying MODERN Theme (7 formats)
Generating HTML resume: out/resume.html
Generating TXT resume: out/resume.txt
Generating DOC resume: out/resume.doc
Generating PDF resume: out/resume.pdf
Generating JSON resume: out/resume.json
Generating MARKDOWN resume: out/resume.md
Generating YAML resume: out/resume.yml
Advanced
Applying a theme
You can specify a predefined or custom theme via the optional -t
parameter. For a predefined theme, include the theme name. For a custom theme, include the path to the custom theme's folder.
fluentcv resume.json -t modern
fluentcv resume.json -t ~/foo/bar/my-custom-theme/
As of v0.7.1, available predefined themes are modern
, minimist
, and hello-world
.
Merging resumes
You can merge multiple resumes together by specifying them in order from most generic to most specific:
# Merge specific.json onto base.json and generate all formats
fluentcv base.json specific.json -o resume.all
This can be useful for overriding a base (generic) resume with information from a specific (targeted) resume. For example, you might override your generic catch-all "software developer" resume with specific details from your targeted "game developer" resume, or combine two partial resumes into a "complete" resume. Merging follows conventional extend()-style behavior and there's no arbitrary limit to how many resumes you can merge:
fluentcv in1.json in2.json in3.json in4.json -o out.html -o out.doc
Reading JSON resume: in1.json
Reading JSON resume: in2.json
Reading JSON resume: in3.json
Reading JSON resume: in4.json
Merging in4.json onto in3.json onto in2.json onto in1.json
Generating HTML resume: out.html
Generating WORD resume: out.doc
Multiple targets
You can specify multiple output targets and FluentCV will build them:
# Generate out1.doc, out1.pdf, and foo.txt from me.json.
fluentcv me.json -o out1.doc -o out1.pdf -o foo.txt
You can also omit the output file(s) and/or theme completely:
# Equivalent to "fluentcv resume.json resume.all -t modern"
fluentcv resume.json
Using .all
The special .all
extension tells FluentCV to generate all supported output formats for the given resume. For example, this...
# Generate all resume formats (HTML, PDF, DOC, TXT, etc.)
fluentcv me.json -o out/resume.all
..tells FluentCV to read me.json
and generate out/resume.md
, out/resume.doc
, out/resume.html
, out/resume.txt
, out/resume.pdf
, and out/resume.json
.
Prettifying
FluentCV applies js-beautify-style HTML prettification by default to HTML-formatted resumes. To disable prettification, the --nopretty
or -n
flag can be used:
fluentcv resume.json out.all --nopretty
Silent Mode
Use -s
or --silent
to run in silent mode:
fluentcv resume.json -o someFile.all -s
fluentcv resume.json -o someFile.all --silent
License
MIT. Go crazy. See LICENSE.md for details.