---
title: "AI Agent Tools"
description: "Understand the tools available to the AI Agent workspace and how they affect resume drafts."
---

The AI Agent workspace can use a curated set of tools while it chats with you. You do not call these tools directly; the agent chooses them when your request needs resume data, supported provider web context, attachments, questions, or a resume patch.

## Tool activity in chat

Tool activity appears inside the conversation. Some activity is collapsed by default so the chat stays readable.

Applied resume patches are shown as a small inline **Patch applied** item. Open it to inspect the raw JSON payload.

<Frame caption="Patch details and tool activity in the AI Agent chat">
  <img
    src="/images/guides/ai-agent-tools/screenshot-1.webp"
    alt="AI Agent chat showing an applied patch with raw JSON details"
  />
</Frame>

## Available tools

| Tool | What it does | Example request |
| --- | --- | --- |
| `read_resume` | Reads the current AI draft and gives the agent the resume data it can safely edit. | "What are the weakest parts of this resume?" |
| `web_search` | Uses the selected provider's native web search when that provider/model supports it. | "Research this company and adjust the summary for its product area." |
| `read_attachment` | Reads extracted text from attached plain text, Markdown, or JSON files. Other supported attachments, such as images or PDFs, are passed to the model when the selected provider can use them. | "Use the attached notes to update the keywords." |
| `ask_user_question` | Shows a question card with answer choices when the agent needs your decision. | "Ask me before changing the career narrative." |
| `apply_resume_patch` | Applies a JSON Patch to the AI draft and stores a rollback snapshot. | "Change the visible name to Amruth Pillai." |

## Resume patches

Resume patches are rooted at the resume data object. For example, the visible resume name is patched at `/basics/name`.

When a patch is applied:

- the AI draft updates immediately;
- the raw JSON Patch is available from the **Patch applied** details;
- a snapshot is stored so the draft can be restored to the state before that patch;
- the resume preview refreshes to show the updated draft.

Restoring an older patch rolls back that patch and any patches applied after it. If the resume changed after the latest agent patch, restore or apply can fail with a version conflict. In that case, ask the agent to retry from the latest draft.

## Web access

Live web research is handled only by the selected AI provider's native web search tool. When the provider/model supports it, the agent can use `web_search` for current company, industry, role, or URL-based context.

When the provider/model does not support native web search, the agent still works for normal resume editing. If you ask it to browse, search the web, fetch a URL, or use current online context, it should tell you that live web research is unavailable with the selected provider/model and ask you to paste or attach the relevant content instead.

For self-hosted deployments:

- app-owned URL crawling is not available;
- web access depends on the selected provider/model supporting native web search;
- unsafe/private AI provider base URLs require `FLAG_ALLOW_UNSAFE_AI_BASE_URL=true`, which should only be used on trusted self-hosted deployments.

## Attachments

Attach files from the chat composer when the agent needs extra context, such as:

- a job description PDF;
- a portfolio brief;
- a screenshot;
- a plain text note with constraints.

Self-hosted deployments need S3-compatible storage for private agent attachments. Local filesystem storage rejects private objects.

## Good prompts for tool use

Use direct prompts that tell the agent what context to use and how cautious to be:

- "Research this role, identify the most important keywords, and apply a conservative patch."
- "Read the attached job description and ask me before changing anything outside the summary."
- "Compare my current projects against this company page and suggest only truthful wording."
- "Apply a patch for the visible resume name, then show me what changed."

## When tools are unavailable

Tool use can be limited by the selected provider, deployment configuration, or thread state.

- A deleted provider makes the thread read-only; a disabled or untested provider blocks new agent runs until it is enabled and tested again.
- A deleted working resume makes the thread read-only.
- Archived threads cannot receive new messages.
- Live web research is unavailable when the selected provider/model does not support native web search.
- Attachments may fail if private object storage is not configured.
