In-app agent

THEA

THEA is the Career OS copilot in the resume editor (and a job-hunting copilot on /discovery). It is not the remote MCP connector. THEA calls /api/copilot with your editor state and optional file uploads.

How the loop works

  1. You send a prompt (and optional PDF, Word, image, or text attachments).
  2. The server runs a multi-round tool loop (up to 6 rounds), like a desktop coding agent.
  3. Live SSE status shows rounds and tool names in the chat panel.
  4. Editor tools mutate the on-screen resume. Full rebuilds use replace_resume.

Editor tools

ToolUse
replace_resumePush a complete Career OS resume JSON into the editor. Used for fills, tailoring, and full rebuilds.
update_headerPatch one header field. Will not rename you unless you asked.
update_bulletRewrite one existing bullet (0-based indices on the current resume).
add_skillAdd one skills category row (label / value).

Resume JSON it must emit

THEA is instructed to emit the editor schema: header plus a top-level sections array. Do not nest education/experience/projects under their own object keys. See Resume JSON.

  • LinkedIn and GitHub are slugs, not full URLs.
  • Portfolio is a domain or URL. Do not send website as a header key.
  • One-page budget: short bullets, prefer 1–2 jobs and 1–2 projects.

Models

  • OpenRouter Auto — default fast routing.
  • OpenCode Zen — named free/fast models (MiMo, Hy3, and others listed in the model picker).

Prompts, replies, thinking traces, and resume snapshots can be logged per user in Supabase for the signed-in account.

Job copilot

On Job Discovery, a separate THEA tab helps with search, ATS-oriented tailoring, and the auto-applier workflow. That hub covers 11+ boards (Greenhouse, Lever, LinkedIn, Wellfound, RemoteOK, We Work Remotely, YC, Indeed, Glassdoor, Dice, and related deep-search URLs).