Getting Started

Everything you need to integrate VitaeFlow into your application. From install to working code in under 5 minutes.

What is VitaeFlow?

VitaeFlow is an open standard for embedding structured JSON resume data inside PDF files. A VitaeFlow PDF looks like any normal resume to a human reader, but it also contains machine-readable data that ATS, job boards, and HR tools can extract instantly — no parsing, no guessing.

The .vf.pdf suffix is recommended for discoverability, but not required.

1

Install the SDK

Works in Node.js and the browser.

npm install @vitaeflow/sdk
2

Validate a resume

Use strict mode to reject unknown fields, or tolerant for forward compatibility.

validate.ts
import { validateResume } from '@vitaeflow/sdk';

const result = validateResume(resume, { mode: 'strict' });

if (result.valid) {
  console.log('Resume is valid!');
} else {
  for (const err of result.errors) {
    console.log(`${err.path}: ${err.message}`);
  }
}
3

Embed in a PDF

Take a plain PDF and embed structured resume data into it. The resume is validated before embedding.

embed.ts
import { embedResume } from '@vitaeflow/sdk';
import { readFileSync, writeFileSync } from 'fs';

const pdf = new Uint8Array(readFileSync('resume.pdf'));
const resume = {
  version: '0.1',
  profile: 'standard',
  basics: {
    givenName: 'Marie',
    familyName: 'Laurent',
    email: 'marie@example.com',
  },
  work: [{
    organization: 'TechCorp',
    position: 'Lead Developer',
    startDate: '2021-03',
  }],
};

const result = await embedResume(pdf, resume);
writeFileSync('resume.vf.pdf', result);
4

Extract from a PDF

Read a VitaeFlow PDF and get the structured data back, automatically validated.

extract.ts
import { extractResume } from '@vitaeflow/sdk';
import { readFileSync } from 'fs';

const pdf = new Uint8Array(readFileSync('resume.vf.pdf'));
const result = await extractResume(pdf);

if (result?.resume) {
  console.log(result.resume.basics.givenName); // "Marie"
  console.log(result.validation.valid);        // true
}

CLI

For quick tasks from the terminal.

npm install -g vitaeflow
terminal
# Validate a JSON resume
vitaeflow validate resume.json

# Embed structured data into a PDF
vitaeflow embed resume.pdf resume.json -o resume.vf.pdf

# Extract data from a VitaeFlow PDF
vitaeflow extract resume.vf.pdf

# Check if a PDF contains VitaeFlow data
vitaeflow inspect resume.vf.pdf

Schema overview

Only basics is required. Everything else is optional.

Required

  • version — schema version
  • profile — always "standard"
  • basics — name, email

Optional

  • work, education, skills
  • languages, certifications
  • projects, publications
  • volunteer, references, interests

Next steps

Have an idea for a new tool?

Contribute your tools to help grow the VitaeFlow ecosystem.

Contribute on GitHub