agentleFS
eklavyagoyaleklavyagoyal/wingman/skills/tailor-cv/SKILL.md

tailor-cv

Skill0 starsChanged 2 months agoMITView on GitHub

Tailor your CV for a job - a tabellarischer Lebenslauf in German, or a CV in English

7 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

9 rules. 0 are common, 6 are distinctive, and 3 are very specific to this project.

  • 0

    Common

    Most of the 7 edited versions we read keep these.

  • 6

    Distinctive

    This author's own choices. Worth a look.

  • 3

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Read language.md. If it does not exist, run the language decision now.

    line 32
  2. Distinctive:

    Vary the structure: Not every bullet the same shape.

    line 78
  3. Distinctive:

    Read the first three bullets aloud.

    line 81
  4. Very specific:

    Only what is in resume/ or profile.md.

    line 85
  5. Distinctive:

    Never assume business model, company stage, or revenue type unless stated.

    line 87
  6. Distinctive:

    Never widen scope: "revenue targets" is not "P&L ownership".

    line 88
  7. Distinctive:

    Never add a cross-functional partner, tool, or responsibility that is not documented.

    line 89
  8. Distinctive:

    Never change titles, dates, or employers: Never close a gap by moving a date.

    line 90
  9. Very specific:

    If mappe reported a two-page Lebenslauf with a short orphan page, that is a required iteration, not optional polish.

    line 120

“Common” is measured: kept by at least 6 in 10 of the 7 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Tailor CV

Documents: shared/references/de-documents.md · Language: shared/references/language-decision.md · Templates: shared/templates/lebenslauf.md

Produces a tabellarischer Lebenslauf or an English CV, depending on language.md. These are genuinely different documents — not translations of each other.

Lebenslauf (DE)CV (EN)
StructureTabular, dates against contentNarrative bullets
Summary sectionNoneYes, 2–3 sentences
GradesIncluded (Abschlussnote: 1,3)Omitted
Language levelsRequired, CEFROptional
PhotoPer profile preferenceNo
GapsLabelled explicitlyUsually glossed
ReferencesZeugnisse attached"Available on request"
SignatureOrt, Datum, UnterschriftNone

Step 0: Prerequisites

Per shared/references/prerequisites.md: CV and profile both required. Without a profile there is nothing to write from but the CV text, and the result is thin and full of guesses that the user then corrects for the next twenty applications. Say that and run /wingman:setup interview instead.

Step 1: Job and language

Get the posting (a URL, last, or ask). If no evaluation.md exists, run /wingman:evaluate first — tailoring against an unscored posting means tailoring toward requirements nobody checked.

Read language.md. If it does not exist, run the language decision now. Never guess the language, and never default to English because it is easier.

If the decision is Both, produce both documents — resume-de.md and resume-en.md. Write the German one first, since it is the harder constraint, then write the English one natively from the profile. Never translate one into the other: a translated Lebenslauf reads translated, which defeats the point of offering both. mappe will then render two PDFs.

Step 2: Match analysis

Before writing:

  1. Level — is this the candidate's level, a stretch, or a step down? Frame accordingly.
  2. Requirement mapping — for each requirement, the strongest sourced evidence from the profile. Direct, analogous, or transferable — and label which.
  3. Gaps — where there is no match, find genuinely adjacent experience. Never invent one.
  4. Keywords — the posting's own terminology, to mirror where it is honest.

Step 3a: Lebenslauf (German)

Follow shared/templates/lebenslauf.md exactly.

  • Persönliche Daten — from profile. Photo, Geburtsdatum, Staatsangehörigkeit only per the stored preferences. Never Familienstand, never religion.
  • Berufserfahrung — reverse chronological, MM/JJJJ format. Bullets reordered so the two most relevant to this posting come first. 2–5 per role, fewer for older roles. Company descriptor on one line — „Muster AG, Stuttgart (Zahlungsabwicklung, ca. 250 Mitarbeitende)", not a sentence about the business.
  • Ausbildung — include the grade. Add the German equivalent of a foreign degree if anabin gives one.
  • Kenntnisse — Sprachen with CEFR exactly as recorded in the profile, then technical skills ordered by what the ad asks for. Three or four rows, not one per technology group: Sprachen · Technologien · Arbeitsweise/Zertifikate. Certificates live here, not in a section of their own, unless there are enough to justify one.
  • Lücken — labelled with the stored explanation, verbatim, so it never contradicts another document.
  • Ort, Datum, Unterschrift — include for conservative employers, omit for startups.

