CVs, certificates and identity documents
Papers that assert who someone is or what they have done, including the machine-readable zones designed to be parsed.
The documents in this cluster all make a claim about a person, and they divide sharply on whether anybody standardised the claim. A passport carries a machine-readable zone specified to the character position, with check digits you can recompute; a CV carries whatever its author felt like typing. Treating those two as the same extraction problem is the mistake that produces a pipeline nobody trusts. On one side of the line an extraction can be proved wrong by arithmetic, and on the other the only thing you can do is make the ambiguity explicit in the schema.
So these pages are organised around what the document gives you to check against. Where a standard exists — ICAO Doc 9303 for travel documents, AAMVA for the barcode on a North American driver’s licence, an ISBN-13 check digit in a reference list — the page shows the arithmetic and treats validation as part of extraction rather than as a separate review step. Where none exists, it shows the specific shape of the ambiguity: the overlapping contract role that invents an employment gap, the degree name that means different things in two countries, the field that is blank rather than filled in. The generic machinery of schema design, confidence and review lives elsewhere in the library; this cluster is the document-specific layer on top of it.
Extracting Author Affiliations From a Scientific Paper
The author-to-affiliation join is carried by superscript markers, which are the first thing OCR destroys, and the fix is usually not to parse the PDF at all.
8 min read
Extracting Methods and Sample Size From a Scientific Paper
A paper states several different values of n and all of them are correct, so the schema question is which n a field is supposed to hold.
8 min read
Extracting a Bibliography Into Structured Citation Records
A worked two-stage parser that segments a reference list into individual entries before parsing any of them, because the segmentation is the part that fails.
9 min read
Extracting DOIs and ISBNs From a Reference List
Both identifiers arrive in several surface forms, and one of them carries a check digit you can recompute to prove the extraction is right.
8 min read
Extracting Work History From a CV Into Structured Fields
A role-level schema that survives an open end date, a promotion written as one entry, and two jobs held at the same time.
9 min read
Extracting Skills and Certifications From a Resume
Skills and certifications look like one section and are two different data types: one has no identity and the other has an issuer, a number and an expiry.
8 min read
Extracting Education History From a CV, Degree by Degree
The degree name and the field of study are different fields that most CVs run together, and normalising across countries needs a published level classification rather than a guess.
8 min read
Extracting Employment Gaps From a Resume's Date Ranges
A worked interval-merge over extracted role dates, with the month-rounding rule stated and the naive scan that invents gaps shown failing.
9 min read
Extracting Fields From a Job Application Form
A form mixes free text with checkbox state, and the difference between blank, N/A and absent is three answers that a two-valued schema collapses into one.
8 min read
Extracting a Passport's Machine-Readable Zone Into Structured Fields
The MRZ is specified to the character position by ICAO Doc 9303 and carries four check digits, so a correct extraction can be proved rather than trusted.
10 min read
Extracting Data From a Driver's License Across Different State Formats
The printed face varies by jurisdiction so template matching fails, but the PDF417 barcode on the back is standardised by AAMVA and carries the same element identifiers everywhere.
9 min read
Extracting Fields From a National ID Card
Bilingual cards print the same field twice in two scripts, and the schema has to decide which one is authoritative before it can store either.
9 min read
Extracting Data From a Birth Certificate
Short-form and long-form certificates carry different field sets, and the embossed registrar seal sits on top of the text a schema most wants to read.
9 min read
Extracting Fields From a Marriage Certificate
Two parties occupy structurally identical field blocks, so any extraction that depends on position will eventually swap them and produce a well-formed wrong record.
8 min read
Extracting Data From a Diploma or Degree Certificate
Diplomas are typeset to be ceremonial rather than legible, with Latin honours, Roman numeral dates and institution-specific degree names that need a per-institution glossary.
8 min read
Extracting Fields From a Professional License Certificate
An expiry decision is only meaningful with the date it was made recorded beside it, and the certificate is never the authority on whether a licence is currently valid.
9 min read
Other topics
- LLM fundamentals & architecture
- Tokens, tokenization & context windows
- Prompt engineering
- Reasoning models & test-time compute
- Multimodal AI: vision, audio, video
- RAG & retrieval
- Embeddings & vector search
- AI agents & tool use
- Structured output & function calling
- Fine-tuning & post-training
- Local inference errors, string by string
- Running local models day to day
- Testing code that calls an LLM
- Snapshot and property testing for model output
- Regression suites for prompts
- Eval gates in CI
- Flaky tests against a model
- Determinism and the cost of testing
- Contract and streaming tests
- Testing tool calls and retrieval
- Inference, serving & latency
- Rolling out a prompt change
- Testing AI systems in practice
- Forecasting a time series
- Machine learning on tabular data
- Geospatial data and models
- Understanding audio that is not speech
- Understanding video
- Core computer vision tasks
- Machine learning on graphs
- Point clouds and 3D
- Evaluation, benchmarks & LLM-as-judge
- Sensor and IoT data
- Logs and event streams
- Models over biological sequences
- Machine learning on molecules
- Embedding and searching code
- Extracting invoices and purchase orders
- Receipts, statements and tax forms
- Insurance policies and contracts
- Deeds, court filings and patents
- Extracting from medical records
- Observability & LLMOps
- Shipping, customs and technical documents
- Meetings, email, chat and filled-in forms
- Building an extraction pipeline
- Business, property and inspection documents
- Contract clauses and insurance claims
- Regulated and compliance documents
- Consumer, travel and closing documents
- Mapping one chat API onto another
- SDK and framework migrations
- Hallucination & failure modes
- Re-embedding and model deprecation
- Cutting over between providers
- Parity gaps, shims and legacy endpoints
- Moving between model versions
- Migrating vector stores and caches
- Mapping capabilities and parameters
- Migrating pipelines and agents
- Contracts, runbooks and rollback
- Auditing a codebase before a cutover
- Compliance and fine-tune migration
- LLM cost engineering
- Routing, cost tracking and multi-tenancy
- What a migration does to your prompts
- AI security & prompt injection
- Privacy, compliance & data residency
- AI governance, policy & society
- Building reliable AI applications
- AI hardware, GPUs & compute
- Open-weight models & local inference
- AI for developers & coding agents
- AI in industry: vertical playbooks
- AGI, superintelligence, alignment & the long future
- Machine learning foundations
- NLP fundamentals & classical tasks
- Data engineering for AI
- Synthetic data & dataset curation
- AI product design & UX
- Search, ranking & recommendation
- Enterprise adoption & change management
- AI careers, skills & teams
- Reading AI research
- AI in science & discovery
- Robotics & embodied AI
- AI economics, markets & business models
- AI myths, hype & media literacy
- Context engineering
- Shipping AI features: patterns & anti-patterns
- Build it: end-to-end AI tutorials
- Python for AI: hands-on recipes
- TypeScript, React and the web
- Frameworks and SDKs
- Errors and troubleshooting
- AI facts, numbers and statistics
- The history of AI
- The maths behind AI
- Architectures beyond the transformer
- Reinforcement learning
- Diffusion and generative media
- Speech, audio and voice engineering
- Benchmarks, one at a time
- AI search visibility
- Infrastructure and operations
- Databases and storage for AI
- Knowledge graphs and structured knowledge
- Classical ML in production
- Regulation, jurisdiction by jurisdiction
- Prompt recipes and pattern library
- AI for people who do not write code
- Writing, media and creative work
- Edge and on-device AI
- Interpretability and model internals
- Field notes
- OpenAI model behaviour
- Claude model behaviour
- Gemini model behaviour
- Llama model behaviour
- Mistral model behaviour
- Qwen model behaviour
- DeepSeek model behaviour
- Cohere model behaviour
- Grok model behaviour
- Small model behaviour
- Hybrid model architectures
- Token cost by language and script
- Transliteration, romanization and script handling
- Locale-correct output
- Multilingual generation quality
- Multilingual pipelines
- The EU AI Act, article by article
- AI under the GDPR and EU data law
- US AI regulation, state and sector
- International AI governance and standards
- AI litigation and enforcement
- Running AI workloads on AWS
- Running AI workloads on Google Cloud
- Running AI workloads on Azure
- AI at the edge: Workers, Vercel and Netlify
- Serving models on Kubernetes
- Operating AI infrastructure
- Quantization formats and what they cost
- llama.cpp, flag by flag
- Ollama and the desktop local-model runtimes
- Local models on Apple Silicon
- Hardware for local inference
- Running speech and embedding models locally
- Model files, adapters and conversion
- VRAM arithmetic for local models