Laddro DocsLaddro Docs

TypeScript SDK

TypeScript SDK

El SDK oficial de TypeScript/JavaScript para la Laddro Career API.

Instalacion

npm install @laddro/career-sdk

Inicio rapido

import { Laddro } from '@laddro/career-sdk'

const client = new Laddro({
  apiKey: process.env.LADDRO_API_KEY!
})

// Listar plantillas (publico, sin autenticacion necesaria)
const templates = await client.templates.list()

// Analizar un curriculo
const resume = await client.resumes.parse(
  new File([buffer], 'resume.pdf', { type: 'application/pdf' })
)

// Personalizar para un empleo
const result = await client.tailor.create({
  resumeId: resume.id,
  positionName: 'Senior Frontend Engineer',
  jobDescription: 'We are looking for...'
})

Configuracion

const client = new Laddro({
  apiKey: 'YOUR_API_KEY',
  baseUrl: 'https://api.laddro.com',  // por defecto
  timeout: 30_000                      // 30s por defecto
})

Plantillas

// Listar todas las plantillas
const templates = await client.templates.list()

// Obtener una plantilla especifica
const template = await client.templates.get('graphite')

Curriculos

// Listar curriculos
const resumes = await client.resumes.list()

// Obtener un curriculo
const resume = await client.resumes.get('res_abc123')

// Analizar desde archivo
const parsed = await client.resumes.parse(file)

// Renderizar a PDF
const pdf = await client.resumes.render('res_abc123', {
  templateId: 'graphite'
})

Personalizacion

// Solicitud estandar
const result = await client.tailor.create({
  resumeId: 'res_abc123',
  positionName: 'Senior Engineer',
  jobDescription: 'We are looking for...'
})

// Streaming
const stream = client.tailor.stream({
  resumeId: 'res_abc123',
  positionName: 'Senior Engineer',
  jobDescription: '...'
})
for await (const event of stream) {
  console.log(event.type, event.section, event.content)
}

Cartas de presentacion

// Generar con streaming
const stream = client.coverLetters.generate({
  resumeId: 'res_abc123',
  positionName: 'Senior Engineer',
  jobDescription: '...',
  stream: true
})
for await (const event of stream) {
  process.stdout.write(event.content)
}

// Renderizar a PDF
const pdf = await client.coverLetters.render('cl_abc123', {
  templateId: 'graphite'
})

Exportar

import { writeFileSync } from 'fs'

const pdf = await client.export({
  resumeId: 'res_abc123',
  templateId: 'graphite'
})

writeFileSync('resume.pdf', Buffer.from(pdf))

Configuracion (BYOK)

// Obtener modelo actual
const settings = await client.settings.get()

// Configurar modelo personalizado
await client.settings.setModel({
  provider: 'anthropic',
  model: 'claude-haiku-4.5',
  apiKey: 'sk-ant-...'
})

// Restablecer al predeterminado
await client.settings.resetModel()

Manejo de errores

import { LaddroError } from '@laddro/career-sdk'

try {
  await client.resumes.get('nonexistent')
} catch (error) {
  if (error instanceof LaddroError) {
    console.log(error.status)   // 404
    console.log(error.message)  // "Resume not found"
  }
}

Codigo fuente

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

On this page