Member-only story
How I Built CareerCraftAI: A 12-Part Engineering Series — Part 4
Part 4: The Resume Parsing Engine
3,200 Lines of Deterministic Code That Does What No LLM Should Be Trusted With
Not everything needs AI. The resume parsing engine is the unsung hero of CareerCraftAI — over 3,200 lines of deterministic code that handles the heavy lifting no LLM should be trusted with: parsing structure, matching keywords, and scoring ATS compliance.
The Dual Schema Problem
Early in development, I faced a critical design decision. Resumes arrive in multiple formats and need to be consumed by multiple systems:
ParsedResume (Legacy Schema)
interface ParsedResume {
basics: {
name: string;
email: string;
phone: string;
linkedin: string;
github: string;
portfolio: string;
location: string;
summary: string;
title: string;
};
sections: Array<{
type: string; // 'experience' | 'education' | 'skills' | ...
title: string; // Section heading as parsed
items: ResumeItem[];
}>;
}
interface ResumeItem {
title: string; // Job title or degree
subtitle: string; // Company or institution
date: string; // Date range…







