Pre-flight Checklist
🔍 Affected Area
Other
💡 Problem Statement
The existing skill catalog (branch-pr, chained-pr, comment-writer, issue-creation, work-unit-commits, cognitive-doc-design) covers development workflows. None of them cover the job search itself.
Every time a community member is actively looking for a job, they have to manually write cover letters, adapt their resume to each JD, research companies, draft cold outreach messages, and figure out salary ranges. These are repetitive, templatable tasks that an AI agent with the right skill could handle in minutes.
📦 Proposed Solution
A new skill: skills/job-application/ with 6 modes:
- Resume adaptation — ATS-optimized CV in .md, .docx, .pdf (1 page, clickable links, no ATS-breaking symbols)
- Cover letter — 3-paragraph personalized letter
- Cold outreach — 4-line LinkedIn recruiter message
- Company research — 5-point brief with interview questions
- Why this company — short paragraph for application forms
- Salary reference — USD range, what to ask for, talking points
How it works:
- User puts PDFs (LinkedIn export, current CV) in assets/
- Tells the AI "generate my profile"
- AI runs pdftotext, analyzes content, fills profile-template.md, asks user to classify skills into 3 proficiency tiers (Working / Familiar / Learning) to prevent skill inflation
- From then on, user pastes a JD and asks for any mode
- The skill reads profile.md as the primary data source
Key features:
- ATS-optimized: CV text avoids #, -, /, %, +, *. Only | as separator. Numbers written out ("5 plus years", "30 percent"). Full month names with space separators.
- No skill inflation: 3-tier proficiency classification. Only "Working proficiency" in CV Skills section. "Learning" skills never listed.
- Interactive mode: user reviews CV section by section with AI rationale per section
- Anti-AI voice: short sentences, no em dashes, no comma-chained prose
- Profile auto-generation from PDFs (no manual filling)
Proposed structure:
skills/job-application/
SKILL.md # Skill contract (71 lines, within body budget)
assets/
profile-template.md # Empty template (AI fills from user's PDFs)
setup-guide.md # Profile auto-generation flow + proficiency tiers
playbooks.md # Rules for each of the 6 modes
ats-rules.md # ATS symbol replacement table
make_docx.py # Markdown to .docx converter with hyperlinks
Frontmatter:
name: gentle-ai-job-application
description: "Trigger: cover letter, cold outreach, adapt resume, adaptar cv, company research, salary, job application, aplicar. Generate adapted resumes, cover letters, outreach, company briefs, salary reference."
license: Apache-2.0
Dependencies (system packages, not npm/pip services):
- pdftotext (poppler-utils)
- libreoffice (headless)
- python-docx
- pdfinfo (poppler-utils)
🔄 Alternatives Considered
-
Separate skills per mode (one for cover letters, one for resume adaptation, etc.)
Rejected: all modes share the same input (JD + profile.md) and the same setup flow. Splitting would duplicate the profile reading logic and force the user to run setup 6 times.
-
Manual profile filling instead of PDF auto-generation
Rejected: manual filling is tedious and error-prone. LinkedIn PDF exports contain structured data (roles, dates, skills, education) that pdftotext can extract reliably. Auto-generation with user confirmation of proficiency tiers is faster and more accurate.
-
External SaaS integration (LinkedIn API, resume parsing APIs)
Rejected: adds external dependencies and auth complexity. pdftotext + the AI's own analysis is sufficient and keeps the skill self-contained with no API keys or accounts needed.
📎 Additional Context
The skill is complete and tested. I have used it to generate adapted CVs, cover letters, company research briefs, why-company paragraphs, and salary references for real job applications.
Size note: the full skill is approximately 809 lines across all files (SKILL.md 71, setup-guide.md 70, ats-rules.md 40, profile-template.md 104, playbooks.md 285, make_docx.py 175). The SKILL.md body itself is within the 1000-token budget per the skill style guide. The total line count exceeds 400, so I would request size:exception on the PR since the skill cannot be meaningfully split without losing coherence (playbooks reference rules in SKILL.md, make_docx.py is used by resume adaptation, setup-guide is referenced by the activation contract).
Skill audited against the skill-creator style guide: description is 201 chars (< 250 limit), sections follow the required order (Activation Contract, Hard Rules, Decision Gates, Execution Steps, Output Contract, References), body is within token budget, supporting files in assets/.
Pre-flight Checklist
status:approved🔍 Affected Area
Other
💡 Problem Statement
The existing skill catalog (branch-pr, chained-pr, comment-writer, issue-creation, work-unit-commits, cognitive-doc-design) covers development workflows. None of them cover the job search itself.
Every time a community member is actively looking for a job, they have to manually write cover letters, adapt their resume to each JD, research companies, draft cold outreach messages, and figure out salary ranges. These are repetitive, templatable tasks that an AI agent with the right skill could handle in minutes.
📦 Proposed Solution
A new skill:
skills/job-application/with 6 modes:How it works:
Key features:
Proposed structure:
skills/job-application/
SKILL.md # Skill contract (71 lines, within body budget)
assets/
profile-template.md # Empty template (AI fills from user's PDFs)
setup-guide.md # Profile auto-generation flow + proficiency tiers
playbooks.md # Rules for each of the 6 modes
ats-rules.md # ATS symbol replacement table
make_docx.py # Markdown to .docx converter with hyperlinks
Frontmatter:
name: gentle-ai-job-application
description: "Trigger: cover letter, cold outreach, adapt resume, adaptar cv, company research, salary, job application, aplicar. Generate adapted resumes, cover letters, outreach, company briefs, salary reference."
license: Apache-2.0
Dependencies (system packages, not npm/pip services):
🔄 Alternatives Considered
Separate skills per mode (one for cover letters, one for resume adaptation, etc.)
Rejected: all modes share the same input (JD + profile.md) and the same setup flow. Splitting would duplicate the profile reading logic and force the user to run setup 6 times.
Manual profile filling instead of PDF auto-generation
Rejected: manual filling is tedious and error-prone. LinkedIn PDF exports contain structured data (roles, dates, skills, education) that pdftotext can extract reliably. Auto-generation with user confirmation of proficiency tiers is faster and more accurate.
External SaaS integration (LinkedIn API, resume parsing APIs)
Rejected: adds external dependencies and auth complexity. pdftotext + the AI's own analysis is sufficient and keeps the skill self-contained with no API keys or accounts needed.
📎 Additional Context
The skill is complete and tested. I have used it to generate adapted CVs, cover letters, company research briefs, why-company paragraphs, and salary references for real job applications.
Size note: the full skill is approximately 809 lines across all files (SKILL.md 71, setup-guide.md 70, ats-rules.md 40, profile-template.md 104, playbooks.md 285, make_docx.py 175). The SKILL.md body itself is within the 1000-token budget per the skill style guide. The total line count exceeds 400, so I would request size:exception on the PR since the skill cannot be meaningfully split without losing coherence (playbooks reference rules in SKILL.md, make_docx.py is used by resume adaptation, setup-guide is referenced by the activation contract).
Skill audited against the skill-creator style guide: description is 201 chars (< 250 limit), sections follow the required order (Activation Contract, Hard Rules, Decision Gates, Execution Steps, Output Contract, References), body is within token budget, supporting files in assets/.