← BACK TO SELECTED WORK
Case03Built byWindson InfotechYear2025Timeline8 weeksCategoryAI Resume PlatformRoleArchitecture & Engineering

RESUMEAI

ResumeAI
01BRIEF

AI Resume Platform by Windson Infotech, built on React 18, Flask, Gemini Pro over 8 weeks.

02CHALLENGE

A resume builder is two products wearing one name. The first is a document editor — templates, live preview, and an export that survives contact with a recruiter's inbox. The second is an analysis engine — language processing, scoring, recommendations. They have opposite shapes. One is chatty, stateful and latency-sensitive. The other is slow, CPU-bound, and written in Python because that is where the language tooling lives. Run both in one process and the export queue and the model inference spend the day fighting each other for the same thread.

03SOLUTION

Three services, split along that seam rather than wherever the diagram looked tidiest. A React and TypeScript front end owns editing and real-time preview. An Express and MongoDB API owns authentication, resume storage and PDF generation through Puppeteer, so the export matches the preview exactly. A separate Flask service owns analysis — Gemini Pro for scoring, with spaCy, scikit-learn and textstat doing the language work — and writes its results back to MongoDB for the API to serve. The schema keeps users, resumes and analyses apart, so re-scoring a document never mutates it.

04OUTCOMES

Two products, three services, one seam — cut where the workloads actually differ rather than where the diagram looked neat.

3
Services: editor, API, analysis
11
Resume templates
3
Export formats: PDF, DOCX, plain text
BUILT WITH
React 18TypeScriptExpressMongoDBFlaskGemini ProspaCyPuppeteer
ENGINEERING SCOPE

SYSTEM DELIVERABLES

What we actually built, and why each piece had to exist — the scope as it shipped.

01

Template Engine And Live Preview

Eleven templates spanning modern, classic, creative, executive, technical and LaTeX styles, rendering as the document is edited rather than on save.

02

Multi-Format Export

PDF rendered through Puppeteer so the file matches the preview exactly, plus DOCX and plain text for the systems that will not parse a PDF.

03

Separate Analysis Service

A Flask process running Gemini Pro scoring alongside spaCy, scikit-learn and textstat, writing strengths, weaknesses and recommendations back for the API to serve.

04

Auth And Data Model

JWT with bcrypt across the service boundary, and a schema separating users, resumes and analyses so a re-score is additive rather than destructive.

Next Case Study — 04PREDICTBASE →
START A PROJECT

INITIATE PROJECT