extract-resume
The industry-canonical structured-extraction demo — every LLM framework has a resume example; this is Nola’s. The types are plain same-file interfaces (nested Education[] included; JSDoc comments become schema descriptions) and the function is imported directly — no schema DSL, no codegen step, no generated client directory, no second language.
export interface Education { school: string; degree: string; /** graduation year */ year: number;}
export interface Resume { name: string; email: string; /** one entry per position, most recent first */ experience: string[]; skills: string[]; education: Education[];}
export infer function extractResume(.message: string) { return ask ..`the candidate's resume data`<Resume>;}Run it
Section titled “Run it”npx nola run src/main.ts # mock provider (deterministic)# real provider: edit nola.config.ts to openai({ model: "gpt-5-mini" }) (needs OPENAI_API_KEY)Scaffold: npm create nola my-app -- --template extract-resume
Source: examples/extract-resume on GitHub.
Next: classify-message