Skip to content

extract-resume

This example extracts a resume with nested education records, work experience, and skills. The Resume and Education interfaces define the output shape; JSDoc comments add instructions to the generated schema.

A plain TypeScript caller can import extractResume and await its result.

src/resume.tsi
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;
}
Terminal window
npx nola-lang run src/main.ts # mock provider (deterministic)
# real model: 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