| DEFAULT_SAMPLE_RESUME = """ALEX CHEN |
| Senior AI & Machine Learning Engineer | San Francisco, CA | alex.chen@email.com | (555) 019-2834 | linkedin.com/in/alexchen-ai |
| |
| SUMMARY |
| Passionate Senior AI Engineer with 6+ years of experience designing and deploying scalable deep learning models, RAG architectures, and computer vision systems. Expertise in PyTorch, Python, TensorFlow, Docker, Kubernetes, and LLM fine-tuning. |
| |
| TECHNICAL SKILLS |
| • Languages: Python, C++, SQL, Bash |
| • AI & ML Frameworks: PyTorch, TensorFlow, Scikit-learn, OpenCV, Hugging Face |
| • LLM & RAG: LangChain, LlamaIndex, Vector DBs (Milvus, Qdrant, FAISS), RAG Optimization |
| • MLOps & Cloud: AWS (S3, EC2, SageMaker), Docker, Kubernetes, CI/CD, MLflow |
| |
| PROFESSIONAL EXPERIENCE |
| Senior AI Engineer | TechCorp AI (2022 - Present) |
| • Led development of enterprise RAG search system improving document retrieval latency by 45%. |
| • Fine-tuned 70B parameter LLMs on proprietary datasets using LoRA and QLoRA techniques. |
| • Architected automated MLOps pipelines on Kubernetes serving 2M+ daily active requests. |
| |
| Machine Learning Engineer | DataVision Labs (2019 - 2022) |
| • Trained custom ResNet and YOLO object detection models for real-time video surveillance. |
| • Reduced model inference latency from 120ms to 28ms using TensorRT quantization. |
| |
| EDUCATION |
| B.S. in Computer Science | University of California, Berkeley (2015 - 2019) |
| """ |
|
|
| DEFAULT_JOB_DESCRIPTION = """We are seeking a Senior AI/ML Engineer to build next-generation RAG systems, fine-tune open-source Large Language Models (LLMs), and deploy scalable MLOps infrastructure. |
| |
| KEY REQUIREMENTS: |
| • 5+ years of software engineering & ML experience in Python and PyTorch. |
| • Strong expertise in RAG (Retrieval-Augmented Generation), Vector Databases, and LangChain/LangGraph. |
| • Demonstrated experience deploying containerized models on Docker/Kubernetes or Cloud (AWS/GCP). |
| • Experience with MLOps tracking tools (MLflow, Weights & Biases) and CI/CD pipelines. |
| • B.S. or M.S. in Computer Science or related field. |
| """ |
|
|
| def generate_ats_score_html(score_pct: int) -> str: |
| """ |
| Renders a glowing neon HTML radial gauge for overall ATS match score percentage. |
| """ |
| color = "#48bb78" if score_pct >= 80 else ("#ed8936" if score_pct >= 60 else "#f56565") |
| |
| return f""" |
| <div style='background: linear-gradient(135deg, #1e293b, #0f172a); border: 1px solid rgba(255,255,255,0.1); border-radius: 16px; padding: 22px; text-align: center; box-shadow: 0 8px 32px rgba(0,0,0,0.4); contain: content;'> |
| <div style='font-size: 0.85rem; text-transform: uppercase; color: #94a3b8; font-weight: 700; letter-spacing: 0.05em;'>Overall ATS Compatibility Score</div> |
| <div style='font-size: 3.4rem; font-weight: 900; color: {color}; margin: 8px 0; font-family: Inter, sans-serif;'>{score_pct}%</div> |
| <div style='background: #1a202c; border-radius: 10px; height: 14px; width: 100%; overflow: hidden; border: 1px solid #2d3748;'> |
| <div style='background: {color}; height: 100%; width: {score_pct}%; border-radius: 10px; transition: width 0.8s ease-in-out;'></div> |
| </div> |
| </div> |
| """ |
|
|
| def generate_subscores_html(keyword_pct: int, skills_pct: int, experience_pct: int, format_pct: int) -> str: |
| """ |
| Renders 4 mini KPI score cards for detailed breakdown. |
| """ |
| return f""" |
| <div style='display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-top: 14px; contain: content;'> |
| <div style='background: rgba(30, 41, 59, 0.8); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 12px; padding: 14px; text-align: center;'> |
| <div style='font-size: 0.75rem; color: #94a3b8; font-weight: 700; text-transform: uppercase;'>Keywords</div> |
| <div style='font-size: 1.6rem; font-weight: 800; color: #38bdf8; margin-top: 4px;'>{keyword_pct}%</div> |
| </div> |
| <div style='background: rgba(30, 41, 59, 0.8); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 12px; padding: 14px; text-align: center;'> |
| <div style='font-size: 0.75rem; color: #94a3b8; font-weight: 700; text-transform: uppercase;'>Skills Match</div> |
| <div style='font-size: 1.6rem; font-weight: 800; color: #4ade80; margin-top: 4px;'>{skills_pct}%</div> |
| </div> |
| <div style='background: rgba(30, 41, 59, 0.8); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 12px; padding: 14px; text-align: center;'> |
| <div style='font-size: 0.75rem; color: #94a3b8; font-weight: 700; text-transform: uppercase;'>Experience Fit</div> |
| <div style='font-size: 1.6rem; font-weight: 800; color: #a855f7; margin-top: 4px;'>{experience_pct}%</div> |
| </div> |
| <div style='background: rgba(30, 41, 59, 0.8); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 12px; padding: 14px; text-align: center;'> |
| <div style='font-size: 0.75rem; color: #94a3b8; font-weight: 700; text-transform: uppercase;'>Formatting</div> |
| <div style='font-size: 1.6rem; font-weight: 800; color: #f59e0b; margin-top: 4px;'>{format_pct}%</div> |
| </div> |
| </div> |
| """ |
|
|
| def format_skill_badges(matched_skills: list, missing_skills: list) -> str: |
| """ |
| Renders HTML skill badges (Green for matched, Red for missing). |
| """ |
| html = ["<div style='font-family: Inter, sans-serif; padding: 10px; contain: content;'>"] |
| |
| html.append("<h4 style='color: #4ade80; margin-bottom: 8px;'>✅ Matched Qualifications & Skills</h4><div>") |
| if matched_skills: |
| for s in matched_skills: |
| html.append(f"<span style='display: inline-block; background: rgba(34, 197, 94, 0.15); color: #4ade80; border: 1px solid #22c55e; border-radius: 14px; padding: 4px 12px; margin: 4px; font-size: 13px; font-weight: 600;'>✓ {s}</span>") |
| else: |
| html.append("<span style='color: #94a3b8;'>No explicit matching skills found.</span>") |
| html.append("</div><br>") |
|
|
| html.append("<h4 style='color: #f87171; margin-bottom: 8px;'>⚠️ Missing Key Competencies from Job Description</h4><div>") |
| if missing_skills: |
| for s in missing_skills: |
| html.append(f"<span style='display: inline-block; background: rgba(239, 68, 68, 0.15); color: #f87171; border: 1px solid #ef4444; border-radius: 14px; padding: 4px 12px; margin: 4px; font-size: 13px; font-weight: 600;'>✗ {s}</span>") |
| else: |
| html.append("<span style='color: #4ade80;'>No major missing skills identified!</span>") |
| html.append("</div></div>") |
|
|
| return "".join(html) |
|
|