Add language settings for AI-generated resume output (#252)
* Add language settings for AI-generated resume output * Resolve merge conflicts for language settings PR * Fix language settings review feedback and CI lint * Tighten language setting precedence and onboarding validation --------- Co-authored-by: saad <Saad>
This commit is contained in:
@@ -47,7 +47,7 @@ Global settings affecting generations:
|
||||
|
||||
Ghostwriter follows the output language you request in your prompt. For example, `Ecris en français` should produce a French reply.
|
||||
|
||||
If you want a persistent default language, put it in `Constraints`, for example: `Always respond in French.`
|
||||
If you want a persistent default language, set it in **Settings → Writing Style & Language**.
|
||||
|
||||
`Do-not-use terms` are passed as guidance in the prompt. They are not enforced by a hard post-generation filter, so the model should avoid them but may still use them occasionally.
|
||||
|
||||
@@ -85,7 +85,7 @@ Compatibility thread endpoints remain, but UI behavior is one thread per job.
|
||||
|
||||
- Check model/provider configuration in Settings.
|
||||
- Tighten prompts with explicit output intent (for example, "3 bullet points for recruiter outreach").
|
||||
- If you need a non-English response every time, add that language requirement to `Constraints`.
|
||||
- If you need a non-English response every time, set it in **Settings → Writing Style & Language**.
|
||||
|
||||
### Missing context in answers
|
||||
|
||||
|
||||
@@ -62,7 +62,7 @@ Settings gives you runtime overrides for the key parts of discovery, scoring, ta
|
||||
|
||||
- Toggle visa sponsor badge visibility in job lists/details
|
||||
|
||||
### Writing Style
|
||||
### Writing Style & Language
|
||||
|
||||

|
||||
|
||||
@@ -70,12 +70,41 @@ Settings gives you runtime overrides for the key parts of discovery, scoring, ta
|
||||
- Set global writing defaults:
|
||||
- Tone
|
||||
- Formality
|
||||
- Output language mode
|
||||
- Manual output language
|
||||
- Constraints
|
||||
- Do-not-use terms
|
||||
- These settings apply to Ghostwriter and resume tailoring
|
||||
- `Constraints` can also set a default output language, for example `Always respond in French.`
|
||||
- Use the output language controls as the primary way to choose generated language
|
||||
- Choose how AI output language is resolved:
|
||||
- `Manual`: always use the language you select, such as English, German, French, or Spanish
|
||||
- `Match Resume`: detect the dominant language from your resume/profile content and use that language for generated output
|
||||
- If language detection is unclear or there is not enough resume/profile text, JobOps falls back to English
|
||||
- Resume tailoring keeps the exact source wording for ATS-sensitive resume headlines and job titles, even when the rest of the tailored content is generated in the selected language
|
||||
- Do-not-use terms are model guidance, not a guaranteed output filter
|
||||
|
||||
#### Writing Style & Language workflow
|
||||
|
||||
Use these steps when you want Ghostwriter and resume tailoring to stay in a specific language:
|
||||
|
||||
1. Open **Settings**.
|
||||
2. Expand **Writing Style & Language**.
|
||||
3. Choose a preset if you want a starting point for tone and formality.
|
||||
4. Under the language control, choose one of these modes:
|
||||
- **Manual**: pick the output language directly.
|
||||
- **Match Resume**: let JobOps infer the language from your resume/profile text.
|
||||
5. If you chose **Manual**, select the language you want the AI to use.
|
||||
6. Review the rest of the writing defaults such as tone, formality, constraints, and do-not-use terms.
|
||||
7. Click **Save Changes**.
|
||||
8. Run Ghostwriter or start resume tailoring again so the new language preference is applied to new output.
|
||||
|
||||
Defaults and constraints:
|
||||
|
||||
- `Manual` is best when you always want output in one language regardless of the resume source text.
|
||||
- `Match Resume` is best when your base resume is already written in the language you want to preserve.
|
||||
- If JobOps cannot determine a reliable resume/profile language, it safely uses English.
|
||||
- The generated resume content follows the resolved language, but ATS-sensitive headline and job-title wording stays exact so matching and parsing remain safer.
|
||||
|
||||
### Reactive Resume
|
||||
|
||||

|
||||
@@ -166,6 +195,19 @@ curl -X POST "http://localhost:3001/api/backups"
|
||||
- Some settings apply only to new runs/actions after save.
|
||||
- Re-run scoring/tailoring/pipeline to validate effect.
|
||||
|
||||
### Resume tailoring used English instead of my resume language
|
||||
|
||||
- Open **Settings → Writing Style & Language** and confirm whether the language mode is set to **Manual** or **Match Resume**.
|
||||
- If you want a specific language every time, switch to **Manual** and select that language explicitly.
|
||||
- If you use **Match Resume**, make sure your resume/profile text has enough content in the target language for detection.
|
||||
- If detection is ambiguous, JobOps falls back to English by design.
|
||||
|
||||
### My headline or target job title did not get translated
|
||||
|
||||
- This is expected during resume tailoring.
|
||||
- JobOps intentionally preserves exact headline and job-title wording for ATS safety, even when other tailored sections are generated in another language.
|
||||
- If you need a different headline or target title, change the source resume/profile text first and then re-run tailoring.
|
||||
|
||||
### RxResume controls are disabled
|
||||
|
||||
- Configure RxResume credentials in Environment & Accounts first.
|
||||
@@ -191,9 +233,9 @@ curl -X POST "http://localhost:3001/api/backups"
|
||||
|
||||
## Related pages
|
||||
|
||||
- [Reactive Resume](./reactive-resume)
|
||||
- [Database Backups](../getting-started/database-backups)
|
||||
- [Overview](./overview)
|
||||
- [Orchestrator](./orchestrator)
|
||||
- [Ghostwriter](./ghostwriter)
|
||||
- [Self-Hosting](../getting-started/self-hosting)
|
||||
- [Reactive Resume](/docs/next/features/reactive-resume)
|
||||
- [Database Backups](/docs/next/getting-started/database-backups)
|
||||
- [Overview](/docs/next/features/overview)
|
||||
- [Orchestrator](/docs/next/features/orchestrator)
|
||||
- [Ghostwriter](/docs/next/features/ghostwriter)
|
||||
- [Self-Hosting](/docs/next/getting-started/self-hosting)
|
||||
|
||||
Reference in New Issue
Block a user