Use _.reduceRight in lieue of Array.prototype.reduce to ease logging during resume merge and clean up code, comments, and whitespace throughout.
fluentcmd
Generate beautiful, targeted resumes from your command line or shell.
FluentCMD is a hackable, data-driven, Markdown-and-JSON-friendly resume authoring tool with support for HTML, Word, PDF, plain text, and other arbitrary-format resumes and CVs.
Looking for a desktop version with pretty timelines and graphs? Check out FluentCV Desktop.
Features
- Runs on OS X, Linux, and Windows. If you can run Node.js, you can run fluentcmd.
- 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, XML, or other arbitrary formats.
- Compatible with the JSON Resume standard and compatible tools.
- Free and open-source through the MIT license.
Install
First make sure Node.js and NPM are installed. Then:
- (Optional, for PDF support) Install the latest official wkhtmltopdf binary for your platform.
- Install fluentcmd by running
npm install
followed bynpm link
.
Use
Assuming you've got a JSON-formatted resume handy, generating output resumes is easy. Just run:
fluentcmd inputs [outputs] [-t theme]
.
Where inputs
is one or more .json resume files, [outputs]
is one or more destination resumes, and [theme]
is the desired theme. For example:
# Generate all resume formats (HTML, PDF, DOC, TXT)
fluentcmd resume.json resume.all -t informatic
# Generate a specific resume format
fluentcmd resume.json resume.html -t informatic
fluentcmd resume.json resume.txt -t informatic
fluentcmd resume.json resume.pdf -t informatic
fluentcmd resume.json resume.doc -t informatic
You should see something to the effect of:
*** FluentCMD v0.1.0 ***
Reading JSON resume: foo/resume.json
Generating HTML resume: out/resume.html
Generating TXT resume: out/resume.txt
Generating DOC resume: out/resume.doc
Generating PDF resume: out/resume.pdf
Advanced
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
fluentcmd base.json specific.json 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. Merging follows conventional extend()-style behavior.
Multiple targets
You can specify multiple output targets and FluentCMD will build them:
# Generate out1.doc, out1.pdf, and foo.txt from me.json.
fluentcmd me.json out1.doc out1.pdf foo.txt
You can also omit the output file(s) and/or theme completely:
# Equivalent to "fluentcmd resume.json resume.all -t informatic"
fluentcmd resume.json
Using .all
The special .all
extension tells FluentCMD to generate all supported output formats for the given resume. For example, this...
# Generate all resume formats (HTML, PDF, DOC, TXT, etc.)
fluentcmd input.json output.all
..tells FluentCV to read input.json
and generate output.doc
, output.html
, output.txt
, output.pdf
. That's more or less equivalent to:
# Generate all resume formats (HTML, PDF, DOC, TXT)
fluentcmd input.json output.doc output.html output.txt output.pdf
License
MIT. Go crazy. See LICENSE.md for details.