Team members: Rachel Tee Jia Hui
PLEASE NOTE: Due to PythonAnywhere free subscription limitations, image and document uploads cannot be saved to Cloudinary. Please refrain from uploading.
Inspiration/Problem Statement: A degree doesn't actually show what someone's real capabilities are. Skilled students and early-career talent get overlooked because they all have similar educational pathways, and can't prove their unique abilities. Employers often waste time on an overwhelming number of applicants with unverifiable claims.
My solution: SkillMatch is an AI-powered skill verification and opportunity matching platform. Instead of relying on resumes or self-declared skills, users upload real evidence such as projects, competition placements, certifications, freelance work, and our AI scoring engine generates an explainable Opportunity Score that matches them to jobs, internships, and freelance gigs based on demonstrated ability. Corporates can browse verified talent, post jobs, and see exactly why each candidate fits their needs. Individuals can also offer and find freelance services through a built-in marketplace. My motto is Learn. Verify. Match. Earn.
Solution Summary: SkillMatch turns proven skills into real opportunities. Users upload evidence like projects, competitions, certifications, and freelance work, and then our AI-assisted scoring engine generates a concrete opportunity score matching them to jobs and gigs based on demonstrated skill, not claims or prestige.
Target audience: students, self-taught learners, early-career freelancers with real evidence of their skills through projects, competitions, and certifications, but no way to convert that into jobs, internships, or freelance gigs, and coperations who are struggling to find applicants with proven skills
How I built it: Built with Python and Flask for the backend, SQLite via SQLAlchemy for the database, and vanilla HTML, CSS, and JavaScript for the frontend, no UI frameworks, everything custom. The Opportunity Score uses a hybrid system, a rule based practical compatibility scorer (work mode, salary, availability, etc.) combined with OpenAI's API for semantic skill relevance analysis against uploaded evidence. Scores are cached in the database to avoid redundant API calls and ensure consistency across pages. File uploads are handled via Cloudinary. The app supports two account types, Individual and Corporate, with entirely separate homepages, profile pages, and scoring contexts. Deployed on PythonAnywhere.
Challenges we ran into: The biggest challenge was building the AI scoring engine in a way that felt fair and explainable, no bias or hidden info. Getting ChatGPT to consistently return structured JSON with company-perspective framing (rather than narrative advice) required careful prompt engineering. On the technical side, managing two completely different user experiences (individual and corporate) within one Flask app without duplicating code was tricky. Deployment was also a last-minute challenge, the laptop the project was built on crashed and died the day before the submission, requiring a full rebuild on another laptop from scratch using conversation history as the only backup.
Accomplishments that I'm proud of: Getting a real, explainable AI scoring system working end to end, not just calling an API, but combining rule based logic with semantic AI analysis and caching results intelligently. Building a fully functional two sided marketplace with separate corporate and individual experiences, public profile views, clickable listing detail pages, and opportunity scores that show up contextually throughout the app. And honestly, finishing at all. Rebuilding the entire project overnight on a new laptop after losing everything, and still deploying a live working prototype before the deadline.
What I've learned: This was my first full-stack project and my first time working with AI APIs. I learned how to structure a Flask app with multiple user roles, how to design database models that support complex relationships, how to write effective prompts for structured AI output, and how to deploy a Python web app to production. I also learned that saving to GitHub is not optional after losing an entire project to a hardware failure at 12am.
What's next for SkillMatch: The core infrastructure has been built, what comes next is making it a real platform. Immediate next steps include a messaging system so corporates and individuals can communicate directly, working Apply/Offer/Request buttons for actual job applications and service requests, and SkillsFuture integration for course recommendations when skill gaps are identified. My long term goals include: institutional partnerships for discounted upskilling access with affiliate referral revenue, a review and rating system to build freelancer reputation, and mobile apps. The vision is a single platform where anyone can learn a skill, prove it, get matched to the right opportunity, and earn from it, all without a degree or a polished resume getting in the way. SkillMatch will also have an automatic AI verification system that cross references the certificate that users uploaded to the other certificates of the competition that they participated in from external sources usingimage recognition technology. Once I expand, there will also be a paid option for SkillMatch to manually verify the achievements by contacting relevant parties and getting a letter of verification. This however can only be implemented once SkillMatch has a stable footing and sufficient connections in the industry. Only verified achievements will be taken into account for the calculation of the Opportunity Score to ensure reliability of evidence.
Built With
- claude
- cloudinary
- css
- flask
- html
- javascript
- openai
- python
- sqlite
Log in or sign up for Devpost to join the conversation.