Inspiration

I built SkillSync because I realized most career advice platforms today are too generic and slow. I wanted to create a smart, fast, personalized AI career coach, something that could turn a user's resume into career paths, learning plans, mock interviews, and cover letters, in minutes, not months. My goal was to make career growth more accessible, especially for students and early professionals.

What it does

SkillSync is an AI-powered career coach that helps users grow professionally by:

-📄 Uploading a resume (PDF or image).

  • 🎯 Instantly recommending realistic career paths based on your resume and goals.

  • 💰 Showing average U.S. salaries for each career.

  • 🏢 Listing real companies hiring for each role (startups + big tech).

  • 🔍 Analyzing skill gaps: highlights your strengths and skills you need to develop.

  • 📅 Generating a 12-week personalized learning plan to close gaps.

  • 📝 Creating professional, customized cover letters.

  • 🎤 Conducting real-time mock interviews with feedback on answers.

  • 📈 Giving detailed strengths and areas to improve.

  • 📥 Allowing one-click PDF downloads for learning plans and cover letters.

How I built it

Frontend:

  • Built with HTML, CSS, and vanilla JavaScript for a clean, modern, and user-friendly interface.

  • Integrated html2pdf.js to allow users to download cover letters and learning plans instantly as PDFs.

Backend:

  • Built with Node.js and Express.js.

  • Used multer for file uploads and pdf-parse to extract resume text from PDFs.

  • Integrated with the Gemini 2.0 API to generate career paths, cover letters, mock interview questions, and skill gap analyses.

  • Managed sensitive API keys securely using environment variables (.env).

Prompt Engineering:

  • Designed specific prompts for each feature to ensure structured, accurate JSON output from Gemini.

Challenges I ran into

Dynamic button generation: Since some buttons only appear after uploading a resume, I had to manage event delegation properly to make sure all interactions worked.

Handling messy AI outputs: Gemini sometimes returned responses with formatting issues (like extra markdown or incomplete JSON), so I had to build cleaning and parsing logic.

Balancing time and features: I had a lot of ambitious ideas (mock interviews, gap analysis, learning plans), so I focused on building the features that delivered the most user value first.

Thinking about scalability early: Even though it's a hackathon project, I structured the backend so it could easily be expanded to handle more careers, more interview types, or even real-time collaboration in the future.

Accomplishments that we're proud of

  • Turning a raw resume into an entire career plan, mock interview experience, and downloadable cover letter in under a minute.

  • Designing clean prompts that consistently generated structured JSON from Gemini with zero issues.

  • Building an end-to-end app with upload, analysis, feedback, and real-time interaction solo within a short deadline.

  • Delivering a professional, modern, accessible UI that looks polished and feels intuitive.

  • Structuring the codebase for future scalability, allowing easy addition of new features like company-specific interviews or deeper analytics.

What I learned

  • How precise prompt engineering directly impacts AI response quality.

  • How to create scalable backend services that can easily grow with additional features.

  • How small frontend touches (like one-click downloads and smooth UI) dramatically improve user experience.

What's next for SkillSync

  • Company-Specific Interview Simulation: Simulate mock interviews for companies like Google, Amazon, or startups, using company-specific question patterns.

  • Portfolio Project Generator: Suggest and even help users design mini-projects to build their resume further.

  • Deeper Analytics: Offer users personalized dashboards to track skill growth, mock interview progress, and readiness scores over time.

  • Accessibility Enhancements: Make the platform even more mobile-friendly and optimize for diverse accessibility needs.

Share this project:

Updates