TypeScript SDK
This SDK is currently in development and not yet published. The API surface described below is planned. Use the REST API directly in the meantime.
The official TypeScript/JavaScript SDK for the Laddro Career API.
Installation
Package not yet published. Check back soon.
Quick Start
import { LaddroClient } from '@laddro/career-sdk'
const client = new LaddroClient({
apiKey: process.env.LADDRO_API_KEY!
})
// List templates (public, no auth needed)
const templates = await client.templates.list()
// Parse a resume
const resume = await client.resumes.parse(
new File([buffer], 'resume.pdf', { type: 'application/pdf' })
)
// Tailor for a job
const result = await client.tailor({
resumeId: resume.id,
jobDescription: 'Senior Frontend Engineer at...'
})Configuration
const client = new LaddroClient({
apiKey: 'YOUR_API_KEY',
baseUrl: 'https://api.laddro.com', // default
timeout: 30_000 // 30s default
})Templates
// List all templates
const templates = await client.templates.list()
// Get a specific template
const template = await client.templates.get('graphite')Resumes
// List resumes
const resumes = await client.resumes.list()
// Get a resume
const resume = await client.resumes.get('res_abc123')
// Parse from file
const parsed = await client.resumes.parse(file)
// Render to PDF
const pdf = await client.resumes.render('res_abc123', {
templateId: 'graphite'
})Tailoring
// Standard request
const result = await client.tailor({
resumeId: 'res_abc123',
jobDescription: 'We are looking for...'
})
// Streaming
for await (const event of client.tailor(
{ resumeId: 'res_abc123', jobDescription: '...' },
{ stream: true }
)) {
console.log(event.type, event.section, event.content)
}Cover Letters
// Generate with streaming
for await (const event of client.coverLetters.generate(
{ resumeId: 'res_abc123', jobDescription: '...' },
{ stream: true }
)) {
process.stdout.write(event.content)
}
// Render to PDF
const pdf = await client.coverLetters.render('cl_abc123', {
templateId: 'graphite'
})Export
import { writeFileSync } from 'fs'
const pdf = await client.export({
resumeId: 'res_abc123',
templateId: 'graphite'
})
writeFileSync('resume.pdf', Buffer.from(pdf))Settings (BYOK)
// Get current model
const settings = await client.settings.get()
// Set custom model
await client.settings.setModel({
provider: 'anthropic',
modelId: 'claude-haiku-4.5',
apiKey: 'sk-ant-...'
})
// Reset to default
await client.settings.resetModel()Error Handling
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"
}
}Source
Last updated on