JobRouteAI is a portable multi-agent job-search and application workflow. The canonical behavior for every agent lives under agents/. Platform-specific wrappers under .codex/agents/, .claude/agents/, and .github/agents/ must remain thin and consistent with those canonical specifications.
- Treat
jobroute-orchestrator-agentas the normal entry point. - Never fabricate candidate experience, dates, titles, metrics, education, certifications, work authorization, sponsorship status, salary, notice period, or other factual application answers.
- Read persistent candidate knowledge from
data/candidate/before reopening a source resume. - Supported resume inputs are PDF, DOCX, TXT, and Markdown.
- Candidate preferences are free-form and are managed by
jobroute-profile-agent, never by the installer. - The installer configures MCP/API integrations only.
- Store runtime state in YAML, Markdown, and CSV. Do not introduce a database without an explicit project decision.
- In automated mode, never ask JD-specific enrichment questions. Missing required personal/legal facts must move only the affected application to
USER_INTERVENTION_REQUIRED. - Reuse
user_confirmedfacts untiljobroute-profile-agentchanges them. - Every specialist must finish with the handoff contract defined in
agents/HANDOFF.md. - If direct agent-to-agent invocation is unavailable, return the exact next agent name and reason. The orchestrator should perform the chain when possible.
- Never store credentials, tokens, real resumes, candidate data, or application history in tracked files.
- Respect source/site terms. Do not build or enable an unauthorized LinkedIn/Indeed scraper in core.
Changes to agent behavior should update the canonical specification first, then the three platform wrappers if needed. Keep platform-specific instructions minimal.