Crear agentes de IA con Laddro
Crear agentes de IA con Laddro
Usa la Laddro Career API para crear agentes autonomos que gestionen tareas de carrera, desde la personalizacion de curriculos hasta solicitudes masivas de empleo.
Que pueden hacer los agentes
| Tipo de agente | Descripcion |
|---|---|
| Agente de personalizacion | Toma un curriculo y una lista de URLs de empleo, personaliza para cada uno y exporta PDFs |
| Bot de solicitudes | Analiza un curriculo, busca en bolsas de empleo, personaliza y genera cartas para cada oferta |
| Agente coach de carrera | Analiza un curriculo, sugiere mejoras y reescribe secciones debiles |
| Agente de exportacion masiva | Renderiza un curriculo con las 22 plantillas y compara los disenos |
| Agente de preparacion de entrevistas | Lee un curriculo personalizado y la descripcion del empleo, genera preguntas probables |
Arquitectura
Tu agente llama a los endpoints de la API directamente (REST) o usa el servidor MCP (para agentes basados en Claude). La API se encarga del procesamiento de IA, renderizado de PDF y almacenamiento de datos.
Opcion 1: Agente basado en MCP (Claude Code)
La forma mas rapida. Configura el servidor MCP y Claude llama a las herramientas automaticamente.
{
"mcpServers": {
"laddro": {
"command": "npx",
"args": ["-y", "@laddro/career-mcp"],
"env": {
"LADDRO_API_KEY": "YOUR_API_KEY"
}
}
}
}Luego pide a 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 encadenara las llamadas a la API: analizar, personalizar, generar carta y exportar.
Opcion 2: Agente REST API (cualquier framework)
Crea un agente personalizado con cualquier framework: LangChain, CrewAI, AutoGen o codigo puro.
Agente de personalizacion (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:
resp = requests.post(f"{BASE}/tailor", headers=HEADERS, json={
"resumeId": resume_id,
"jobDescription": jd
})
tailored = resp.json()
resp = requests.post(f"{BASE}/cover-letters/generate", headers=HEADERS, json={
"resumeId": resume_id,
"jobDescription": jd
})
cover_letter = resp.json()
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 resultsAgente con streaming (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'
},
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
agent.process(event.section, event.content)
}
}
}Endpoints de API para agentes
Los endpoints mas utiles para flujos de trabajo de agentes:
| Endpoint | Creditos | Caso de uso |
|---|---|---|
POST /v1/resumes/parse | 2 | Importar curriculo desde PDF/DOCX |
POST /v1/tailor | 3 | Personalizar curriculo para un empleo |
POST /v1/cover-letters/generate | 2 | Generar carta de presentacion dirigida |
POST /v1/export | 1 | Exportar curriculo como PDF |
PUT /v1/resumes/{id}/render | 1 | Renderizar con una plantilla especifica |
GET /v1/templates | 0 | Listar plantillas disponibles |
GET /v1/resumes | 0 | Listar curriculos del usuario |
Planificacion de creditos para agentes
Flujo tipico para solicitar un empleo:
| Paso | Creditos |
|---|---|
| Analizar curriculo (una vez) | 2 |
| Personalizar para empleo | 3 |
| Generar carta de presentacion | 2 |
| Exportar curriculo PDF | 1 |
| Exportar carta PDF | 1 |
| Total por empleo | 9 (7 despues del primer analisis) |
Con el plan gratuito (50 creditos/mes) puedes solicitar unos 7 empleos. Los suscriptores (200/mes) pueden hacer unos 28. Compra paquetes de creditos para mayor volumen.
Mejores practicas
- Analizar una vez, personalizar muchas — Analiza el curriculo una vez y reutiliza el
resumeIdpara todas las personalizaciones y cartas. - Usar streaming — Para agentes orientados al usuario, usa streaming SSE (
Accept: text/event-stream) para que los usuarios vean resultados en tiempo real. - Manejar errores 402 — Verifica el saldo de creditos antes de operaciones masivas. La API devuelve
402 Payment Requiredcuando se agotan los creditos. - Usar BYOK para volumen — Si estas creando un agente de alto volumen, usa BYOK con tu propia clave de proveedor de IA para evitar costos de IA por solicitud.
- Conciencia de rate limits — Endpoints publicos: 30 sol/min. Protegidos: 100 sol/min. Implementa backoff para respuestas
429.