Référence API complète pour @edwinfom/resume-intel — parseResume, options, types de retour, et schémas exportés.

Référence API

parseResume(input, options)

La fonction principale. Accepte un buffer PDF et retourne des données de CV structurées.

Paramètres

inputBuffer | ArrayBuffer | Uint8Array

Le contenu du fichier PDF. Les trois types de buffer sont acceptés.

optionsResumeIntelOptions

Option Type Défaut Description
model LanguageModel requis Tout modèle compatible Vercel AI SDK
maxRetries number 3 Tentatives max d'auto-correction par section en cas d'échec de validation
layoutStrategy 'spatial' | 'linear' 'spatial' Stratégie d'extraction de texte PDF
useTaskDecomposition boolean true Exécuter des extractions parallèles par section
systemPromptPrefix string '' Instructions personnalisées injectées avant les prompts d'extraction
abortSignal AbortSignal Signal d'annulation standard

Valeur de retour

Promise<ResumeIntelResult>

interface ResumeIntelResult {
  data: JsonResume      // Objet compatible JSON Resume v1
  meta: ExtractionMeta
}
 
interface ExtractionMeta {
  durationMs: number              // temps de traitement total en ms
  retryCount: number              // retries en mode single-shot
  ocrFallback: boolean            // true si Tesseract OCR a été utilisé
  layoutStrategy: 'spatial' | 'linear'
  pageCount: number               // nombre de pages PDF
  tokenUsage?: {
    promptTokens: number
    completionTokens: number
    totalTokens: number
  }
  sectionResults?: Array<{        // mode décomposition par section uniquement
    section: string               // 'basics' | 'work' | 'education' | ...
    success: boolean
    retryCount: number
    error: string | null
  }>
}

JsonResumeSchema

Le schéma Zod pour la spécification JSON Resume v1. Utilisez-le pour valider vos propres données.

import { JsonResumeSchema } from '@edwinfom/resume-intel'
 
const result = JsonResumeSchema.safeParse(myData)

Classes d'erreur

ResumeExtractionError

Levée quand le LLM échoue à produire des données valides après toutes les tentatives de retry.

import { ResumeExtractionError } from '@edwinfom/resume-intel'
 
try {
  const result = await parseResume(pdfBuffer, { model })
} catch (error) {
  if (error instanceof ResumeExtractionError) {
    console.error(error.message)
    console.error(error.cause)
  }
}

OcrNotEnabledError

Levée quand un PDF scanné est détecté mais que le traitement OCR échoue.

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

Types TypeScript

Tous les types sont exportés depuis le point d'entrée principal :

import type {
  ResumeIntelOptions,
  ResumeIntelResult,
  ExtractionMeta,
  SectionExtractionResult,
  TokenUsage,
  JsonResume,
  ResumeSectionKey,
} from '@edwinfom/resume-intel'