docs/guides/using-ai-agent.mdx
The AI Agent workspace is where you work with an AI assistant on a resume draft. It keeps the conversation, the tool activity, and a read-only resume preview in one full-screen view.
<Info> Agent threads edit an AI draft copy of your resume. Your original resume is not changed when you start from an existing resume. </Info>You need at least one AI provider that is tested and enabled in Dashboard → Settings → Integrations. For setup, see Using artificial intelligence.
If you self-host Reactive Resume, the agent workspace also requires the server-side agent configuration described in Self-hosting with Docker.
From the dashboard sidebar, click Agents.
The agent page always shows your thread sidebar. Use it to continue an existing thread, or click New thread to start another one.
You can also open the agent from the builder dock. When you do this, the current resume is preselected in the new thread setup screen.
<Tip> Press `Cmd/Ctrl+K` from anywhere in the app to open the command palette. Select **Threads** to search existing threads by title, resume, or provider, or run **New Thread** to jump straight to the setup screen. </Tip><Frame caption="Starting an AI Agent thread">
</Frame>
The desktop workspace is split into three panes:
On smaller screens, the workspace uses tabs/sheets so you can switch between threads, chat, and preview without losing the active conversation.
The agent works best with concrete instructions:
https://example.com/job"You can attach files or images from the composer. The agent reads uploaded attachments when they are relevant to your request.
For supplied text, paste the content directly into the chat. Plain text, Markdown, and JSON attachments are available to the agent as extracted text. Images and supported files such as PDFs are passed directly to the selected provider when it can use them. If an attachment format is unsupported by the selected provider, paste the relevant text instead.
<Note> Text input is supported. Voice input is not supported in the agent workspace yet. </Note>Use this controlled workflow to test tailoring without relying on live web research:
<Steps> <Step title="Set up an AI provider"> In **Dashboard → Settings → Integrations**, configure a supported AI provider, test it, and make sure it is enabled. Then return to **Agents**. </Step> <Step title="Open a sample resume draft"> Start a new thread and select a resume containing sample experience data. The agent creates an isolated AI draft, so the source resume remains unchanged. </Step> <Step title="Supply the target role"> Paste this sample job description into the chat:```text
Target role: backend engineer. Required: TypeScript and PostgreSQL.
```
Then ask: "Tailor the existing experience for this role. Do not invent qualifications or experience."
This workflow also works when the selected provider/model has no live web search. Supplying the job description gives the agent the context it needs for ordinary resume editing.
By default, the agent applies resume patches immediately to the AI draft. Turn on Review edits in the thread menu if you want to approve or deny patches before they are applied. Applied patches appear in chat as a small Patch applied line.
Open the line to inspect the raw JSON Patch and use Restore if you want to roll the draft back to the state before that patch. Restoring an older patch also rolls back patches applied after it.
<Warning> AI-generated changes can still be inaccurate. Review the draft in the preview or builder before exporting or sharing it. </Warning>If the agent needs a decision, it may show a question card with recommended answers. Click the answer you want to send it back to the agent.
That happens when your instructions are ambiguous, job context is missing, or a change depends on your preference.
The resume pane is read-only. Use the toolbar to:
Zoom settings are remembered across refreshes.
Threads are ordered by the newest message. Use the thread menu to archive or delete a thread.
Threads can also become read-only if the working resume is deleted, the selected provider is deleted, or the thread is archived. If a provider is disabled or no longer tested, re-enable and test it before sending new messages.