Inspiration: With recent cuts to OSAP grants, many of our fellow students in Ontario are struggling to pay for their education. According to stats Canada, 42% of students leverage student loans to pay for their education. Conversly, millions of dollars in scholarship funding go unclaimed simply because the application process is a "black hole" of manual data entry, repetitive essay writing, and fragmented tracking.

We built ScholarSync to eliminate the fear of student debt, using AI to turn a static resume into a dynamic, fund-seeking engine.

What it does: ScholarSync is an end-to-end scholarship management platform that: Parses Resumes with AI: Instantly extracts academic history, volunteer hours, and interests from a PDF. Intelligent Matching: Replaces generic searches with a personalized "Match Score" ($S_m$) calculated across university databases. The Essay Vault: Re-uses your best writing by drafting new scholarship essays based on your unique profile and past experiences. Applied Tracker: Provides a high-level dashboard to manage deadlines and application statuses in real-time.

How we built it: We prioritized a robust, production-grade stack that could handle sensitive student data and complex AI prompts: Backend: A high-performance Python/Flask server utilizing SQLAlchemy for relational data management. Intelligence: Integrated Google Gemini API (Gemini 2.5 models) for structured data extraction and creative writing assistance. Identity: Used Auth0 for secure, OIDC-compliant authentication, ensuring user profiles and documents are protected. Frontend: A modern, mobile-responsive dashboard built with Tailwind CSS and Jinja2 templates, focusing on high-end glassmorphic aesthetics. Database: A localized SQLite instance optimized for quick scoring queries.

Mathematical Scoring: To ensure students focus on the best opportunities, we implemented a weighted scoring algorithm where the Match Score $S$ is defined as:

$$S = \sum_{i=1}^{n} w_i \cdot c_i$$

Where: $w_i$ represents the weight of a criterion (e.g., GPA, Location, or Major). $c_i$ is the individual compatibility score for that specific category.

Challenges & Triumphs: The AuthHandshake: Integrating the Auth0 SDK with a background event loop in a Flask environment was tricky, especially when managing session persistence across redirects. We had to implement a custom "run_async" handler to bridge the synchronous web server with asynchronous SDK calls. Data Consistency: Extracting clean JSON from natural language resumes is inherently "noisy." We spent significant time fine-tuning our system prompts to ensure the AI correctly categorized volunteer hours and GPA scales without errors.

What we learned We learned that UX is just as important as AI. An AI that drafts a perfect essay is only useful if the student can find and track that essay easily.

What’s Next for ScholarSync? Our goal is to expand our database and allow more options for students, allowing for a quick quantitative application experience. Furthermore we want to finish and deploy our chrome extention prototype, so that users can autofill for quick applications.

Share this project:

Updates