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
input — Buffer | ArrayBuffer | Uint8Array
Le contenu du fichier PDF. Les trois types de buffer sont acceptés.
options — ResumeIntelOptions
| 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'