Construir Agentes de IA com Laddro
Construir Agentes de IA com Laddro
Utilize a Laddro Career API para construir agentes autonomos que gerem tarefas de carreira, desde a personalizacao de curriculos ate candidaturas a empregos em massa.
O Que os Agentes Podem Fazer
| Tipo de Agente | Descricao |
|---|---|
| Agente de Personalizacao de CV | Recebe um curriculo e uma lista de URLs de empregos, personaliza o curriculo para cada um, exporta PDFs |
| Bot de Candidatura | Analisa um curriculo, faz correspondencia com portais de emprego, personaliza e gera cartas de apresentacao para cada um |
| Agente Coach de Carreira | Analisa um curriculo, sugere melhorias, reescreve seccoes fracas |
| Agente de Exportacao em Lote | Renderiza um curriculo em todos os 22 modelos, compara layouts |
| Agente de Preparacao para Entrevista | Le um curriculo personalizado e descricao de emprego, gera perguntas de entrevista provaveis |
Arquitetura
O seu agente chama os endpoints da API diretamente (REST) ou utiliza o servidor MCP (para agentes baseados em Claude). A API trata do processamento de IA, renderizacao de PDF e armazenamento de dados.
Opcao 1: Agente Baseado em MCP (Claude Code)
A forma mais rapida. Configure o servidor MCP e o Claude chama as ferramentas automaticamente.
{
"mcpServers": {
"laddro": {
"command": "npx",
"args": ["-y", "@laddro/career-mcp"],
"env": {
"LADDRO_API_KEY": "YOUR_API_KEY"
}
}
}
}Depois peca ao 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."O Claude encadeia as chamadas API: analisar, personalizar, gerar carta de apresentacao, exportar.
Opcao 2: Agente REST API (Qualquer Framework)
Construa um agente personalizado com qualquer framework: LangChain, CrewAI, AutoGen ou codigo simples.
Agente de Personalizacao de CV (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 resultsAgente com 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' // 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)
}
}
}Endpoints API para Agentes
Estes sao os endpoints mais uteis para fluxos de trabalho com agentes:
| Endpoint | Creditos | Caso de Uso |
|---|---|---|
POST /v1/resumes/parse | 2 | Importar um curriculo a partir de PDF/DOCX |
POST /v1/tailor | 3 | Personalizar curriculo para um emprego especifico |
POST /v1/cover-letters/generate | 2 | Gerar uma carta de apresentacao direcionada |
POST /v1/export | 1 | Exportar curriculo como PDF |
PUT /v1/resumes/{id}/render | 1 | Renderizar com um modelo especifico |
GET /v1/templates | 0 | Listar modelos disponiveis |
GET /v1/resumes | 0 | Listar curriculos do utilizador |
Planeamento de Creditos para Agentes
Um fluxo tipico de "candidatura a um emprego":
| Passo | Creditos |
|---|---|
| Analisar curriculo (uma vez) | 2 |
| Personalizar para emprego | 3 |
| Gerar carta de apresentacao | 2 |
| Exportar curriculo PDF | 1 |
| Exportar carta de apresentacao PDF | 1 |
| Total por emprego | 9 (7 apos primeira analise) |
Com o plano gratuito (50 creditos/mes), pode candidatar-se a cerca de 7 empregos. Subscritores (200/mes) podem fazer cerca de 28. Compre pacotes de creditos para maior volume.
Boas Praticas
- Analisar uma vez, personalizar muitas - Analise o curriculo uma vez e reutilize o
resumeIdpara todas as personalizacoes e geracoes de cartas de apresentacao. - Utilize streaming - Para agentes virados para o utilizador, utilize streaming SSE (
Accept: text/event-stream) para que os utilizadores vejam resultados em tempo real. - Trate erros 402 - Verifique o saldo de creditos antes de operacoes em lote. A API devolve
402 Payment Requiredquando os creditos acabam. - Utilize BYOK para volume - Se estiver a construir um agente de alto volume, utilize BYOK com a sua propria chave de fornecedor de IA para evitar custos de IA por pedido.
- Consciencia de limites - Endpoints publicos: 30 pedidos/min. Protegidos: 100 pedidos/min. Implemente backoff para respostas
429.