* initlal commit * Ghostwriter always enabled * rename code * ghostwriter panel * separate component * ui improvements * single thread * copy improvement * dont pop up keyboard shortcuts * markdown renderer * ghostwriter button placement * better UX * ghostwriter copy * meta shortcut * better settings menu * formatting * doocumentation * add tests * race condition * race condition 2 * pass title * more comments * comments * formtting
61 lines
1.9 KiB
Markdown
61 lines
1.9 KiB
Markdown
# Ghostwriter
|
|
|
|
Ghostwriter is the per-job AI chat assistant in JobOps. It is optional to use and is designed for drafting application content with job-specific context already loaded.
|
|
|
|
## What Ghostwriter is for
|
|
|
|
Ghostwriter is not a generic chat box. For each job, it uses:
|
|
|
|
- The current job description and job metadata
|
|
- A reduced snapshot of your resume/profile
|
|
- Your global Ghostwriter writing style settings
|
|
|
|
This makes it useful for:
|
|
|
|
- Drafting role-specific answers
|
|
- Cover letter and outreach drafts
|
|
- Interview prep talking points tied to the current JD
|
|
- Rephrasing content to match your preferred style
|
|
|
|
## Where it appears
|
|
|
|
- Available from job details in `discovered` and `ready` flows
|
|
- Opens as a right-side drawer
|
|
- One persistent conversation per job
|
|
|
|
## Writing style settings impact
|
|
|
|
Ghostwriter settings are global and affect new generations:
|
|
|
|
- `Tone`: adds a tone instruction in the Ghostwriter system prompt
|
|
- `Formality`: adds a formality instruction
|
|
- `Constraints`: appended as explicit writing constraints
|
|
- `Do-not-use terms`: appended as language to avoid
|
|
|
|
Defaults:
|
|
|
|
- Tone: `professional`
|
|
- Formality: `medium`
|
|
- Constraints: empty
|
|
- Do-not-use terms: empty
|
|
|
|
## Context + safety model
|
|
|
|
Ghostwriter context is assembled server-side with size limits and sanitization:
|
|
|
|
- Job snapshot is truncated to fit prompt budget
|
|
- Profile snapshot includes only relevant slices (summary, skills, projects, experience)
|
|
- System prompt enforces read-only assistant behavior
|
|
- Logging stores metadata only (not raw full prompt/response dumps)
|
|
|
|
## API surface (current)
|
|
|
|
Primary per-job endpoints:
|
|
|
|
- `GET /api/jobs/:id/chat/messages`
|
|
- `POST /api/jobs/:id/chat/messages` (supports streaming)
|
|
- `POST /api/jobs/:id/chat/runs/:runId/cancel`
|
|
- `POST /api/jobs/:id/chat/messages/:assistantMessageId/regenerate` (supports streaming)
|
|
|
|
Compatibility endpoints for thread resources remain present, but UI behavior is one conversation per job.
|