/** * HowItWorks — three editorial "chapters" instead of icon cards. * Each chapter has a chapter number, a serif headline, and a short body. * The numbers scale up on scroll into view — subtle, not showy. */ import { motion } from "motion/react"; const CHAPTERS = [ { n: "I", title: "Read the document", body: "PyMuPDF renders each page; pdfplumber extracts text; the loader auto-detects text vs image PDFs so we spend vision tokens only when we need them.", }, { n: "II", title: "Parse into a schema", body: "The prompt requests strict JSON in a Pydantic-defined envelope. OpenAI’s structured outputs handle the schema translation — the model literally cannot invent fields.", }, { n: "III", title: "Score, benchmark, ship", body: "The eval harness compares extracted fields against ground truth with type-appropriate matching (fuzzy text, money tolerance, ISO dates). Micro-F1 rolls up into a resume-worthy number.", }, ]; export function HowItWorks() { return (

The pipeline

{CHAPTERS.map((c, i) => (
{c.n}

{c.title}

{c.body}

))}
); }