- Cover letter: full-page (350-500 words, 4-5 paragraphs), zero AI slop
- Anti-jargon: expanded banned-words list, anti-examples, concrete rules
- Section ordering randomized per generation via seeded Fisher-Yates
- CV profile (font/color/size) varies per job+generation (not just per user)
- CV diversity engine: grouped skills shuffled, more synonym substitution
- File slugs include random hash suffix for naming variety
- HR email: optional checkbox during CV generation (both job-detail and manual pages)
- Also generate email button removed from standalone; now integrated into tailor flow
feat: add creative HR email generation on job-detail page
- Add generate_hr_email() in llm.py with non-generic, creative prompt
- Add POST /api/jobs/{job_id}/email-hr endpoint in main.py
- Add email card on job-detail.html with generate + copy-to-clipboard
fix: api key persistence — delete old keys before insert, add logging, verify saved keys in response