2015-09-24 21:09:48 +01:00
fluentcmd
=========
2015-10-06 22:56:26 +01:00
*Generate beautiful, targeted resumes from your command line or shell.*
2015-09-02 01:14:24 +01:00
2015-10-07 09:27:30 +01:00
FluentCMD is a **hackable, data-driven, developer-friendly resume authoring tool** with support for HTML, Word, PDF, plain text, smoke signal, carrier pigeon, and other arbitrary-format resumes and CVs.
2015-10-06 22:56:26 +01:00
2015-10-07 06:38:48 +01:00
[![ ](assets/office_space.jpg )][8]
2015-10-06 22:56:26 +01:00
2015-10-07 09:27:30 +01:00
Looking for a desktop GUI version with pretty timelines and graphs? Check out [FluentCV Desktop][7].
2015-10-06 22:56:26 +01:00
## Features
2015-10-07 09:27:30 +01:00
- Runs on OS X, Linux, and Windows.
2015-10-06 22:56:26 +01:00
- 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.
2015-10-07 09:27:30 +01:00
- Never update one piece of information in four different resumes again.
- Compatible with the [JSON Resume standard][6] and [authoring tools][7].
2015-10-07 06:54:08 +01:00
- Free and open-source through the MIT license.
2015-10-07 09:27:30 +01:00
- Forthcoming: StackOverflow and LinkedIn support.
- Forthcoming: More themes!
2015-10-06 22:56:26 +01:00
## Install
2015-09-02 01:14:24 +01:00
2015-10-07 09:27:30 +01:00
FluentCMD requires a recent version of [Node.js][4] and [NPM][5]. Then:
2015-09-02 01:14:24 +01:00
2015-10-06 22:56:26 +01:00
1. (Optional, for PDF support) Install the latest official [wkhtmltopdf][3] binary for your platform.
2015-10-07 09:27:30 +01:00
2. Install **fluentcmd** by running `npm install fluentcmd -g` .
3. You're ready to go!
2015-10-06 22:56:26 +01:00
## Use
2015-10-07 09:27:30 +01:00
Assuming you've got a JSON-formatted resume handy, generating resumes in different formats and combinations easy. Just run:
2015-10-06 22:56:26 +01:00
2015-10-07 09:27:30 +01:00
`fluentcmd [inputs] [outputs] [-t theme]` .
2015-10-06 22:56:26 +01:00
2015-10-07 09:27:30 +01:00
Where `[inputs]` is one or more .json resume files, `[outputs]` is one or more destination resumes, and `[theme]` is the desired theme. For example:
2015-10-06 22:56:26 +01:00
```bash
# 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
```
2015-09-02 01:14:24 +01:00
## Advanced
2015-10-06 22:56:26 +01:00
### Merging resumes
You can **merge multiple resumes together** by specifying them in order from most generic to most specific:
2015-09-02 01:14:24 +01:00
```bash
# Merge specific.json onto base.json and generate all formats
2015-10-06 22:56:26 +01:00
fluentcmd base.json specific.json resume.all
2015-09-02 01:14:24 +01:00
```
2015-10-07 09:27:30 +01:00
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()][9]-style behavior and there's no arbitrary limit to how many resumes you can merge:
```bash
fluentcmd in1.json in2.json in3.json in4.json out.html 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
```
2015-10-06 22:56:26 +01:00
### Multiple targets
2015-10-07 06:54:08 +01:00
You can specify **multiple output targets** and FluentCMD will build them:
2015-09-02 01:14:24 +01:00
```bash
2015-10-07 06:54:08 +01:00
# Generate out1.doc, out1.pdf, and foo.txt from me.json.
fluentcmd me.json out1.doc out1.pdf foo.txt
2015-09-02 01:14:24 +01:00
```
2015-10-07 06:54:08 +01:00
You can also omit the output file(s) and/or theme completely:
2015-09-02 01:14:24 +01:00
```bash
2015-10-07 06:54:08 +01:00
# Equivalent to "fluentcmd resume.json resume.all -t informatic"
2015-09-24 21:09:48 +01:00
fluentcmd resume.json
2015-09-02 01:14:24 +01:00
```
2015-09-01 06:03:58 +01:00
2015-10-06 22:56:26 +01:00
### Using .all
The special `.all` extension tells FluentCMD to generate all supported output formats for the given resume. For example, this...
```bash
# 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:
```bash
# Generate all resume formats (HTML, PDF, DOC, TXT)
fluentcmd input.json output.doc output.html output.txt output.pdf
```
2015-09-01 06:03:58 +01:00
## License
2015-10-07 09:27:30 +01:00
MIT. Go crazy, and keep a lookout for grues. See [LICENSE.md][1] for details.
2015-09-01 06:50:31 +01:00
[1]: LICENSE.md
2015-09-02 01:14:24 +01:00
[2]: http://phantomjs.org/
[3]: http://wkhtmltopdf.org/
[4]: https://nodejs.org/
[5]: https://www.npmjs.com/
2015-10-06 22:56:26 +01:00
[6]: http://jsonresume.org
[7]: http://fluentcv.com
2015-10-07 06:38:48 +01:00
[8]: https://youtu.be/N9wsjroVlu8
2015-10-07 06:54:08 +01:00
[9]: https://api.jquery.com/jquery.extend/