AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Cv Building

skill-fakhriaunur-cv-building-cv-building · by fakhriaunur

>

No reviews yet
0 installs
47 views
0.0% view→install

Install

$ agentstack add skill-fakhriaunur-cv-building-cv-building

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-fakhriaunur-cv-building-cv-building)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
5mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Cv Building? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

CV Building Pipeline

End-to-end CV creation: from any input format → semantic accumulation → normalized master doc → quality-gated CV YAML → professional PDFs → strategic interview materials.

Core Philosophy: Premix Storage & Molds

Think of the master doc as premix storage — a neutral, ever-growing repository of your entire career. Think of each CV as a mold — a specific shape poured from the premix for a particular target.

  • Premix (master.md) — infinite potential, neutral, always accumulating. No tailoring lives here.
  • Molds (cv.yaml) — specific tailoring pulled from premix. Quality-gated, industry-appropriate, role-targeted.
  • Zero-assumption input — accepts anything: full biography, draft CV, fractals, LinkedIn paste, conversation. No format required.
  • Sidecar changelog — all additions/changes/removals tracked in cv_files/CHANGELOG.md. No VCS assumed.

Entry Points:

  • /cv-building or "build my CV" → Full pipeline (accumulate → normalize → quality gate → render → package)
  • "just want to add to my master" or "just want to fill/populate the master" → Accumulation only (add to master, update changelog)
  • "remove X from my master" or "take out this role" → Content removal (delete from master, update changelog)
  • "just render my CV" → Quality gate + render only (requires existing master)
  • "prepare interview materials" → Strategic package generation only

Prerequisites:

  • rendercv Python package: uv tool install "rendercv[full]" (or pip install "rendercv[full]")
  • typst compiler (installed with rendercv[full])

Pipeline Overview

Any Input → Semantic Accumulation → Master Normalization → Quality Gate (cv.yaml) → Package
     ↓              ↓                      ↓                      ↓                      ↓
Free-form     Merge with existing     Organized, neutral     Tailored, criteria-    PDFs + strategic
CV/fractals/  master doc              master doc             matched YAML           materials
conversation

Step 1: Semantic Accumulation

Accept any input and merge it into the growing knowledge base.

First-Time Setup

If cv_files/master.md doesn't exist:

  1. Create the cv_files/ directory: mkdir -p cv_files
  2. Initialize cv_files/master.md from the template: [references/master/master.template.md](references/master/master.template.md)
  3. Create cv_files/CHANGELOG.md with a header and first entry
  4. Proceed with accumulation as normal

Multi-Persona (Optional)

If the user needs separate identities (stage name, anon web3 identity, pen name), use suffixed master docs: cv_files/master_.md.

  • cv_files/master_stage-name.md — Actor's public identity
  • cv_files/master_anon.md — Anon web3/DAO resume
  • cv_files/master_real-name.md — Personal identity

Each persona gets its own master and changelog. Cross-persona accumulation is never assumed. If in doubt, default to single master.md.

Input Types (No Assumptions)

| Input | Example | How to Handle | |-------|---------|---------------| | Full biography | "Here's my complete career history..." | Parse all sections into master | | Existing CV | User pastes or uploads a resume | Extract all data points | | Draft tailored CV | User has a CV for a specific role | Extract raw facts, strip tailoring | | Fragments | "I also led a team of 5 at Company X" | Add to existing role or create new | | LinkedIn export | JSON or text from LinkedIn | Parse structured data | | Conversation | User describes achievements in chat | Extract and structure in real-time | | Correction | "Actually my end date was March, not February" | Confirm, update existing, log in changelog |

Accumulation Rules

  1. Never discard — all user-provided data stays in master unless explicitly asked to remove
  2. Always merge — new input supplements existing master, doesn't replace it
  3. Track everything — every addition/change/removal logged in changelog
  4. No completeness assumption — master can be partial, sparse, or empty. Always ready for more.
  5. Explicit removal only — if user says "remove X" or "take out this role", delete from master and log in changelog. Never remove anything without explicit instruction.
  6. Confirm corrections — when the user corrects existing info, acknowledge the change before applying: "Understood, updating [field] from [old value] to [new value]." Replace the value entirely (master is current truth, not a history doc), and log the change in the changelog.
  7. Detect and merge recurring details — when new input overlaps with existing entries (same company, same role, overlapping dates), enrich the existing entry instead of creating a duplicate. Confirm before merging: "This looks like it overlaps with your [Role] at [Company]. Should I add these details to the existing entry, or is this a different position?" This prevents accidental double-entry from typos or fragmented input (merge conflicts).

Probing Questions

When input is vague or brief, use targeted questions to excavate career details. Question bank: [references/master/question-bank.md](references/master/question-bank.md)

