Commands
Overview
| Command | Description | Required Options |
jojo setup | Interactive setup wizard for first-time configuration | None |
jojo new | Create application workspace and process job description | -s, -j |
jojo generate | Generate all materials in sequence | -s or JOJO_APPLICATION_SLUG |
jojo research | Generate company/role research only | -s or JOJO_APPLICATION_SLUG |
jojo resume | Generate tailored resume only | -s or JOJO_APPLICATION_SLUG |
jojo cover_letter | Generate cover letter only | -s or JOJO_APPLICATION_SLUG |
jojo annotate | Generate annotated job description | -s or JOJO_APPLICATION_SLUG |
jojo branding | Generate AI branding statement | -s or JOJO_APPLICATION_SLUG |
jojo faq | Generate FAQ content | -s or JOJO_APPLICATION_SLUG |
jojo website | Generate landing page | -s or JOJO_APPLICATION_SLUG |
jojo pdf | Generate PDF versions of resume and cover letter | -s or JOJO_APPLICATION_SLUG |
jojo interactive | TUI dashboard mode | None |
jojo version | Show version | None |
jojo help [COMMAND] | Show help | None |
| Command | Inputs | Outputs |
jojo setup | None (interactive) | .env, config.yml, inputs/resume_data.yml, inputs/templates/default_resume.md.erb |
jojo new | inputs/resume_data.yml, job source (file or URL via -j) | applications/<slug>/job_description_raw.md, job_description.md, job_details.yml, website/ |
jojo generate | applications/<slug>/job_description.md, job_details.yml, inputs/resume_data.yml, templates/* | research.md, resume.md, cover_letter.md, job_description_annotations.json, branding_statement.json, faq.json, website/index.html, *.pdf (if Pandoc installed), status_log.md |
jojo research | applications/<slug>/job_description.md, job_details.yml | applications/<slug>/research.md, status_log.md |
jojo resume | applications/<slug>/job_description.md, job_details.yml, inputs/resume_data.yml | applications/<slug>/resume.md, status_log.md |
jojo cover_letter | applications/<slug>/job_description.md, job_details.yml, resume.md, inputs/resume_data.yml | applications/<slug>/cover_letter.md, status_log.md |
jojo annotate | applications/<slug>/job_description.md, job_details.yml | applications/<slug>/job_description_annotations.json |
jojo branding | applications/<slug>/job_description.md, job_details.yml, resume.md, optional: research.md | applications/<slug>/branding_statement.json |
jojo faq | applications/<slug>/job_description.md, job_details.yml, resume.md | applications/<slug>/faq.json |
jojo website | applications/<slug>/job_description.md, job_details.yml, resume.md, optional: research.md, faq.json, job_description_annotations.json, templates/* | applications/<slug>/website/index.html, status_log.md |
jojo pdf | applications/<slug>/resume.md, cover_letter.md | applications/<slug>/resume.pdf, cover_letter.pdf |
Global options
| Option | Description |
-s, --slug SLUG | Application slug (unique identifier for the job application) |
-t, --template TEMPLATE | Website template name (default: "default") |
-v, --verbose | Run verbosely with detailed output |
-q, --quiet | Suppress output, rely on exit code only |
--overwrite | Overwrite existing files without prompting |
--no-overwrite | Always prompt before overwriting files |
Environment variables
| Variable | Description |
JOJO_APPLICATION_SLUG | Set this to avoid repeating --slug for every command |
JOJO_ALWAYS_OVERWRITE | Set to true, 1, or yes to skip overwrite prompts |
Overwrite precedence
When a command would overwrite an existing file, Jojo follows this precedence:
--overwrite flag — always overwrites --no-overwrite flag — always prompts JOJO_ALWAYS_OVERWRITE=true — overwrites - Default — prompts
Table of contents