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

Inputs/Outputs

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:

  1. --overwrite flag — always overwrites
  2. --no-overwrite flag — always prompts
  3. JOJO_ALWAYS_OVERWRITE=true — overwrites
  4. Default — prompts

Table of contents


This site uses Just the Docs, a documentation theme for Jekyll.