The AI Job Search repository is designed to be forked and personalized. Every directory has a clear purpose: some hold your private career data (populated byDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/SudharakaA/ai-job-search/llms.txt
Use this file to discover all available pages before exploring further.
/setup and never committed), others hold the framework’s own rules and CLI tools (committed and shared freely). Understanding the layout helps you navigate the repo confidently, know which files to edit manually, and decide what belongs in your .gitignore.
Top-level layout
Files and directories populated by
/setup contain your personal data. Keep them out of version control unless you are working in a private fork.File and directory reference
CLAUDE.md
The main candidate profile and workflow rules file. Claude reads this on every invocation to understand who you are, what you are looking for, and how to behave. Before you run /setup, it contains [PLACEHOLDER] tokens throughout. After /setup, those tokens are replaced with your actual name, education, experience, skills, target sectors, and deal-breakers.
You can edit this file directly instead of using /setup. It is the authoritative source for all profile data that drives CV tailoring, cover letter writing, and fit evaluation.
Owner: User-maintained (populated by /setup or edited manually).
.claude/
Contains Claude Code commands, skill definitions, and shared permissions settings.
commands/ — Each .md file defines one slash command (/apply, /setup, /expand, /add-template, /add-portal, /reset). These files encode the workflow logic Claude follows when you invoke the command.
skills/job-application-assistant/ — Structured profile files that /setup populates. The numbered files (01- through 07-) each cover a specific domain: candidate profile, behavioral traits, writing style, job evaluation criteria, CV templates, cover letter templates, and interview preparation. Claude reads these during /apply to produce tailored output.
settings.json — Shared Claude Code permissions scoped to this repository:
bun run, invoke the salary lookup script, and run pdftotext for the ATS check. No other shell commands are pre-approved at the repo level. Personal overrides belong in .claude/settings.local.json (not committed).
Owner: Framework files in commands/ and settings.json are committed. Skill files in skills/job-application-assistant/ are user-maintained (populated by /setup) and should not be committed if they contain personal data.
.agents/skills/
The job portal CLI tools. Each subdirectory is a standalone Bun/TypeScript CLI that Claude invokes when searching job portals.
SKILL.md (the Claude-readable definition) and a cli/ directory with the TypeScript source. Run bun install inside each cli/ directory before using the tools. See the Job Search Tools reference for command details.
Owner: Framework-provided. Safe to commit. You can add custom portals here via /add-portal.
cv/
LaTeX CV files. The repo ships with main_example.tex, a moderncv template in banking style. When you run /apply, Claude creates main_<company>.tex here for each application.
Owner: main_example.tex is framework-provided and safe to commit with [PLACEHOLDER] tokens. Generated main_<company>.tex files and compiled main_<company>.pdf files contain personal data; add them to .gitignore.
cover_letters/
LaTeX cover letter files and the supporting class and fonts.
cover.cls requires xelatex and fontspec. The OpenFonts/fonts/ directory must be present and contain the Lato and Raleway font files for compilation to succeed. When you run /apply, Claude creates cover_<company>_<role>.tex here for each application.
Owner: cover.cls and OpenFonts/ are framework-provided and safe to commit. Generated cover_<company>_<role>.tex and .pdf files contain personal data; add them to .gitignore.
templates/
Custom LaTeX templates registered via /add-template. When you point /add-template at your own .tex file, it stores the template here with [PLACEHOLDER] tokens replacing personal data. A README.md explains the folder layout.
Templates registered here are safe to commit and share because all personal content is replaced with placeholders.
Owner: User-maintained (populated by /add-template). Safe to commit.
documents/
Career source materials for /setup Path A (documents folder) and /expand. Populate this directory before running /setup to give Claude the richest possible starting point.
documents/cv/, your LinkedIn export in documents/linkedin/, and any past application folders (named <company>_<role>) under documents/applications/. The /setup documents-folder mode is idempotent: re-running it as you add more material merges new information into your profile without overwriting what is already there.
Owner: User-maintained. Contains personal documents; do not commit.
salary_lookup.py
Salary benchmarking tool. Reads salary_data.json from the repo root and returns salary statistics for a given role. The /apply workflow calls this via python salary_lookup.py during fit evaluation. If salary_data.json does not exist, the step is skipped automatically.
Owner: Framework-provided. Safe to commit. salary_data.json (your data) should not be committed.
tools/
Helper scripts for one-off data preparation tasks.
job_scraper/
Scraper state directory. The /scrape command writes seen_jobs.json here to track which job IDs have already been shown to you across sessions, preventing duplicate results.
Owner: Auto-generated by /scrape. Contains transient state; you may commit it to persist deduplication across machines, or gitignore it to reset the seen list on each clone.
upskill/
Output directory for /upskill reports. Each run writes a timestamped Markdown file here containing the skill gap heatmap and learning plan. Files accumulate over time, one per run.
Owner: Auto-generated by /upskill. Contains output data; add to .gitignore if you do not want to commit reports.
job_search_tracker.csv
Application tracking spreadsheet. Stores a record of every job you have applied to, including company, role, portal, status, and dates. Updated manually or by Claude after a successful /apply run.
Owner: User-maintained. Contains personal tracking data; do not commit to a public fork.
Commit safety summary
Safe to commit
CLAUDE.mdwith[PLACEHOLDER]tokens (before/setup).claude/commands/andsettings.json.agents/skills/(all CLI tools)cv/main_example.tex(template only)cover_letters/cover.clsandOpenFonts/templates/(registered templates use placeholder tokens)tools/SETUP.md,README.md
Do not commit
CLAUDE.mdafter/setup(contains your name and career history).claude/skills/job-application-assistant/01-through07-(personal profile data).claude/settings.local.json(personal permission overrides)documents/(source PDFs and reference letters)cv/main_<company>.texand.pdffilescover_letters/cover_<company>_<role>.texand.pdffilessalary_data.jsonjob_search_tracker.csv