Skip to Content
GuidesBuilding AI Agents

Building AI Agents with Laddro

Use the Laddro Career API to build autonomous agents that manage career tasks — from resume tailoring to bulk job applications.

What Agents Can Do

Agent TypeDescription
Resume Tailor AgentTakes a resume and a list of job URLs, tailors the resume for each, exports PDFs
Job Application BotParses a resume, matches to job boards, tailors + generates cover letters for each
Career Coach AgentAnalyzes a resume, suggests improvements, rewrites weak sections
Batch Export AgentRenders a resume across all 22 templates, compares layouts
Interview Prep AgentReads a tailored resume + job description, generates likely interview questions

Architecture

User → Agent (Claude Code / LangChain / Custom) → Laddro Career API ├── Parse resume ├── Tailor for job ├── Generate cover letter └── Export PDF

Your agent calls the API endpoints directly (REST) or uses the MCP server (for Claude-based agents). The API handles AI processing, PDF rendering, and data storage.

Option 1: MCP-Based Agent (Claude Code)

The fastest way. Configure the MCP server and Claude calls the tools automatically.

{ "mcpServers": { "laddro": { "command": "npx", "args": ["-y", "@laddro/career-mcp"], "env": { "LADDRO_API_KEY": "YOUR_API_KEY" } } } }

Then ask Claude:

"Parse my resume from resume.pdf, tailor it for this job posting at https://example.com/senior-engineer, and generate a cover letter. Export both as PDFs using the Graphite template."

Claude will chain the API calls: parse → tailor → generate cover letter → export.

Option 2: REST API Agent (Any Framework)

Build a custom agent using any framework — LangChain, CrewAI, AutoGen, or plain code.

Resume Tailor Agent (Python)

import requests API_KEY = "YOUR_API_KEY" BASE = "https://api.laddro.com/v1" HEADERS = {"x-api-key": API_KEY, "Content-Type": "application/json"} def tailor_for_jobs(resume_id, job_descriptions): results = [] for jd in job_descriptions: # Tailor resume (3 credits) resp = requests.post(f"{BASE}/tailor", headers=HEADERS, json={ "resumeId": resume_id, "jobDescription": jd }) tailored = resp.json() # Generate cover letter (2 credits) resp = requests.post(f"{BASE}/cover-letters/generate", headers=HEADERS, json={ "resumeId": resume_id, "jobDescription": jd }) cover_letter = resp.json() # Export PDF (1 credit) resp = requests.post(f"{BASE}/export", headers=HEADERS, json={ "resumeId": resume_id, "templateId": "graphite" }) results.append({ "job": jd[:50], "tailored": tailored, "coverLetter": cover_letter }) return results

Streaming Agent (TypeScript)

const response = await fetch('https://api.laddro.com/v1/tailor', { method: 'POST', headers: { 'x-api-key': API_KEY, 'Content-Type': 'application/json', 'Accept': 'text/event-stream' // Enable streaming }, body: JSON.stringify({ resumeId, jobDescription }) }) const reader = response.body.getReader() const decoder = new TextDecoder() while (true) { const { done, value } = await reader.read() if (done) break const lines = decoder.decode(value).split('\n') for (const line of lines) { if (line.startsWith('data: ')) { const event = JSON.parse(line.slice(6)) if (event.type === 'done') return // Process each section as it streams in agent.process(event.section, event.content) } } }

API Endpoints for Agents

These are the most useful endpoints for agent workflows:

EndpointCreditsUse Case
POST /v1/resumes/parse2Ingest a resume from PDF/DOCX
POST /v1/tailor3Tailor resume for a specific job
POST /v1/cover-letters/generate2Generate a targeted cover letter
POST /v1/export1Export resume as PDF
PUT /v1/resumes/{id}/render1Render with a specific template
GET /v1/templates0List available templates
GET /v1/resumes0List user’s resumes

Credit Planning for Agents

A typical “apply to one job” workflow:

StepCredits
Parse resume (once)2
Tailor for job3
Generate cover letter2
Export resume PDF1
Export cover letter PDF1
Total per job9 (7 after first parse)

With the free tier (50 credits/month), you can apply to ~7 jobs. Subscribers (200/month) can do ~28. Buy credit packs for higher volume.

Best Practices

  1. Parse once, tailor many — Parse the resume once and reuse the resumeId for all tailoring and cover letter generation.
  2. Use streaming — For user-facing agents, use SSE streaming (Accept: text/event-stream) so users see results in real-time.
  3. Handle 402 errors — Check credit balance before batch operations. The API returns 402 Payment Required when credits run out.
  4. Use BYOK for volume — If you’re building a high-volume agent, use BYOK with your own AI provider key to avoid per-request AI costs.
  5. Rate limit awareness — Public endpoints: 30 req/min. Protected: 100 req/min. Build in backoff for 429 responses.
Last updated on