[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M74YEX348VFDH9FG9C00WKG3":3,"skill-same:01M74YEX348VFDH9FG9C00WKG3":56},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":28,"commitSha":29,"skillDirectory":30,"forksCount":31,"repositoryHtmlUrl":32,"repositoryHomepageUrl":6,"ownerHtmlUrl":33,"ownerBlogUrl":34,"ownerDescription":35,"updatedAt":36,"install":37,"resources":49},"01M74YEX348VFDH9FG9C00WKG3","tailor-resume",null,"Produce a job-specific, ATS-optimized resume from the user's master profile and a target job — reordering, reframing, and surfacing the most relevant real experience and keywords. Enforces a content rubric (bullet shape, length, parallel grammar, metric coverage), then renders a polished PDF by default (via render-resume) and visually QAs it. Never fabricates.","jain777\u002Fjobclaw-skills","jain777","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F57412580?v=4","01M74YCRYXSRMZFKERV6JS8M5D","Jeevesh Jain","01M74YCRZK4C3NNAEDWG5W8YMP",7,"MIT","https:\u002F\u002Fgithub.com\u002Fjain777\u002Fjobclaw-skills\u002Fblob\u002Fmain\u002Fskills\u002Ftailor-resume\u002FSKILL.md",[],[],"2026-11-11 17:31:23",false,"---\nname: tailor-resume\ndescription: >\n  Produce a job-specific, ATS-optimized resume from the user's master profile and a target\n  job — reordering, reframing, and surfacing the most relevant real experience and keywords.\n  Enforces a content rubric (bullet shape, length, parallel grammar, metric coverage), then\n  renders a polished PDF by default (via render-resume) and visually QAs it. Never fabricates.\nwhen_to_use: >\n  Use when the user wants a resume tailored to a specific job, usually after score-fit\n  recommends applying. Needs profile\u002Fmaster-profile.md and a job description.\nuser-invocable: true\nallowed-tools: Read, Write, Bash\n---\n\n# tailor-resume\n\nTurn the master profile into a resume aimed at one job — maximizing relevance and ATS keyword match **without inventing anything**.\n\n## Inputs\n1. Profile: read `profile\u002Fmaster-profile.md` (frontmatter + body, plus any `[VERIFY]` flags — don't rely on unverified facts). If missing → `\u002Fbuild-profile`.\n2. Job: pasted description, URL, or an entry from `jobs\u002Ffound-\u003Cdate>.json`. **Known-info gate (RULES §6):** if no job is given inline, read `jobs\u002Fcurrent.json` — do not re-ask for the JD when score-fit\u002Ffind-jobs already captured it.\n3. (Optional) `scores\u002F\u003Cjob-id>.score.json` from `score-fit` — reuse its `missing_keywords` list.\n\n## The one hard rule\n**Never fabricate.** You may select, reorder, reframe, and re-emphasize the user's *real* experience and use the job's vocabulary for things they actually did. You may **not** invent roles, titles, dates, metrics, skills, or tools they don't have. If a must-have is genuinely absent, leave it out and flag it to the user — don't paper over it.\n\n## Read but never quote: the context block\nThe profile has a `context:` block with `career_goal` and `additional_info`. **Read both for signal** — use them to bias which experience strand to lead with in the Summary and which skills to elevate. **Never quote, paraphrase, or echo their contents** into the Summary, bullets, or anywhere else the candidate would send out. Do not write phrases like \"My career goal is…\" — that signal stays internal.\n\n## Method\n\n0. **Load region conventions.** Read the target region's pack in [`..\u002F..\u002Fknowledge\u002Fregions\u002F`](..\u002F..\u002Fknowledge\u002Fregions\u002F) and follow its resume rules — length, what to include\u002Fomit (e.g., US: omit photo\u002FDOB, no salary; IN: 1–2 pages, include notice period, drop photo\u002FDOB by default), spelling variant, and date format. These govern the structure below.\n1. **Read the job** for must-have keywords, responsibilities, seniority, and the language it uses.\n2. **Select & order** the profile's most relevant experience, skills, and projects for *this* role; drop or shorten the irrelevant. Use `context.career_goal` as a tie-breaker on what to lead with.\n3. **Rewrite bullets** under the rubric below.\n4. **Surface keywords** naturally into summary\u002Fskills\u002Fbullets — enough to pass ATS screening, never keyword-stuffed.\n5. **Honor constraints\u002Fvoice** from the profile Notes (tone, hard limits).\n6. **Self-check** the draft against the rubric and anti-patterns before writing.\n\n## Bullet & section rubric (self-check before writing)\n\n1. **One page if \u003C10 yrs, two pages max** (defer to region pack). If the draft exceeds, trim oldest-irrelevant bullets first, then longest bullets — never delete a whole role.\n2. **Bullet shape:** `Verb + What + Measurable impact (or scoped scale)`. Strong past-tense verb at start; metric at end. Choose the opening verb from [reference\u002Faction-verbs.md](reference\u002Faction-verbs.md) (Harvard list), matched to the *kind* of work (build \u002F improve \u002F lead \u002F analyze \u002F create).\n3. **No first-person pronouns** (`I`, `my`, `we`). Implied subject only.\n4. **Banned filler verbs:** *helped, assisted, worked on, was involved in, responsible for, participated in, contributed to.* Replace with the actual action or cut.\n5. **Parallel grammar in a list:** same tense across all bullets in a role (past for past roles; pick past *or* present for current and stick).\n6. **No buzzword-only bullets:** *synergized, leveraged, utilized, spearheaded* without a quantified outcome → rewrite or cut. *Leveraged* → *used*.\n7. **Each role: 3–6 bullets** (up to 8 for the most recent\u002Fmost-relevant role), most-relevant-to-target first.\n8. **≥60% of bullets must contain a number** (count \u002F percent \u002F time \u002F money \u002F scale). If less, **prompt the user for missing metrics before writing** — never invent.\n9. **Keyword surfacing is integrated, not appended:** a JD skill enters Summary + Skills + ≥1 truthful bullet. No bullet exists solely to namedrop.\n10. **Default section order:** Name+Contact → Summary (≤3 lines) → Experience → Skills → Education → Projects (if relevant) → Achievements (only if load-bearing). Region pack may override.\n11. **Summary is ≤3 lines, ≤55 words.** Pattern: *`[Role identity w\u002F target keywords]. [Two flagship achievements w\u002F metrics]. [What you bring to \u003Ctarget-role-type>]`*. Never name the target company.\n12. **Skills grouped, not flat:** 3–5 named groups (per track preset); 4–8 items per group; ordered most-relevant first.\n13. **Dates obey region pack** (US: `Mon YYYY` or `Mon YYYY – Present`; IN: `DD\u002FMM\u002FYYYY` or `Mon YYYY`). Consistent across all roles.\n14. **Vary verbs across the whole page** — no two consecutive bullets start with the same verb, and avoid reusing any verb more than twice (scannability + perceived breadth). Pull from the full [action-verbs.md](reference\u002Faction-verbs.md) range rather than recycling *led\u002Fmanaged\u002Fbuilt*.\n15. **Honor `context.career_goal` and `Notes \u002F voice`:** bias Summary toward stated goal direction; respect declared tone; never override hard constraints.\n\n## Anti-patterns (do not ship)\n\n- **The duties list** — job-description-as-resume.\n- **\"We did this\"** plural where the candidate's individual contribution is unclear.\n- **Smart quotes \u002F em-dashes** in the markdown (rendercv\u002FTypst render Unicode fine, but keep the source clean and consistent).\n- **Skills-section keyword spam** (>10 per group, generic \"Microsoft Office, Excel\" for senior roles).\n- **Tools-without-outcomes** (\"Used Jira, Figma, Notion\" as a bullet).\n- **Naming the target company in Summary** (\"Excited to join Stripe to…\").\n\n## Output — produce the PDF by default\n\nWrite the resume content, then render it. Default output is a **sendable PDF**, not just markdown.\n\n### 1. Write the content files to `resumes\u002F`\n\n- **`resumes\u002F\u003Ccompany>-\u003Crole-slug>.md`** — human-readable tailored markdown for review (sections per rule 10).\n- **`resumes\u002F\u003Ccompany>-\u003Crole-slug>.tailor.json`** — structured sidecar:\n   ```jsonc\n   {\n     \"source_profile_path\": \"profile\u002Fmaster-profile.md\",\n     \"target_job\": { \"company\": \"...\", \"role\": \"...\", \"url\": \"...\" },\n     \"theme_hint\": \"engineeringresumes | classic | sb2nov | moderncv | ...\",  \u002F\u002F optional rendercv theme\n     \"contact_order\": [\"email\",\"phone\",\"linkedin\",\"github\",\"portfolio\"],\n     \"contact_hidden\": [\"twitter\"],                      \u002F\u002F optional, per-job\n     \"basics_overrides\": { \"label\": \"\u003Crole-targeted subtitle>\", \"summary\": \"\u003Ctailored summary>\" },\n     \"content\": { \"work\": [ ... ], \"skills\": [ ... ], \"projects\": [ ... ], \"education\": [ ... ] }\n   }\n   ```\n- **`resumes\u002F\u003Ccompany>-\u003Crole-slug>.json`** — the **JSON-Resume intermediate** render-resume consumes. Assemble it from the profile + the tailored content (see [`..\u002Frender-resume\u002Freference\u002Fjson-resume-schema.md`](..\u002Frender-resume\u002Freference\u002Fjson-resume-schema.md)):\n  - `basics`: name, `label`\u002F`summary` from `basics_overrides`, email, phone, location, and **`profiles[]` = every link in the master profile's `links:` block** (`{network, url}`, including `links.other`) so no link is lost; portfolio → `basics.url`.\n  - `work` \u002F `skills` \u002F `projects` \u002F `education` from `content` (tailored).\n  - `meta`: `{ track, region, paper, theme }` (theme = `theme_hint` or `engineeringresumes`).\n  - **Never re-derive links by parsing the markdown** — read them from `links:`.\n\n### 2. Render the PDF (default) + visual QA\n\n**Preflight first (so the dependency isn't a surprise mid-flow):** run `python3 scripts\u002Fdoctor.py`. If\nit reports **rendercv MISSING**, tell the user up front before rendering — *\"the PDF needs rendercv (one-time\ninstall): `python3 -m venv skills\u002Frender-resume\u002F.venv && skills\u002Frender-resume\u002F.venv\u002Fbin\u002Fpip install\n\\\"rendercv[full]\\\"` — install now, or I'll hand you the markdown + content files and you render later?\"* —\nand only `pip install` on their go-ahead. With rendercv present, render:\n\n```\npython3 skills\u002Frender-resume\u002Fscripts\u002Frender.py --data resumes\u002F\u003Cslug>.json --out resumes\u002F\u003Cslug>.pdf [--theme \u003Ctheme>]\n```\n(`render.py` auto-runs the deterministic page\u002Ffill QA gate and prints an `ATS-safe: yes\u002Fno` line — relay the warning if a styled theme was used.) Then run the **`review-render`** vision-QA loop on the PDF (render → screenshot → rubric → one fix → re-render, bounded) — the resume isn't \"done\" until it passes. If `rendercv` isn't installed, render.py writes the `.rendercv.yaml` and prints install guidance (exit 0) — tell the user to install it (README) or run `\u002Frender-resume` once set up; the content files are still produced.\n\n### 3. Report\n- A **2–4 line rationale**: what you emphasized, what you cut, which keywords you added.\n- Any **honesty flags**: must-haves the user genuinely lacks.\n- Any **rubric \u002F QA warnings** and the **PDF path**.\n\n## Next steps\nResume PDF ready (`resumes\u002F\u003Cslug>.pdf`). Next: `\u002Fwrite-cover-letter` for this job, then submit — or `\u002Fapply-to-job` to assemble the cover letter + form answers in one pass. No emoji.\n","# tailor-resume\n\nTurn the master profile into a resume aimed at one job — maximizing relevance and ATS keyword match **without inventing anything**.\n\n## Inputs\n1. Profile: read `profile\u002Fmaster-profile.md` (frontmatter + body, plus any `[VERIFY]` flags — don't rely on unverified facts). If missing → `\u002Fbuild-profile`.\n2. Job: pasted description, URL, or an entry from `jobs\u002Ffound-\u003Cdate>.json`. **Known-info gate (RULES §6):** if no job is given inline, read `jobs\u002Fcurrent.json` — do not re-ask for the JD when score-fit\u002Ffind-jobs already captured it.\n3. (Optional) `scores\u002F\u003Cjob-id>.score.json` from `score-fit` — reuse its `missing_keywords` list.\n\n## The one hard rule\n**Never fabricate.** You may select, reorder, reframe, and re-emphasize the user's *real* experience and use the job's vocabulary for things they actually did. You may **not** invent roles, titles, dates, metrics, skills, or tools they don't have. If a must-have is genuinely absent, leave it out and flag it to the user — don't paper over it.\n\n## Read but never quote: the context block\nThe profile has a `context:` block with `career_goal` and `additional_info`. **Read both for signal** — use them to bias which experience strand to lead with in the Summary and which skills to elevate. **Never quote, paraphrase, or echo their contents** into the Summary, bullets, or anywhere else the candidate would send out. Do not write phrases like \"My career goal is…\" — that signal stays internal.\n\n## Method\n\n0. **Load region conventions.** Read the target region's pack in [`..\u002F..\u002Fknowledge\u002Fregions\u002F`](..\u002F..\u002Fknowledge\u002Fregions\u002F) and follow its resume rules — length, what to include\u002Fomit (e.g., US: omit photo\u002FDOB, no salary; IN: 1–2 pages, include notice period, drop photo\u002FDOB by default), spelling variant, and date format. These govern the structure below.\n1. **Read the job** for must-have keywords, responsibilities, seniority, and the language it uses.\n2. **Select & order** the profile's most relevant experience, skills, and projects for *this* role; drop or shorten the irrelevant. Use `context.career_goal` as a tie-breaker on what to lead with.\n3. **Rewrite bullets** under the rubric below.\n4. **Surface keywords** naturally into summary\u002Fskills\u002Fbullets — enough to pass ATS screening, never keyword-stuffed.\n5. **Honor constraints\u002Fvoice** from the profile Notes (tone, hard limits).\n6. **Self-check** the draft against the rubric and anti-patterns before writing.\n\n## Bullet & section rubric (self-check before writing)\n\n1. **One page if \u003C10 yrs, two pages max** (defer to region pack). If the draft exceeds, trim oldest-irrelevant bullets first, then longest bullets — never delete a whole role.\n2. **Bullet shape:** `Verb + What + Measurable impact (or scoped scale)`. Strong past-tense verb at start; metric at end. Choose the opening verb from [reference\u002Faction-verbs.md](reference\u002Faction-verbs.md) (Harvard list), matched to the *kind* of work (build \u002F improve \u002F lead \u002F analyze \u002F create).\n3. **No first-person pronouns** (`I`, `my`, `we`). Implied subject only.\n4. **Banned filler verbs:** *helped, assisted, worked on, was involved in, responsible for, participated in, contributed to.* Replace with the actual action or cut.\n5. **Parallel grammar in a list:** same tense across all bullets in a role (past for past roles; pick past *or* present for current and stick).\n6. **No buzzword-only bullets:** *synergized, leveraged, utilized, spearheaded* without a quantified outcome → rewrite or cut. *Leveraged* → *used*.\n7. **Each role: 3–6 bullets** (up to 8 for the most recent\u002Fmost-relevant role), most-relevant-to-target first.\n8. **≥60% of bullets must contain a number** (count \u002F percent \u002F time \u002F money \u002F scale). If less, **prompt the user for missing metrics before writing** — never invent.\n9. **Keyword surfacing is integrated, not appended:** a JD skill enters Summary + Skills + ≥1 truthful bullet. No bullet exists solely to namedrop.\n10. **Default section order:** Name+Contact → Summary (≤3 lines) → Experience → Skills → Education → Projects (if relevant) → Achievements (only if load-bearing). Region pack may override.\n11. **Summary is ≤3 lines, ≤55 words.** Pattern: *`[Role identity w\u002F target keywords]. [Two flagship achievements w\u002F metrics]. [What you bring to \u003Ctarget-role-type>]`*. Never name the target company.\n12. **Skills grouped, not flat:** 3–5 named groups (per track preset); 4–8 items per group; ordered most-relevant first.\n13. **Dates obey region pack** (US: `Mon YYYY` or `Mon YYYY – Present`; IN: `DD\u002FMM\u002FYYYY` or `Mon YYYY`). Consistent across all roles.\n14. **Vary verbs across the whole page** — no two consecutive bullets start with the same verb, and avoid reusing any verb more than twice (scannability + perceived breadth). Pull from the full [action-verbs.md](reference\u002Faction-verbs.md) range rather than recycling *led\u002Fmanaged\u002Fbuilt*.\n15. **Honor `context.career_goal` and `Notes \u002F voice`:** bias Summary toward stated goal direction; respect declared tone; never override hard constraints.\n\n## Anti-patterns (do not ship)\n\n- **The duties list** — job-description-as-resume.\n- **\"We did this\"** plural where the candidate's individual contribution is unclear.\n- **Smart quotes \u002F em-dashes** in the markdown (rendercv\u002FTypst render Unicode fine, but keep the source clean and consistent).\n- **Skills-section keyword spam** (>10 per group, generic \"Microsoft Office, Excel\" for senior roles).\n- **Tools-without-outcomes** (\"Used Jira, Figma, Notion\" as a bullet).\n- **Naming the target company in Summary** (\"Excited to join Stripe to…\").\n\n## Output — produce the PDF by default\n\nWrite the resume content, then render it. Default output is a **sendable PDF**, not just markdown.\n\n### 1. Write the content files to `resumes\u002F`\n\n- **`resumes\u002F\u003Ccompany>-\u003Crole-slug>.md`** — human-readable tailored markdown for review (sections per rule 10).\n- **`resumes\u002F\u003Ccompany>-\u003Crole-slug>.tailor.json`** — structured sidecar:\n   ```jsonc\n   {\n     \"source_profile_path\": \"profile\u002Fmaster-profile.md\",\n     \"target_job\": { \"company\": \"...\", \"role\": \"...\", \"url\": \"...\" },\n     \"theme_hint\": \"engineeringresumes | classic | sb2nov | moderncv | ...\",  \u002F\u002F optional rendercv theme\n     \"contact_order\": [\"email\",\"phone\",\"linkedin\",\"github\",\"portfolio\"],\n     \"contact_hidden\": [\"twitter\"],                      \u002F\u002F optional, per-job\n     \"basics_overrides\": { \"label\": \"\u003Crole-targeted subtitle>\", \"summary\": \"\u003Ctailored summary>\" },\n     \"content\": { \"work\": [ ... ], \"skills\": [ ... ], \"projects\": [ ... ], \"education\": [ ... ] }\n   }\n   ```\n- **`resumes\u002F\u003Ccompany>-\u003Crole-slug>.json`** — the **JSON-Resume intermediate** render-resume consumes. Assemble it from the profile + the tailored content (see [`..\u002Frender-resume\u002Freference\u002Fjson-resume-schema.md`](..\u002Frender-resume\u002Freference\u002Fjson-resume-schema.md)):\n  - `basics`: name, `label`\u002F`summary` from `basics_overrides`, email, phone, location, and **`profiles[]` = every link in the master profile's `links:` block** (`{network, url}`, including `links.other`) so no link is lost; portfolio → `basics.url`.\n  - `work` \u002F `skills` \u002F `projects` \u002F `education` from `content` (tailored).\n  - `meta`: `{ track, region, paper, theme }` (theme = `theme_hint` or `engineeringresumes`).\n  - **Never re-derive links by parsing the markdown** — read them from `links:`.\n\n### 2. Render the PDF (default) + visual QA\n\n**Preflight first (so the dependency isn't a surprise mid-flow):** run `python3 scripts\u002Fdoctor.py`. If\nit reports **rendercv MISSING**, tell the user up front before rendering — *\"the PDF needs rendercv (one-time\ninstall): `python3 -m venv skills\u002Frender-resume\u002F.venv && skills\u002Frender-resume\u002F.venv\u002Fbin\u002Fpip install\n\\\"rendercv[full]\\\"` — install now, or I'll hand you the markdown + content files and you render later?\"* —\nand only `pip install` on their go-ahead. With rendercv present, render:\n\n```\npython3 skills\u002Frender-resume\u002Fscripts\u002Frender.py --data resumes\u002F\u003Cslug>.json --out resumes\u002F\u003Cslug>.pdf [--theme \u003Ctheme>]\n```\n(`render.py` auto-runs the deterministic page\u002Ffill QA gate and prints an `ATS-safe: yes\u002Fno` line — relay the warning if a styled theme was used.) Then run the **`review-render`** vision-QA loop on the PDF (render → screenshot → rubric → one fix → re-render, bounded) — the resume isn't \"done\" until it passes. If `rendercv` isn't installed, render.py writes the `.rendercv.yaml` and prints install guidance (exit 0) — tell the user to install it (README) or run `\u002Frender-resume` once set up; the content files are still produced.\n\n### 3. Report\n- A **2–4 line rationale**: what you emphasized, what you cut, which keywords you added.\n- Any **honesty flags**: must-haves the user genuinely lacks.\n- Any **rubric \u002F QA warnings** and the **PDF path**.\n\n## Next steps\nResume PDF ready (`resumes\u002F\u003Cslug>.pdf`). Next: `\u002Fwrite-cover-letter` for this job, then submit — or `\u002Fapply-to-job` to assemble the cover letter + form answers in one pass. No emoji.\n",{"name":5,"description":24,"when_to_use":25,"allowed-tools":26,"user-invocable":27},"Produce a job-specific, ATS-optimized resume from the user's master profile and a target job — reordering, reframing, and surfacing the most relevant real experience and keywords. Enforces a content rubric (bullet shape, length, parallel grammar, metric coverage), then renders a polished PDF by default (via render-resume) and visually QAs it. Never fabricates.\n","Use when the user wants a resume tailored to a specific job, usually after score-fit recommends applying. Needs profile\u002Fmaster-profile.md and a job description.\n","Read, Write, Bash",true,"main","68211e04d37044c49c3a91f3a29ce9647fada95f","skills\u002Ftailor-resume",1,"https:\u002F\u002Fgithub.com\u002Fjain777\u002Fjobclaw-skills","https:\u002F\u002Fgithub.com\u002Fjain777","https:\u002F\u002Fjeevesh.me\u002F","Product Manager | Builder | Claude Coder","2026-06-09 13:47:19",{"source":8,"skillName":5,"commands":38,"prompt":48,"zipAvailable":27},[39,42,45],{"tool":40,"command":41},"npx","npx skills add jain777\u002Fjobclaw-skills --skill tailor-resume",{"tool":43,"command":44},"bunx","bunx skills add jain777\u002Fjobclaw-skills --skill tailor-resume",{"tool":46,"command":47},"pnpm","pnpm dlx skills add jain777\u002Fjobclaw-skills --skill tailor-resume","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fjain777\u002Fjobclaw-skills\u002Fblob\u002Fmain\u002Fskills\u002Ftailor-resume\u002FSKILL.md",[50],{"path":51,"resourceType":52,"resourceTypeDesc":53,"sizeBytes":54,"sourceHtmlUrl":55},"reference\u002Faction-verbs.md","REFERENCE","参考文档",3862,"https:\u002F\u002Fgithub.com\u002Fjain777\u002Fjobclaw-skills\u002Fblob\u002Fmain\u002Fskills\u002Ftailor-resume\u002Freference\u002Faction-verbs.md",[57,64,71,78,85,92],{"skillNo":58,"name":59,"nameZh":6,"description":60,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":61,"categories":62,"keywords":63,"publishedAt":19},"01M74YF759275CXY2ZWZBA1PD0","write-outreach","Write a short, profile-grounded cold outreach message to a recruiter, hiring manager, or potential referrer — LinkedIn DM or email — with one clear CTA and no flattery.","https:\u002F\u002Fgithub.com\u002Fjain777\u002Fjobclaw-skills\u002Fblob\u002Fmain\u002Fskills\u002Fwrite-outreach\u002FSKILL.md",[],[],{"skillNo":65,"name":66,"nameZh":6,"description":67,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":68,"categories":69,"keywords":70,"publishedAt":19},"01M74YF3WPDQ9D2PJ00XWH29EA","write-cover-letter","Produce a job-specific, profile-grounded cover letter in markdown — ≤ 350 words, ≤ 1 page, three paragraphs (hook → two quantified proofs → fit close). Reuses keywords from a prior tailor-resume sidecar when present. Writes a JSON sidecar reserved for a future \u002Frender-resume --kind cover-letter (rendercv).","https:\u002F\u002Fgithub.com\u002Fjain777\u002Fjobclaw-skills\u002Fblob\u002Fmain\u002Fskills\u002Fwrite-cover-letter\u002FSKILL.md",[],[],{"skillNo":72,"name":73,"nameZh":6,"description":74,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":75,"categories":76,"keywords":77,"publishedAt":19},"01M74YF106JXZQ3DMDMVR722YH","triage-inbox","Classify a recruiting email (or a batch) into one of the 10 canonical email classes, extract structured fields (company \u002F role \u002F dates \u002F links \u002F asks \u002F deadline \u002F sentiment), and suggest the next action. Writes inbox\u002Ftriage-\u003CYYYY-MM-DD>.json — consumed by infer-status and draft-reply.","https:\u002F\u002Fgithub.com\u002Fjain777\u002Fjobclaw-skills\u002Fblob\u002Fmain\u002Fskills\u002Ftriage-inbox\u002FSKILL.md",[],[],{"skillNo":79,"name":80,"nameZh":6,"description":81,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":82,"categories":83,"keywords":84,"publishedAt":19},"01M74YESFCVSEG3C0AB8QXVJBR","score-fit","Score how well the user's master profile fits a specific job — an ATS-style match percentage with matched\u002Fmissing keywords, strengths, gaps, and a clear apply-or-skip recommendation. Optionally writes a structured sidecar that tailor-resume consumes.","https:\u002F\u002Fgithub.com\u002Fjain777\u002Fjobclaw-skills\u002Fblob\u002Fmain\u002Fskills\u002Fscore-fit\u002FSKILL.md",[],[],{"skillNo":86,"name":87,"nameZh":6,"description":88,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":89,"categories":90,"keywords":91,"publishedAt":19},"01M74YEP224H6Z9Q2K16YZ47K8","review-render","Visually QA a rendered resume PDF and auto-fix layout\u002Fcontent defects in a bounded loop: render → screenshot → deterministic gate → vision rubric → apply one fix → re-render, until it passes or hits a pass cap. Catches widows, under-fill, overflow, orphaned headers, and imbalance that text-only logic can't see.","https:\u002F\u002Fgithub.com\u002Fjain777\u002Fjobclaw-skills\u002Fblob\u002Fmain\u002Fskills\u002Freview-render\u002FSKILL.md",[],[],{"skillNo":93,"name":94,"nameZh":6,"description":95,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":96,"categories":97,"keywords":98,"publishedAt":19},"01M74YEHQPVC64D5BS57BY2EYB","research-company","Build a structured company × role brief — compensation, day-to-day, career growth, recent news, community sentiment (Reddit \u002F Blind \u002F Glassdoor), red flags, and a \"fit for this user\" view. Heavy reasoning — runs forked. Writes companies\u002F\u003Cslug>.{md,json} sidecars consumed by prep-interview and coach-negotiation.","https:\u002F\u002Fgithub.com\u002Fjain777\u002Fjobclaw-skills\u002Fblob\u002Fmain\u002Fskills\u002Fresearch-company\u002FSKILL.md",[],[]]