German writing rules: natural Tech-Deutsch, never translated-sounding. Short sentences, active verbs, avoid Passiv. Keep established technical terms in English — Stack, Deployment, Pipeline, Embedding. No em dashes.

Length: under roughly ten years of experience, aim for one page. Two is the hard maximum, and a two-page Lebenslauf must be two full pages — one page and a three-row sliver reads as careless. If it runs over, cut in this order: company descriptors to one line, Kenntnisse rows merged, a redundant bullet from the most recent role (anything the Anschreiben already carries), then bullets from the oldest role. Never a role itself.

Save as resume-de.md.

Step 3b: CV (English)

Standard tailored CV: 2–3 sentence summary positioned for this role, experience with bullets reordered and rewritten, skills led by what the job asks for.

Save as resume-en.md.

Step 4: Writing quality (mandatory, before showing anything)

Go line by line. This pass is not optional — it is where the output stops sounding like a language model.

  • One idea per bullet. More than one comma-joined clause → split it.
  • No filler: "demonstrating ability to", "showcasing expertise in", "leveraging", "utilizing", "spanning", "with a track record of".
  • No stacked adjectives: "cross-functional, data-driven, customer-centric" → pick the one that matters and give evidence.
  • No compound noun piles: "AI-driven product opportunity identification" → say what you did.
  • No em dashes anywhere.
  • No preamble clauses: "Leveraging deep expertise in X, led..." → "Led...".
  • Vary the structure. Not every bullet the same shape.
  • Any bullet over two lines is doing too much. Split it.

Read the first three bullets aloud. If a sentence takes more than one breath, shorten it.

Step 5: Accuracy (non-negotiable)

  • Only what is in resume/ or profile.md. Nothing else.
  • Never inflate the language level. It is checked in the first phone call.
  • Never assume business model, company stage, or revenue type unless stated.
  • Never widen scope: "revenue targets" is not "P&L ownership".
  • Never add a cross-functional partner, tool, or responsibility that is not documented.
  • Never change titles, dates, or employers. Never close a gap by moving a date.
  • Ambiguous → conservative wording, or omit.

Reframing means reordering and rewording what exists. It never means adding what does not.

Step 6: Present

Save to the job folder. Show the document plus:

[Lebenslauf / CV] for [Role] at [Company] — in [Deutsch / English]

Why this language: [one line from language.md]

Changes:
- [what was reordered and why]
- [what was added from your profile that wasn't on the original CV]
- [what was cut as irrelevant to this role]

Gaps I could not cover: [requirement] — [what adjacent evidence was used instead]

Naming the uncovered gaps matters more than hiding them: it is what the interview will ask about.

Step 7: Iterate

Show the document and stop. Add one line on what you would change if pushed — a bullet you were unsure of, an ordering call that could go either way — so the candidate knows where the soft spots are without being asked to rule on them.

Do not open a picker asking whether it is alright: that is not a decision with options, and per shared/references/interaction.md it makes a finished document into another thing to answer. If they do want a change, options become real and a structured choice earns its place then.

If mappe reported a two-page Lebenslauf with a short orphan page, that is a required iteration, not optional polish. Cut per the order above until it is one full page or two full pages.

Every factual correction goes into profile.md immediately. That is what stops the same mistake recurring on the next twenty applications.


Response Format

  1. Document — the full CV or Lebenslauf
  2. Tailoring Notes — changes, and the uncovered gaps
  3. What's Next — /wingman:anschreiben for the letter

Permissions

{ "permissions": { "allow": [
  "Read(~/.wingman/**)", "Write(~/.wingman/**)", "Edit(~/.wingman/**)",
  "mcp__claude-in-chrome__*"
] } }

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.