diff --git a/README.md b/README.md index 4ee4f05..18b5d98 100644 --- a/README.md +++ b/README.md @@ -113,6 +113,14 @@ careercoach-plugin/ down fill-in starters — `Resume/Experience.md` (your verified source of truth), `Agent/story-bank.md`, reviewer + Humanize rules, an improvements log — and never clobbers your edits. Fill in `Experience.md` first; everything the packet flow writes is anchored to it. +- **Native Word (`.docx`) export.** Set **Settings → Career Coach → Document format = `docx`** and the CV + + cover letter are produced as real, editable **Word files** (saved as versioned, downloadable artifacts) + instead of HTML→PDF. **This path builds the document by running Python (`python-docx`), so it requires:** + the [cowork](https://github.com/protoLabsAI/cowork-plugin) plugin (its `docx` skill), the **`execute_code`** + plugin **enabled** — ⚠️ **`execute_code` lets the agent run arbitrary code; enabling it is a deliberate + trust decision** — the `artifact` plugin, and a protoAgent **v0.107.0+** host (which bundles the doc + libraries). If any is missing, the coach **falls back to HTML→PDF and tells you what's absent**. Leave + `render_format` on `html` if you'd rather not enable code execution. - **Sharper job search.** Add a [RapidAPI **JSearch**](https://rapidapi.com/letscrape-6bRBa3QguO5/api/jsearch) key under **Settings → Career Coach → Job-source API key** for Google-for-Jobs breadth. Without a key, search uses the keyless **Remotive** remote-jobs board — so it works out of the box. @@ -131,8 +139,9 @@ careercoach-plugin/ - **Native `.docx` too (`render_format: docx`).** Set it and the CV + cover letter are produced as real, editable **Word files** via [cowork](https://github.com/protoLabsAI/cowork-plugin)'s `docx` skill, then saved with `save_file_artifact` as **versioned, downloadable** artifacts (ADR 0092, - protoAgent v0.107.0+) — what most ATS forms actually want. Needs cowork + `execute_code` + a - v0.107.0 host; falls back to HTML→PDF otherwise. A soft pairing: no hard dependency. + protoAgent v0.107.0+) — what most ATS forms actually want. It runs `python-docx`, so it needs cowork + + the **`execute_code`** plugin enabled (which runs code — a trust decision) + a v0.107.0 host; falls back + to HTML→PDF (and says what's missing) otherwise. A soft pairing: no hard dependency, `html` stays default. - **A coach, not an autopilot.** `career-strategy` + `interview-coach` are human-in-the-loop by design; the `apply` workflow is the opt-in "do it for me" path. - **Gated vs. autonomous, on purpose.** The full application exists in two shapes: the `apply` diff --git a/protoagent.plugin.yaml b/protoagent.plugin.yaml index 1b9a644..1be93d4 100644 --- a/protoagent.plugin.yaml +++ b/protoagent.plugin.yaml @@ -1,6 +1,6 @@ id: careercoach name: Career Coach -version: 0.4.0 +version: 0.4.1 description: >- Your career coach and job-hunt copilot. Talk through strategy and positioning, run mock interviews with honest feedback, get a straight critique of your CV, diff --git a/skills/job-application-assistant/SKILL.md b/skills/job-application-assistant/SKILL.md index 67178ee..92877d0 100644 --- a/skills/job-application-assistant/SKILL.md +++ b/skills/job-application-assistant/SKILL.md @@ -45,7 +45,10 @@ that step (progressive disclosure), don't inline them all up front: honesty test in `writing-style.md`). - Render per the operator's `render_format` (default `html` → the artifact plugin → PDF; `docx` → a real Word file via cowork's `docx` skill → `save_file_artifact`; `latex` → moderncv - `.tex`). See `cv-guide.md` for each path. Inspect the rendered result; iterate until it's clean. + `.tex`). See `cv-guide.md` for each path. **For `docx`, the cowork `docx` skill and the + `execute_code` plugin must be enabled (it runs `python-docx`); if either is off, tell the user + exactly what to enable and fall back to `html` — don't silently switch.** Inspect the rendered + result; iterate until it's clean. ### Step 3 — Write the cover letter (on request) - Read `cover-letter-guide.md` and `writing-style.md`. diff --git a/skills/job-application-assistant/cv-guide.md b/skills/job-application-assistant/cv-guide.md index a87e5b0..fdf6e6b 100644 --- a/skills/job-application-assistant/cv-guide.md +++ b/skills/job-application-assistant/cv-guide.md @@ -18,8 +18,9 @@ Follow `writing-style.md` for tone and the honesty test **before** writing any b following the content discipline in this guide + `writing-style.md`, save it to disk, then register it with **`save_file_artifact(path, title=" — CV — ")`** so it lands in the Artifact panel as a **versioned, downloadable** file with a text preview. Needs the cowork plugin - + `execute_code` + a protoAgent **v0.107.0+** host (which bundles the doc stack). If any is - missing, **fall back to `html` and tell the user** — never silently skip. Save a revised CV as a + + the **`execute_code`** plugin (which runs the `python-docx` code — enabling it is a code-execution + trust decision) + a protoAgent **v0.107.0+** host (which bundles the doc stack). If any is missing, + **name exactly what's absent and fall back to `html`** — never silently skip. Save a revised CV as a new version by passing the same `artifact_id`. - **`latex`** — produce a moderncv `.tex` (see the appendix). Use only if the user asks for it. diff --git a/skills/role-packet/SKILL.md b/skills/role-packet/SKILL.md index 810c9b1..d5a549e 100644 --- a/skills/role-packet/SKILL.md +++ b/skills/role-packet/SKILL.md @@ -73,7 +73,8 @@ your proof from `Experience.md` / the story bank, with gaps and stretches flagge write the **`tailored-resume`**, drawing only on what the evidence map supports. Surface any stretch line for the user to keep, soften, or drop. Render per `render_format` if the user wants a file — `html` → PDF, or `docx` → a real Word file saved as a versioned download-artifact (see `cv-guide.md`); -the `.docx` is what most ATS forms want. +the `.docx` is what most ATS forms want. **`docx` needs the cowork `docx` skill + the `execute_code` +plugin enabled (it runs code); if either is off, say so and fall back to `html`.** ### Phase 4 — Application skills / ATS entry · *gate: confirm* Read `ats-skills-entry.md`. Produce the **`skills-entry`** list — the discrete skills an ATS form asks