Certainly! Here’s a well-structured “About the Project” section in Markdown, with LaTeX support for math if you want to include any formulas or scoring breakdowns.
About the Project
Inspiration
The job search process can be overwhelming, especially when it comes to crafting a resume that stands out to both recruiters and Applicant Tracking Systems (ATS). I was inspired to build ResuScan after seeing friends and colleagues struggle with resume rejections, often without feedback. I wanted to create a tool that not only analyzes resumes for ATS compatibility but also empowers users to improve their chances with actionable insights and real-time editing.
What I Learned
- ATS Algorithms: I dove deep into how ATS systems parse and score resumes, learning about keyword optimization, formatting pitfalls, and the importance of clear structure.
- OCR & API Integration: Implementing OCR for LinkedIn profile analysis and integrating (then later removing) the LinkedIn API taught me about handling third-party services, authentication, and fallback strategies.
- Full-Stack Development: Building both the backend (FastAPI, Python) and frontend (React, Vite) enhanced my skills in RESTful API design, state management, and real-time UI feedback.
- PDF Generation: I learned to use libraries like ReportLab to dynamically generate professional, ATS-friendly PDF resumes.
How I Built It
Backend:
- Built with FastAPI for rapid development and easy API documentation.
- Implemented endpoints for resume analysis, versioning, and PDF export.
- Integrated Tesseract OCR for extracting text from LinkedIn screenshots.
- Used JSON for storing resume versions and ReportLab for PDF generation.
Frontend:
- Developed with React and Vite for a fast, modern user experience.
- Created a WYSIWYG resume editor with live ATS feedback, undo/redo, and auto-save.
- Designed intuitive navigation for version management and PDF export.
- Ensured a clean, responsive UI for both desktop and mobile users.
Version Control & Collaboration:
- Managed code with Git and GitHub, following best practices for commits and .env security.
Challenges Faced
- Parsing Complex Resumes:
Handling diverse resume formats and extracting meaningful data for ATS analysis required robust parsing logic and error handling. - Real-Time Feedback:
Providing instant, actionable feedback in the editor while maintaining performance was a technical challenge, especially with large resumes. - Third-Party Integrations:
Integrating and later removing the LinkedIn API required careful management of authentication flows, error states, and fallback modes. - PDF Consistency:
Ensuring that exported PDFs matched the live editor’s formatting and remained ATS-friendly involved fine-tuning templates and layout logic. - User Experience:
Balancing feature richness with simplicity, and making the platform accessible to non-technical users, was a constant design consideration.
Math & Scoring
The ATS analysis uses a weighted scoring system:
[ \text{ATS Score} = w_1 \cdot \text{Keywords} + w_2 \cdot \text{Formatting} + w_3 \cdot \text{Section Completeness} + \ldots ]
Where ( w_i ) are weights assigned to each criterion based on their importance for ATS compatibility.
ResuScan is the result of combining technical curiosity, empathy for job seekers, and a drive to make the job search process more transparent and successful for everyone.
Built With
- fastapi
- groq
- materialui
- natural-language-processing
- nltk
- react
- spacy
Log in or sign up for Devpost to join the conversation.