Pick the most relevant questions per role rather than asking all of them. Focus on:

  • Context: What would break if you disappeared?
  • Scale: Users, throughput, data volumes
  • Velocity: What manual processes did you automate?
  • Innovation: What did you build/adopt before it was standard?
  • Influence: Who did you mentor? What patterns still stand?

Detect Target Context (When Building CV)

Ask (or detect from user input):

  1. Target role — Specific job title or paste a job description
  2. Industry type — STEM, Business/Product, Arts/Creative, Social Impact
  3. Company type — FAANG, startup, enterprise, nonprofit, agency
  4. Level — Junior, Mid, Senior, Staff, Principal, Manager, Director
  5. Page count — 1 or 2 pages (default: 1)

Step 2: Master Doc Normalizing

Organize accumulated data into cv_files/master.md using the template structure.

Read the template: [references/master/master.template.md](references/master/master.template.md)

What Happens Here

  • Structure only — organize into: Experience, Skills, Education, Projects, Leadership
  • NO tone gating — keep the user's voice and all raw data
  • NO culture fitting — this is the neutral source of truth
  • NO criteria matching — save tailoring for Step 3

Master Doc Sections

  1. Career Goals & Target Context — Role targets, industry, level
  2. Professional Experience — Each role: context, achievements, scale, velocity, innovation, influence
  3. Technical Skills — Mastery / Proficiency / Learning Edge tiers
  4. Education & Certifications — Degrees, honors, certifications
  5. Projects & Open Source — Side projects, OSS, publications
  6. Leadership & Community — Non-work achievements
  7. Awards & Recognition — Industry awards, patents, papers
  8. Creative Portfolio (if applicable) — For artists/creatives

Changelog

Every modification to master.md MUST be logged.

Write to cv_files/CHANGELOG.md:

# Changelog

## YYYY-MM-DD HH:MM
- **Added:** [What was added, e.g., "TechCorp Inc. role with 5 achievements"]
- **Updated:** [What was changed, e.g., "StartupXYZ end date: Feb 2022 → Mar 2022"]
- **Removed:** [What was removed, if any, e.g., "Removed placeholder education entry"]
- **Source:** [Where the info came from, e.g., "user paste", "conversation", "uploaded CV"]

This replaces any versioning system. The changelog is the single source of truth for what changed and when.

Output

Write/update cv_files/master.md and cv_files/CHANGELOG.md.

Important: This document stays neutral. All tailoring happens in Step 3.


Step 3: Quality Gate Processing

This is where the magic happens. Transform master data into cv_files/cv.yaml with industry-appropriate tone, culture fit, and role-specific criteria.

Read tone guide first: [references/build/tone-guide.md](references/build/tone-guide.md)

3a: Determine Gating Level

Based on the target industry, apply the appropriate tone level:

| Industry | Gating Level | Key Characteristics | |----------|-------------|-------------------| | STEM (engineering, research, data) | Level 1 — Strict | Anti-cringe, metrics-heavy, technical precision | | Business (product, consulting, finance) | Level 2 — Moderate | Business impact focus, storytelling OK, professional warmth | | Arts/Creative (design, media, entertainment) | Level 3 — Flexible | Personality allowed, portfolio emphasis, mission-driven |

See [references/build/tone-guide.md](references/build/tone-guide.md) for detailed gating rules per level.

3b: Craft CV Content

Headline (one-line identity under name):

  • 3-4 pipe-separated positioning phrases tailored to target role
  • Note: RenderCV uses headline field (not label)
  • Example: Client-Facing AI Delivery | Cross-Functional Engineering Leadership | Systems Thinking

Sections — select and prioritize from master based on target:

  1. What I Bring (0-3 bullet entries) — Top value propositions with bold headers
  • For STEM: Technical achievements with metrics
  • For Arts: Creative achievements with impact
  • For Business: Revenue/growth metrics
  1. Experience — Most impactful roles for this target, each with:
  • company, position, location, startdate, enddate
  • highlights: metrics-driven bullets (quantity depends on page count)
  1. Education — Degrees, honors, relevant highlights
  1. Additional sections as needed (Projects, Skills, Beyond Work)

3c: Bullet Density Rules (Level 1 - STEM)

Every highlight must contain:

  1. A number that matters (%, time, money, users, scale)
  2. Specific technology (never "database" — always "PostgreSQL with read replicas")
  3. Business impact (why would a CEO care?)
  4. Temporal context when impressive ("early 2023, before industry standard")

For Level 2-3: Adapt density — numbers still matter but narrative structure is equally valued.

Quality bar reference: See [references/build/before-after-example.md](references/build/before-after-example.md) for concrete before/after comparisons of CV bullets.

3d: Write cv.yaml (The Mold)

Each mold (cv.yaml) is suffixed by target to allow multiple simultaneous versions from the same master.

Naming convention: cv_files/cv__.yaml

  • ` — lowercase, hyphenated company name (e.g., stripe, plaid`)
  • ` — lowercase, hyphenated role (e.g., senior-backend, staff-engineer`)
  • Optional variant suffix: _v2, _faang, etc. if multiple versions for same target

