Most issues with the AI Job Search framework fall into a small number of categories: a missing optional dependency that degrades gracefully, a LaTeX engine mismatch that causes compilation to fail, or a stale configuration file left over from an older clone. The entries below cover every known issue with its cause and fix. If you encounter a problem not listed here, check the GitHub Issues tracker to see whether it has been reported or to file a new report.Documentation 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.
Many of these issues produce a warning in Claude’s output rather than a hard failure. Read the Claude Code session output carefully — it often tells you exactly which dependency is missing and how to install it.
Known issues and fixes
"salary_data.json not found" warning during /apply
"salary_data.json not found" warning during /apply
Cause: The
/apply workflow includes an optional salary benchmarking step that reads salary_data.json from the repository root. If you have not set up salary data, the file does not exist.Fix: This is expected behavior and not an error. The /apply workflow skips the salary benchmarking step automatically when the file is absent. Everything else in the workflow runs normally.If you want to enable salary benchmarking, create salary_data.json manually (see tools/README_SALARY_TOOL.md for the expected format), or convert an existing Excel file:Job search CLI tools not working
Job search CLI tools not working
Cause: The CLI tools in If Bun is not installed, install it:Then install dependencies for each tool from the repository root:The CLI tools also require network access to fetch job listings. Make sure you are not behind a firewall or proxy that blocks the portal domains.
.agents/skills/ are TypeScript programs that run with Bun. There are two common reasons they fail: Bun is not installed, or bun install has not been run in the CLI directory.Fix: First, verify that Bun is installed:- macOS / Linux
- Windows PowerShell
- Bash / zsh
- PowerShell
LaTeX compilation errors in the CV or cover letter
LaTeX compilation errors in the CV or cover letter
Cause: The CV and cover letter use different LaTeX engines. Using the wrong engine for either document causes compilation to fail.Also make sure your LaTeX distribution includes the On MiKTeX, the package manager installs missing packages automatically on first use if you have auto-install enabled.
- The CV (
cv/main_<company>.tex) must be compiled withlualatex. Usingpdflatexoften fails on modern MiKTeX installations withfontawesome5font-expansion errors. - The cover letter (
cover_letters/cover_<company>_<role>.tex) must be compiled withxelatex. The customcover.clsclass requiresfontspecfor its Lato and Raleway fonts, andfontspecis not available underpdflatexorlualatex.
moderncv package. On TeX Live:Fonts not found when compiling the cover letter
Fonts not found when compiling the cover letter
Cause: The cover letter template (If the directory is missing, the repository may not have been cloned completely. Re-clone or restore the fonts from the repository. The font files are committed to the repo and should be present after a fresh clone.
cover.cls) loads Lato and Raleway fonts using fontspec with a relative path: OpenFonts/fonts/. If the cover_letters/OpenFonts/fonts/ directory is missing or does not contain the font files, xelatex fails with a font-not-found error.Fix: Verify that the directory exists and contains the font files:Stale .claude/settings.local.json from an older clone
Stale .claude/settings.local.json from an older clone
Cause: Earlier versions of this repository committed a If you have personal permission overrides you want to keep, edit the file to remove only the old broad rules (
.claude/settings.local.json file that pre-approved broad shell permissions (Bash(curl:*), Bash(python:*), Bash(bun:*)). The current version moves shared permissions to .claude/settings.json with tighter, scoped rules. If you cloned the repository before this change, Git leaves the old .claude/settings.local.json in your working copy, and its permissions continue to apply on top of the current settings.json.Fix: Delete the stale file:Bash(curl:*), Bash(python:*), Bash(bun:*)) and leave your own additions intact.pdftotext missing — ATS check not running
pdftotext missing — ATS check not running
Cause: The After installation, verify that
/apply workflow runs an ATS parseability check on the compiled CV using pdftotext from poppler. pdftotext is not part of standard TeX distributions and must be installed separately. If it is missing, the check cannot run.Fix: This is a graceful degradation, not a hard failure. When pdftotext is absent, /apply skips the mechanical ATS check with a warning and falls back to a visual keyword review from the rendered PDF. All other steps in the workflow run normally.To enable the full ATS check, install poppler:- macOS
- Debian / Ubuntu
- Windows (Chocolatey)
pdftotext is on your PATH:Output quality is generic or poorly tailored
Output quality is generic or poorly tailored
Cause: Profile depth is the single biggest factor in output quality. A thin profile (job titles only, short skill lists, no context about what you actually did) produces generic applications. The system can only tailor output based on what it knows about you.Fix: Invest more detail in your profile. The most impactful additions are:
- Role descriptions with specifics: Instead of listing a job title, describe what you did in each role, the tools you used, the problems you solved, and any measurable achievements.
- Skills in context: Instead of
Python, writeBuilt ML pipelines for customer churn prediction in Python using scikit-learn. This gives the system something concrete to reframe for different roles. - Behavioral and motivational context: During
/setup, describe not just your experience but what energized you, what drained you, and what you want more of. This context shapes fit evaluation and role discovery.
Job search results are stale or do not match your current priorities
Job search results are stale or do not match your current priorities
Cause: The search queries used by This re-runs the search configuration step: which roles to target, which skills to search for, which locations, and which portals. It also suggests role types you may not have considered based on your full profile.
/scrape are generated once during /setup based on your profile at that time. As your priorities evolve, the queries may no longer reflect the roles, locations, or skills you are currently targeting.Fix: Re-run the search configuration interview to update your queries without touching the rest of your profile: