@@ -3320,108 +3320,8 @@ function getProductivePetHTML() {
33203320 ` ;
33213321}
33223322
3323- function getAIResumeAnalyzerHTML ( ) {
3324- return `
3325- <div class="resume-analyzer-shell">
3326- <div class="resume-analyzer-hero">
3327- <div class="resume-analyzer-copy">
3328- <span class="resume-analyzer-badge">GSSoC Utility</span>
3329- <h2>AI Resume Analyzer</h2>
3330- <p>Upload a resume and get a quick ATS-style snapshot with keyword, structure, and formatting feedback.</p>
3331- </div>
3332- <div class="resume-analyzer-pill">No backend required</div>
3333- </div>
3334-
3335- <div class="resume-analyzer-grid">
3336- <section class="resume-panel resume-upload-panel">
3337- <div class="resume-upload-box">
3338- <i class="fa-solid fa-file-lines resume-upload-icon"></i>
3339- <label class="resume-file-btn">
3340- Choose File
3341- <input type="file" id="resumeInput" accept=".pdf,.doc,.docx,.txt" hidden>
3342- </label>
3343- <p>Drag & drop or click to choose a resume</p>
3344- </div>
3345-
3346- <button class="resume-analyze-btn" id="analyzeBtn" type="button">Analyze Resume 🚀</button>
3347- </section>
3348-
3349- <section class="resume-panel resume-score-panel hidden" id="ats">
3350- <h3>ATS Score</h3>
3351- <div class="resume-progress-circle">
3352- <span>82%</span>
3353- </div>
3354- <div class="resume-extra-info">
3355- <p>✔ Formatting Score: 80%</p>
3356- <p>✔ Keyword Match: 75%</p>
3357- </div>
3358- </section>
3359-
3360- <section class="resume-panel resume-bottom-panel hidden" id="bottomSection">
3361- <div class="resume-mini-card">
3362- <h3>Keywords Match</h3>
3363-
3364- <div class="resume-keyword-item">
3365- <span>Python</span>
3366- <div class="resume-bar"><div style="width: 90%"></div></div>
3367- </div>
3368-
3369- <div class="resume-keyword-item">
3370- <span>Machine Learning</span>
3371- <div class="resume-bar"><div style="width: 75%"></div></div>
3372- </div>
3373-
3374- <div class="resume-keyword-item">
3375- <span>Data Analysis</span>
3376- <div class="resume-bar"><div style="width: 65%"></div></div>
3377- </div>
3378- </div>
3379-
3380- <div class="resume-mini-card">
3381- <h3><i class="fa-solid fa-lightbulb"></i> Suggestions</h3>
3382-
3383- <div class="resume-suggestion">
3384- <i class="fa-solid fa-check"></i>
3385- <p>Add more projects</p>
3386- </div>
3387-
3388- <div class="resume-suggestion">
3389- <i class="fa-solid fa-check"></i>
3390- <p>Improve formatting</p>
3391- </div>
3392-
3393- <div class="resume-suggestion">
3394- <i class="fa-solid fa-check"></i>
3395- <p>Use action verbs</p>
3396- </div>
3397- </div>
3398- </section>
3399- </div>
3400- </div>
3401- ` ;
3402- }
3403-
3404- function initAIResumeAnalyzer ( ) {
3405- const analyzeBtn = document . getElementById ( 'analyzeBtn' ) ;
3406- const resumeInput = document . getElementById ( 'resumeInput' ) ;
3407- const ats = document . getElementById ( 'ats' ) ;
3408- const bottomSection = document . getElementById ( 'bottomSection' ) ;
3409-
3410- if ( ! analyzeBtn || ! resumeInput || ! ats || ! bottomSection ) return ;
3411-
3412- analyzeBtn . addEventListener ( 'click' , ( ) => {
3413- if ( ! resumeInput . files . length ) {
3414- alert ( 'Upload resume first!' ) ;
3415- return ;
3416- }
3417-
3418- ats . classList . remove ( 'hidden' ) ;
3419- bottomSection . classList . remove ( 'hidden' ) ;
3420- } ) ;
3421- }
3422-
3423-
3424-
3323+ // getAIResumeAnalyzerHTML and initAIResumeAnalyzer are defined in
3324+ // js/projects/resume-analyzer.js to keep the codebase organized and modular.
34253325
34263326
34273327function initializeProject ( projectName ) {
0 commit comments