Skip to main content

strands-rendercv

PyPI version Python 3.10+ License

CV generation with Strands Agents + RenderCV

Generate beautiful, typographically perfect CVs from YAML. AI reads your docs, validates schema, outputs PDF.


Installation

pip install strands-rendercv

# macOS: Install LaTeX for PDF generation
brew install --cask mactex-no-gui

Quick Start

from strands import Agent
from strands_rendercv import render_cv

agent = Agent(tools=[render_cv])

# Create template → Edit → Generate
agent.tool.render_cv(action="create_template")
agent.tool.render_cv(action="validate", input_file="John_Doe_CV.yaml")
agent.tool.render_cv(action="render", input_file="John_Doe_CV.yaml")

AI-Powered Generation

agent("""
Read my LinkedIn from ~/linkedin.md and work log from ~/work-log.md.
Generate CV for ... Engineer at ....
Focus on: distributed systems, leadership, open source.
Use 'engineeringresumes' theme.
""")

What happens:

  1. AI reads your docs
  2. Extracts + structures data as YAML
  3. Validates schema
  4. Generates PDF + HTML + Markdown

Examples

5 production-ready templates in examples/:

  • Senior SWE - Full-stack, distributed systems (YAML)
  • ML Researcher - PhD, publications (YAML)
  • Product Designer - UX/UI, design systems (YAML)
  • Startup Founder - Exits, fundraising (YAML)
  • DevRel Engineer - Community, content (YAML)
agent.tool.render_cv(action="render", input_file="examples/senior_swe_cv.yaml")

Actions

Action Description
create_template Generate sample YAML
validate Check schema before render
render Generate PDF + HTML + MD
list_themes Show available themes

YAML Structure

cv:
  name: Jane Doe  # Only required field
  headline: Senior Software Engineer
  email: jane@example.com
  
  social_networks:
    - network: GitHub
      username: janedoe
  
  sections:
    work_experience:
      - company: Tech Corp
        position: Staff Engineer
        start_date: 2020-01
        end_date: present
        highlights:
          - "Built distributed tracing system (1B+ events/day)"
          - "Reduced P99 latency by 80%"
    
    education:
      - institution: Stanford
        degree: MS
        area: Computer Science
        start_date: 2016-09
        end_date: 2018-06

design:
  theme: engineeringresumes  # or classic, sb2nov, moderncv

Advanced

Override fields:

render_cv(
    action="render",
    input_file="cv.yaml",
    overrides='{"cv.email": "work@company.com"}'
)

PDF only (faster):

render_cv(
    action="render",
    input_file="cv.yaml",
    dont_generate_png=True,
    dont_generate_html=True
)

Multi-target generation:

for company in ["google", "meta", "openai"]:
    agent(f"Customize my CV for {company}, output to ./{company}/")

Common Issues

Validation fails:

  • Use YYYY-MM or YYYY-MM-DD or present for dates
  • Phone format: +1 234 567 8900 (optional)
  • Social networks: LinkedIn, GitHub, X (not Twitter)
  • Page size: us-letter (not letterpaper)

Empty CV:

  • Sections must be under cv.sections, not at root
  • Avoid special chars: #, %

Citation

@software{strands_rendercv2026,
  author = {Cagatay Cali},
  title = {strands-rendercv: AI-Powered Professional CV Generation},
  year = {2026},
  url = {https://github.com/cagataycali/strands-rendercv},
  note = {Built with Strands Agents and RenderCV}
}

Built with: Strands Agents | RenderCV

License: MIT | Issues & PRs

Metadata

Release files for strands-rendercv 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for strands-rendercv 0.1.0
File Size Uploaded Provenance
strands_rendercv-0.1.0.tar.gz 31.9 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for strands-rendercv 0.1.0
File Interpreter ABI Platform
strands_rendercv-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 41.2 kB

Release files / strands_rendercv-0.1.0.tar.gz

Download URL strands_rendercv-0.1.0.tar.gz
Size 31.9 kB
Tags Source
SHA-256 checksum
How to use checksums
960a70564a08932a04d6a2a5aeedaa83effa87bf5f11e4913a23bfe8e8a8e0c9
BLAKE2b-256 checksum
How to use checksums
c0899bf7957d783e1d06a7e7b4c4cf3cedc65a315ebe525530b4191d4219a019
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.14

Release files / strands_rendercv-0.1.0-py3-none-any.whl

Download URL strands_rendercv-0.1.0-py3-none-any.whl
Size 9.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
09b1b8bed5208e272dd0a7f77cbb1b87b2f04d6ff7a12b7b1f8ae2d4fbe2affe
BLAKE2b-256 checksum
How to use checksums
e4a8e439e6a3ccd4d92fc1343a66d0e2a2fa17650b4b34d5c0147f5ca16dcbb6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.14

Security for strands-rendercv 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page