Laddro DocsLaddro Docs
SDKs

Python SDK

Python SDK

The official Python SDK for the Laddro Career API.

Installation

pip install laddro-career

Quick Start

from laddro_career import Laddro

client = Laddro(api_key="YOUR_API_KEY")

# List templates
templates = client.templates.list()

# Parse a resume
with open("resume.pdf", "rb") as f:
    resume = client.resumes.parse(f)

# Tailor for a job
result = client.tailor.create(
    resume_id=resume.id,
    position_name="Senior Backend Engineer",
    job_description="We are looking for..."
)

Configuration

client = Laddro(
    api_key="YOUR_API_KEY",
    base_url="https://api.laddro.com",  # default
    timeout=30.0                         # 30s default
)

Templates

templates = client.templates.list()
template = client.templates.get("graphite")

Resumes

# List
resumes = client.resumes.list()

# Get
resume = client.resumes.get("res_abc123")

# Parse
with open("resume.pdf", "rb") as f:
    parsed = client.resumes.parse(f)

# Render to PDF
pdf_bytes = client.resumes.render("res_abc123", template_id="graphite")
with open("resume.pdf", "wb") as f:
    f.write(pdf_bytes)

Tailoring

# Standard
result = client.tailor.create(
    resume_id="res_abc123",
    position_name="Senior Engineer",
    job_description="We are looking for..."
)

# Streaming (async)
stream = await client.tailor.stream(
    resume_id="res_abc123",
    position_name="Senior Engineer",
    job_description="..."
)
async for event in stream:
    print(event.section, event.content)

Cover Letters

# Generate with streaming
stream = await client.cover_letters.stream(
    resume_id="res_abc123",
    position_name="Senior Engineer",
    job_description="..."
)
async for event in stream:
    print(event.content, end="")

# Render to PDF
pdf_bytes = client.cover_letters.render("cl_abc123", template_id="graphite")

Export

pdf_bytes = client.export(
    resume_id="res_abc123",
    template_id="graphite"
)
with open("resume.pdf", "wb") as f:
    f.write(pdf_bytes)

Settings (BYOK)

settings = client.settings.get()

client.settings.set_model(
    provider="anthropic",
    model="claude-haiku-4.5",
    api_key="sk-ant-..."
)

client.settings.reset_model()

Error Handling

from laddro_career import LaddroError

try:
    client.resumes.get("nonexistent")
except LaddroError as e:
    print(e.status)   # 404
    print(e.message)  # "Resume not found"

Async Support

from laddro_career import AsyncLaddro

async_client = AsyncLaddro(api_key="YOUR_API_KEY")

templates = await async_client.templates.list()

stream = await async_client.tailor.stream(
    resume_id="res_abc123",
    position_name="Senior Engineer",
    job_description="..."
)
async for event in stream:
    print(event.content)

Source

github.com/laddro-app/laddro-career-sdk-python

On this page