01Full-Stack AI System

Resume Intelligence Engine

A production-grade AI job application system with 25+ Python modules, a web dashboard, LLM-powered extraction, ATS scoring, recruiter outreach automation, and an adaptive learning engine. Generates tailored resumes and cover letters from job descriptions with 87%+ suitability accuracy.

FastAPIPythonLLMSQLiteNLPJinja2HTML/CSS/JSReportLabpython-docxpytest
View on GitHub
25+
Python Modules
87%+
ATS Suitability
5
Output Formats
type
Full-Stack AI System
status
Active Development
year
2026
role
Solo Engineer
01

System Architecture · 3D View

02

Architecture Diagram

JD Input
URL · Text · Paste
FastAPI App
app.py · REST API
JD Extractor
jd_extract.py
LLM Extractor
llm_extract.py
Role Detector
role_detect.py
ATS Engine
ats_check.py
Suitability
suitability.py
Skill Bridge
skill_bridge.py
Learner
learner.py
Generator
generator.py
Recruiter Msg
recruiter_msg.py
PDF Export
ReportLab
DOCX Export
python-docx
Dashboard
dashboard.html
03

Screenshots & Output

terminal
$ uvicorn app:app --reload --port 8000
INFO: Uvicorn running on http://127.0.0.1:8000
POST /api/generate HTTP/1.1 → role_detect.py
→ jd_extract.py: 17 skills · 3 responsibilities
→ llm_extract.py: role=AI Engineer · seniority=Mid
→ ats_check.py: ATS score 91/100 ✓
→ suitability.py: match 87.3%
→ learner.py: term_memory updated
→ generator.py: resume + cover letter built
✓ PDF · DOCX · JSON saved → outputs/
200 OK · 1.43s · jobs.db updated
API Terminal Output
FastAPI server live generation log
Skill Match Scores
ATS Score91%
JD Suitability87%
Skill Bridge93%
LLM Extraction89%
Test Coverage78%
Skill Match Scores
ATS + suitability scoring per skill
Data Output
{
role: AI Engineer,
ats_score: 91,
suitability: 0.873,
matched_skills: [FastAPI, LLM, Python],
recruiter_email: drafted ✓,
// jobs.db updated · term_memory saved
}
JSON API Response
Structured generation payload
Project Structure
📁 Resume-Intelligence-Engine/
├─ app.py FastAPI entry
├─ jd_extract.py NLP extractor
├─ llm_extract.py LLM extractor
├─ ats_check.py ATS scorer
├─ learner.py Adaptive AI
├─ recruiter_msg.py Email drafter
├─ dashboard.html Web UI
├─ jobs.db SQLite store
└─ tests/ pytest suite
Project Structure
25+ module file organization
04

What I Built

Built a full-stack AI job application system with FastAPI backend, web dashboard (HTML/CSS/JS), and SQLite job database (`jobs.db`, `db.py`).

Implemented dual extraction pipeline: regex/NLP heuristics (`jd_extract.py`) + LLM-powered extraction (`llm_extract.py`) for maximum JD parsing accuracy.

Designed ATS scoring and sanitization engine (`ats_check.py`, `ats_sanitize.py`) ensuring generated resumes pass Applicant Tracking Systems.

Built adaptive learning system (`learner.py`, `learn_jd.py`, `learning_store.py`, `term_memory.py`) that improves skill matching over time.

Engineered recruiter outreach automation (`recruiter_msg.py`) generating personalized cold emails from JD context.

Developed modular generation pipeline: role detection → skill bridging → suitability scoring → template selection → PDF/DOCX export.

Wrote full test suite with pytest (`tests/`, `pytest.ini`, `quality_gates.py`) ensuring production-grade reliability.

05

Project Insights

Personal Notes & Learnings
Markdown Editor
Live Preview

What I Built

A production-grade AI job application system — far beyond a simple resume generator. It learns from JDs, scores ATS compatibility, auto-generates recruiter emails, and serves everything through a web dashboard.

Real Module Breakdown

  • Extraction: jd_extract.py (regex/NLP) + llm_extract.py (LLM-powered) — dual pipeline for maximum accuracy
  • ATS: ats_check.py + ats_sanitize.py — ensures output passes real ATS filters
  • Learning: learner.py + learning_store.py + term_memory.py — adaptive skill matching that improves over time
  • Outreach: recruiter_msg.py — personalized cold emails auto-generated from JD context
  • Dashboard: dashboard.html + static/ + templates/ — full web UI served by FastAPI
  • Database: jobs.db + db.py — SQLite job tracking and history
  • Quality: tests/ + quality_gates.py + pytest.ini — production test suite

Key Engineering Decisions

  • Chose SQLite over PostgreSQL for zero-config portability
  • Dual extraction (regex + LLM) gives fallback resilience
  • term_memory.py stores domain-specific terminology across sessions for better matching

Next Steps

  • Deploy as SaaS with user authentication
  • Add real-time JD scraping from LinkedIn/Indeed
✓ Insights saved locally