Parsez votre premier CV PDF en moins de 5 minutes.

Démarrage rapide

Exemple minimal

import { parseResume } from '@edwinfom/resume-intel'
import { createDeepSeek } from '@ai-sdk/deepseek'
import { readFileSync } from 'node:fs'
 
const pdfBuffer = readFileSync('./cv.pdf')
 
const result = await parseResume(pdfBuffer, {
  model: createDeepSeek({ apiKey: process.env.DEEPSEEK_API_KEY })('deepseek-chat'),
})
 
console.log(result.data.basics?.name)    // "Jean Dupont"
console.log(result.data.work?.length)    // 3
console.log(result.meta.ocrFallback)     // false (true si PDF scanné)

Avec OpenAI

import { parseResume } from '@edwinfom/resume-intel'
import { createOpenAI } from '@ai-sdk/openai'
 
const result = await parseResume(pdfBuffer, {
  model: createOpenAI({ apiKey: process.env.OPENAI_API_KEY })('gpt-4o-mini'),
})

Avec Ollama (local)

import { parseResume } from '@edwinfom/resume-intel'
import { createOpenAI } from '@ai-sdk/openai'
 
const result = await parseResume(pdfBuffer, {
  model: createOpenAI({
    baseURL: 'http://localhost:11434/v1',
    apiKey: 'ollama',
  })('llama3.1'),
})

Gestion des erreurs

import { parseResume, OcrNotEnabledError, ResumeExtractionError } from '@edwinfom/resume-intel'
 
try {
  const result = await parseResume(pdfBuffer, { model })
} catch (error) {
  if (error instanceof OcrNotEnabledError) {
    console.error('OCR échoué:', error.message)
  } else if (error instanceof ResumeExtractionError) {
    console.error('Extraction échouée:', error.message)
    console.error('Cause:', error.cause?.message)
  }
}

Étapes suivantes