Skip to main content

A new package that leverages language models to transform structured YAML data into well-formatted resume PDFs. Users provide their resume details in YAML format, and the package extracts key informat

Project description

resume-yaml-builder

PyPI version License: MIT Downloads LinkedIn

resume-yaml-builder is a Python package that turns structured YAML resume data into a clean, professional PDF resume using a language model. Provide your resume details in YAML format, and the package will validate the structure, extract the key information, and generate a well‑formatted PDF—all without requiring design skills.


✨ Features

  • YAML‑driven: Write your resume once in a simple, human‑readable YAML file.
  • LLM powered: Uses a language model (default: ChatLLM7) to verify and format the content.
  • Flexible LLM backend: Supply any LangChain‑compatible LLM (OpenAI, Anthropic, Google, etc.).
  • Zero‑code PDF output: Get a ready‑to‑use PDF resume.

📦 Installation

pip install resume_yaml_builder

The package depends on:

  • langchain-core
  • langchain-llm7 (the default LLM backend)
  • llmatch-messages

These will be installed automatically.


🚀 Quick Start

from resume_yaml_builder import resume_yaml_builder

yaml_input = """
name: Jane Doe
title: Data Scientist
contact:
  email: jane.doe@example.com
  phone: "+1-555-1234"
summary: >
  Passionate data scientist with 5+ years of experience...
experience:
  - company: Acme Corp
    role: Senior Data Scientist
    dates: "2020-2023"
    details: |
      - Built predictive models ...
education:
  - institution: University of Example
    degree: MSc Computer Science
    year: 2019
"""

# Simple call – uses default ChatLLM7 (API key from env var LLM7_API_KEY)
pdf_paths = resume_yaml_builder(user_input=yaml_input)

print(pdf_paths)   # → List of generated PDF file paths

Custom LLM Example (OpenAI)

from langchain_openai import ChatOpenAI
from resume_yaml_builder import resume_yaml_builder

my_llm = ChatOpenAI(model="gpt-4o-mini")
pdf_paths = resume_yaml_builder(user_input=yaml_input, llm=my_llm)

Custom LLM Example (Anthropic)

from langchain_anthropic import ChatAnthropic
from resume_yaml_builder import resume_yaml_builder

anthropic_llm = ChatAnthropic(model="claude-3-haiku-20240307")
pdf_paths = resume_yaml_builder(user_input=yaml_input, llm=anthropic_llm)

Custom LLM Example (Google Gemini)

from langchain_google_genai import ChatGoogleGenerativeAI
from resume_yaml_builder import resume_yaml_builder

gemini_llm = ChatGoogleGenerativeAI(model="gemini-1.5-flash")
pdf_paths = resume_yaml_builder(user_input=yaml_input, llm=gemini_llm)

📋 Function Signature

def resume_yaml_builder(
    user_input: str,
    api_key: Optional[str] = None,
    llm: Optional[BaseChatModel] = None
) -> List[str]:
Parameter Type Description
user_input str YAML‑formatted resume data to be processed.
llm Optional[BaseChatModel] A LangChain LLM instance. If omitted, the function creates a ChatLLM7 instance using the provided api_key or the LLM7_API_KEY environment variable.
api_key Optional[str] API key for ChatLLM7. Falls back to the LLM7_API_KEY environment variable. Required only when using the default LLM.

The function returns a list of file paths to the generated PDF(s). If the LLM call fails, a RuntimeError is raised with an explanatory message.


🔑 API Keys & Rate Limits

  • ChatLLM7 (default) is available on the free tier; its rate limits are sufficient for most development and small‑scale usage.
  • To obtain a free API key, register at https://token.llm7.io/.
  • You can pass the key directly:
pdf_paths = resume_yaml_builder(user_input=yaml_input, api_key="your_llm7_api_key")
  • Or set the environment variable LLM7_API_KEY before running your script.

If you need higher limits on LLM7, upgrade your account on the provider’s website.


🐞 Reporting Issues

Found a bug or have a feature request? Please open an issue on GitHub:

https://github.com/chigwell/resume_yaml_builder/issues


👤 Author

Eugene Evstafev
Email: hi@euegne.plus
GitHub: chigwell


📄 License

This project is licensed under the MIT License. See the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

resume_yaml_builder-2025.12.21142031.tar.gz (5.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file resume_yaml_builder-2025.12.21142031.tar.gz.

File metadata

File hashes

Hashes for resume_yaml_builder-2025.12.21142031.tar.gz
Algorithm Hash digest
SHA256 361f27fa55197cb8a9e66d79494dfebb2b1f3890ed50aa79316c474e1452e1f0
MD5 01986e224781e59588d3d3f3b8f94bb1
BLAKE2b-256 019bbf27557989c887273574b12f6849a25a2123974d80c9f7a868b94142c6a4

See more details on using hashes here.

File details

Details for the file resume_yaml_builder-2025.12.21142031-py3-none-any.whl.

File metadata

File hashes

Hashes for resume_yaml_builder-2025.12.21142031-py3-none-any.whl
Algorithm Hash digest
SHA256 b099a9b4e7583c312f66f7e98c58b37321f347d54642a7cfce6cc53acc5d93fa
MD5 4cad719db90d7ed1662fef3d77c45be9
BLAKE2b-256 001960b6da3d4fa059df32ffd11da692063615a830ac22d8fc72a46f99f1d6f5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page