Sitemap

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:

Press enter or click to view image in full size

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…

--

--