Examples:

  • cv_files/cv_stripe_senior-backend.yaml
  • cv_files/cv_plaid_staff-engineer.yaml
  • cv_files/cv_stripe_senior-backend_v2.yaml (alternate version)

Write the file following the exact RenderCV schema.

Schema Reference: See [references/build/rendercv-schema.json](references/build/rendercv-schema.json) or the human-readable [cv-yaml-schema.md](references/build/cv-yaml-schema.md) for the complete 4-section model (cv, design, locale, settings) and all 9 entry types.

Complete Examples: See [references/molds/](references/molds/) for fully renderable sample CVs and design files from the official rendercv-skill.

YAML Structure:

cv:
  name: "Full Name"
  headline: "Positioning Phrase 1 | Phrase 2 | Phrase 3"
  location: "City, State/Country"
  email: user@example.com
  phone: "+1 555 123 4567"
  social_networks:
    - network: LinkedIn
      username: handle

  sections:
    What I Bring:
      - bullet: "**Bold Header:** Description with metrics."

    Experience:
      - company: Company Name
        position: Role Title
        location: City, Country
        start_date: 2023-07  # YYYY-MM format
        end_date: present    # or YYYY-MM
        highlights:
          - "**Category:** Achievement with numbers and tech."

    Education:
      - institution: University Name
        area: "Field (with honors)"
        degree: MEng
        start_date: 2011
        end_date: 2016

Key Rules:

  • Dates: Use start_date/end_date with YYYY-MM or YYYY. Use end_date: present for current roles. date (free-form) and start_date/end_date are mutually exclusive. If only start_date is given, end_date defaults to present.
  • Markdown: **bold**, *italic*, [link](url) are supported in strings. Block-level markdown (headers, lists, code blocks) is not rendered. Raw Typst commands and math ($$f(x)$$) also pass through.
  • Quotes: ALWAYS quote strings containing a colon (:). This is the most common cause of invalid YAML. When in doubt, quote.
  • Phone: E.164 international format only (+15551234567). Never invent — only include if user provides it.
  • Bullet characters: Only these are valid: , , , -, , , , , . Do not use en-dash (), >, or *.
  • Section titles: snake_case keys auto-capitalize (work_experience → "Work Experience"). Keys with spaces or uppercase are used as-is.
  • Publication authors: Use *Name* (single asterisks) to highlight the CV owner in author lists.
  • Nested highlights: Sub-bullets are supported via indentation under highlights:.
  • No design in cv.yaml: Colors, fonts, margins, and layout are set during rendering via --design.theme or a separate design.yaml.
  • No footer: Default to show_footer: false in any design override. Rationale: footers waste precious space on 1-page CVs, repeat info already in the header, and make documents look like generated reports instead of polished artifacts.

Write cv_files/cv__.yaml.

For complete RenderCV schema, design patterns, CLI reference, and locale support: Install the official rendercv-skill — this skill's RenderCV integration is aligned to it for correctness.


Step 4: Package Outputting

Generate all output artifacts.

4a: Render PDFs

Available built-in themes (RenderCV v2.8+): | Theme | Style | |-------|-------| | classic | Blue accents, partial line dividers | | harvard | Traditional academic, black text, centered | | engineeringresumes | Maroon accents, no dividers, compact | | engineeringclassic | Teal accents, full line dividers | | sb2nov | Black text, full dividers, minimal | | moderncv | Slate accents, moderncv-style headers |

For complete theme design options, see the rendercv-skill reference.

To render a single theme:

rendercv render cv_files/cv__.yaml --design.theme classic
# Output: cv___classic.pdf in root dir

Useful CLI options:

# Watch mode: auto-re-render on file change
rendercv render cv_files/cv__.yaml --watch

# Custom output directory
rendercv render cv_files/cv__.yaml --output-folder ./output

# Override fields without editing YAML
rendercv render cv_files/cv__.yaml --design.theme moderncv --cv.name "Jane Doe"

# Separate design file (reuse across multiple molds)
rendercv render cv_files/cv__.yaml --design cv_files/design.yaml

To render multiple themes:

python references/scripts/render_cv.py --cv-yaml cv_files/cv__.yaml --themes classic,moderncv --output-dir .

To render all themes:

python references/scripts/render_cv.py --cv-yaml cv_files/cv__.yaml --all --output-dir .

Output PDFs go to the root dir (the directory where the skill is invoked):

  • cv___classic.pdf
  • cv___moderncv.pdf
  • etc.

4b: Validate Page Count

Quick check: qpdf --show-npages (if available). Otherwise open the PDF.

Read each generated PDF to check page count.

  • If pages > target: Remove lowest-impact bullets first. Shorten verbose highlights. Remove least-relevant role if needed. Re-render.
  • **If pages _/`.

All materials are tailored to the same target role and draw from the master

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.