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
- You send a prompt (and optional PDF, Word, image, or text attachments).
- The server runs a multi-round tool loop (up to 6 rounds), like a desktop coding agent.
- Live SSE status shows rounds and tool names in the chat panel.
- Editor tools mutate the on-screen resume. Full rebuilds use
replace_resume.
Editor tools
| Tool | Use |
|---|---|
replace_resume | Push a complete Career OS resume JSON into the editor. Used for fills, tailoring, and full rebuilds. |
update_header | Patch one header field. Will not rename you unless you asked. |
update_bullet | Rewrite one existing bullet (0-based indices on the current resume). |
add_skill | Add 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
websiteas 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).