-
-
Separate job seeker and employer portals enable account registration, login, profile management, and personalized internship experiences.
-
InternMatch homepage featuring internship discovery, AI-powered job matching, career exploration, and career resources in one platform.
-
Search and filter internships by field, location, work mode, duration, and allowance, with listings and personalized recommendations.
-
AI Job Match analyzes resumes and skills, scores internship compatibility, identifies skill gaps, and recommends personalized opportunities.
-
Explore career paths across industries, discover related internships, and understand essential skills and potential career progression.
-
Career Toolkit provides skill gap analysis, internship readiness scores, learning roadmaps, resume assistance, and mock interview practice.
-
Customizable display settings offer light and dark themes, adjustable font sizes, and layout density for a comfortable user experience.
-
Dedicated employer registration and login enable companies to create accounts and manage internship opportunities on InternMatch.
-
Employers can publish internships, manage listings, edit opportunities, and track active postings through a centralized dashboard.
## Inspiration
Finding an internship can be overwhelming for students, especially those who are preparing to enter the workforce and pursue better career opportunities, or the students who are still unsure about which career direction suits them. For students in Malaysia, internship opportunities are often scattered across different platforms, company websites, and job portals. Students may need to compare locations, work modes, allowance ranges, required skills, and company information manually before deciding whether an internship is suitable.
At the same time, many students do not know whether their current skills match a particular internship role. Even when they find an interesting opportunity, they may still be unsure about what skills they already have, what skills they are missing, or what other roles may suit them better. Also, employers need a simple way to publish internship opportunities and reach students.
This inspired us to create InternMatch, an AI-assisted internship and career readiness platform designed around the Malaysian internship market.
Our goal was to make the internship search process simpler and more personalized, especially for students who may not yet know which roles best match their skills. Instead of only showing internship listings, InternMatch also helps students understand how their current skills relate to different career paths and internship roles. In short, our goal aimed to connect internship discovery, job matching, career preparation, and employer listings within one student-friendly platform.
## What it does
InternMatch is a web-based platform that supports students throughout different stages of their internship journey. Instead of only helping users find an internship, the platform helps them move from discovering internships, match suitable jobs, prepare and apply for internships. The current prototype focuses on internship opportunities from companies operating in Malaysia.
The Platform currently features internship opportunities from companies operating in Malaysia with 160 structured internship listings across 16 internship fields. The available fields are:
- Accounting
- Business
- Customer Service & Customer Experience
- Cybersecurity
- Data Science
- Design
- Education & Training
- Engineering
- Hospitality & Tourism
- Human Resources & Recruitment
- Legal & Compliance
- Marketing
- Procurement & Vendor Management
- Psychology
- Software / IT
- Supply Chain & Logistics
The Job Search page includes filters for internship field, location, work mode, duration, and allowance. Students can search for specific internship titles or companies, view detailed internship information, and save opportunities to their profile. By using the given student-focused filters, students can browse internships based on their interests effectively.
Each internship has its own detail page and it will display information such as: Internship title, Company name, Company logo, Location, Work mode, Monthly allowance, Internship duration, Required skills, Internship description.
Also, students can click View Details to access more complete internship information, including: Internship description, Responsibilities, Required skills, Preferred skills, Company information, Company website and contact information. After that, users can also save internships they are interested in and view them later through their profile.
InternMatch also includes an AI Job Match feature. Students can enter information about their skills or upload a resume, and the system analyses their profile to predict suitable career directions and internship opportunities based on their skills. The model uses TF-IDF text representation + Logistic Regression to classify student profile text into suitable career directions. After receiving the AI result, users are also shown recommended internships that match their profile, with the option to view full job details.
The Career Info section helps students understand different career paths, the skills required for each career, and related internship roles before applying for internships. Each career section explains what the career involves, important skills, related internship roles, common tools or technologies, and possible career progression. This can help students connect internship opportunities with longer-term career goals.
InternMatch goes beyond career classification. When a student opens AI Job Match from a particular internship, the platform compares the student's profile directly with that internship.
The matching system will consider required skill coverage, preferred skill coverage, and resume-to-job text similarity. For the text similarity component, InternMatch uses TF-IDF and cosine similarity. The default evidence weighting is based primarily on required skills, followed by preferred skills and text similarity. After that, the result produces an explainable Job Match Score out of 100.
Rather than simply showing a number, the platform also explains:
- Skills detected in the student's profile
- Required skills that were matched
- Required skills that were not detected
- Preferred skills that were matched
- Skills the student may want to review
- Why the internship was recommended
InternMatch clearly treats this as an estimated compatibility score rather than a prediction of hiring success. This was important to us because AI recommendations should help students make decisions without pretending that an algorithm can determine whether an employer will hire them.
As for the resume analysis, students can upload a PDF resume directly to InternMatch. The backend extracts readable text from the PDF and combines it with the student's entered profile information. The extracted information is then used for skill detection, career prediction, internship matching, and career readiness analysis. This makes the system easier to use because students do not need to manually re-enter every skill already listed on their resume.
As InternMatch developed, we realised that finding an internship is only part of the problem and found out that students also need help preparing for it. Therefore, the latest version of InternMatch includes a Career Toolkit. The toolkit allows students to choose a target internship and analyse their current readiness for that role.
The Career Toolkit calculates an internship readiness score based on available evidence in the student's profile or resume. The analysis includes required skill coverage, preferred skill coverage, profile detail, and skill-by-skill evidence. Skills are clearly separated into categories such as found in profile and not yet evidenced. We deliberately use the phrase not yet evidenced rather than claiming that the student does not possess the skill. Thus, the system can only analyse the information that the student provides.
InternMatch identifies important skills required by a target internship that were not detected in the student's current profile, and this helps students understand what areas they may want to strengthen before applying.
Also, the Career Toolkit can generate a structured roadmap for the student based on identified skill gaps. The platform provides actionable guidance on what the student could practise or learn next. This changes InternMatch from simply being an internship search platform into a tool that can also support career preparation.
InternMatch also provides resume improvement guidance based on the selected internship. The platform encourages students to highlight relevant skills closer to the top of the resume, use evidence-based project descriptions, explain their personal contribution, include relevant coursework or projects, tailor their resume to the role, and avoid inventing qualifications or experience. One of our priorities was to make the guidance responsible. Hence, InternMatch encourages students to improve how they communicate real experience instead of generating false achievements.
The Career Toolkit also provides interview preparation. Based on the selected internship, the system can generate practice questions in areas such as role-specific skills, problem solving, teamwork, motivation, and previous project experience. For example, when a role requires a specific skill, InternMatch may ask the student to explain a project or assignment where they used that skill. This helps make interview practice more relevant to the internship the student actually wants.
Students can enter their practice interview answers and receive structured feedback.
The feedback considers factors such as answer detail, relevant terms, structure, and whether the answer explains an outcome or lesson learned. InternMatch also encourages students to use the STAR structure, which is Situation, Task, Action, Result. The interview practice score is clearly presented as a practice heuristic, not a prediction of interview success.
InternMatch also includes application tracking functionality. Students can organise internship opportunities and keep track of their progress rather than managing applications across many different places. This supports the later stage of the internship journey after students have discovered and evaluated opportunities.
Students can create an InternMatch account through the Sign Up and Login pages. Users can sign up, log in, complete their profile by entering personal and education information, add their skills, save internships, view saved opportunities, and update their profile through the My Profile page. For first-time users, the platform collects basic information such as name, age, university or college, course or major, study year, location, and skills. This information helps make the platform more personalized for student users. The My Profile page allows students to update their information and access saved internships. For the current hackathon prototype, student account and profile information is stored locally in the browser using localStorage.This provides a working prototype user experience while keeping the current implementation lightweight.
InternMatch also introduces an Employer Portal. This transforms the platform from a student-only internship directory into a two-sided internship platform. Employers can register an account using information such as company name, contact person, work email, company website, and password. Unlike the current prototype student account system, employer authentication is handled by the Flask backend. Employer passwords are stored using password hashing rather than plain-text passwords, and Flask sessions are then used to maintain authenticated employer sessions.
After logging in, employers can access the Employer Dashboard. Employers can create internship listings, view their internship listings, edit existing listings, and delete listings. When creating an internship, employers can provide information such as internship title, field, location, work mode, duration, allowance, description, required skills, preferred skills, and company website. New employer-created opportunities are integrated into the same internship catalogue used by student Job Search. This helps connect with students looking for internships and employers offering internships through InternMatch.
## How we built it
InternMatch was developed as a full-stack web application combining frontend development, backend APIs, machine learning, resume processing, and career analysis.
The frontend was built using HTML, CSS, and JavaScript. We created a consistent purple and blue design system across the platform, including responsive navigation, internship cards, company logos, search functionality, interactive filter buttons, job detail pages, AI result visualisations, career information, career toolkit interfaces, login and registration forms, student profile, employer authentication, employer dashboard, interactive hover effects, and responsive layouts.
For the backend, we used Python with Flask to handle the application logic and AI matching functionality. The system processes user skill information and communicates with the machine learning model to generate matching results. The Flask server provides APIs for retrieving internship listings, retrieving internship details, ai analysis, resume processing, career advice, employer registration, employer authentication, employer session management, creating internship listings, updating internship listings, deleting internship listings, career toolkit analysis, interview questions, and interview feedback. We also use Flask-CORS where required for frontend/backend communication.
Also, our career recommendation model was built using scikit-learn.. The training pipeline consists of:
- Text-based student profiles
- TF-IDF feature extraction
- Unigram and bigram features
- Logistic Regression classification
The Logistic Regression model uses balanced class weighting to reduce the effect of class imbalance, and the final trained model is stored using joblib and loaded by the Flask application. If the training dataset is updated, the backend can retrain the model so the saved model remains aligned with the current data.
Job-specific matching uses a separate explainable matching approach. InternMatch compares the student's detected skills with required skills and preferred skills. It also calculates semantic text similarity between the student's profile and the internship description using TF-IDF + Cosine Similarity. The system then combines available evidence into a matching score, hence this allows us to explain the result rather than returning an unexplained AI number.
As for the PDF resume processing, InternMatch uses pypdf to extract readable text from PDF resumes. The extracted resume text can then be used for skill extraction, career classification, internship matching, and career readiness analysis.
The InternMatch data, in the prototype it contains 160 internship listings across 16 internship fields, with 10 structured listings per field. The listings include companies operating in Malaysia and contain structured attributes including:
- Job title
- Company
- Location
- Work mode
- Allowance
- Duration
- Field
- Required skills
- Preferred skills
- Description
- Responsibilities
- Company description
- Website and contact information
The platform is therefore currently designed around the Malaysian internship market.
## Challenges we ran into
1. Connecting AI Results with Real User Actions
One of the main challenges was integrating the AI matching feature with the internship search experience. It was not enough for the model to simply predict a career category, because we thought a prediction alone does not help students take the next step. We wanted the result to be useful to students, so we connected the AI result with actual internship recommendations so users can immediately view suitable internships, explore company details, save opportunities, and compare different roles. This meant the matching output had to work together with the internship dataset and job detail pages, and made the AI feature more practical and relevant.
2. Preparing the Training Data
Another challenge was preparing suitable training data for the machine learning model. The original data was limited, so we had to restructure the dataset and ensure that the career categories were represented more evenly. We retrained the model using sixteen target career classes so that it could better support the main internship fields available on InternMatch. This helped us understand how strongly the quality and balance of training data affect machine learning results.
3. Designing for the Malaysian Internship Market
Because InternMatch is designed around the Malaysian internship market, we needed to think about what information students in Malaysia commonly look for. For example, internship seekers are often interested in monthly allowance, internship duration, location, hybrid / remote / on-site arrangements, required skills, company information. We designed the filters and internship details around these needs instead of copying a general employment platform.
4. Connecting Students and Employers
Adding employers introduced a different type of user. Students mainly need to: Discover -> Match -> Prepare -> Save. While employers need to: Register -> Publish -> Manage. We had to design separate user flows while still keeping both sides connected to the same internship catalogue.
5. Authentication
Authentication also presented different technical challenges. Our student authentication currently uses local browser storage as a hackathon prototype. For employers, however, we implemented backend authentication with password hashing, Flask sessions, and HTTP-only session cookies. This taught us how authentication requirements become more important as an application moves closer to real-world use.
6. Maintaining UI consistency
We also spent significant time improving the user interface. Since InternMatch includes several different functions such as job search, AI matching, career exploration, authentication, and profiles, we needed to make sure every page followed the same visual style to maintain the design consistency, such as applying purple and blue colors, rounded buttons, shared navigation, etc. throughout the project.
7. Managing Multiple Internship Records
Managing a large number of internship listings was another challenge. The platform currently includes 160 internship records across sixteen fields. As the number of internship listings increased, we had to keep job information structured and make sure filtering, search, saving, and detail viewing worked consistently.
## Accomplishments that we're proud of
We are proud that InternMatch developed from a simple internship search idea into a more complete student career platform. Some of our key accomplishments include:
- Building a platform specifically around Malaysian internship seekers
- Expanding the system to 160 structured internship listings
- Supporting 16 internship fields
- Implementing multi-filter internship discovery
- Creating detailed company and internship pages
- Integrating PDF resume processing
- Training an eight-class career classification model
- Creating explainable internship match scores
- Showing required and preferred skill coverage
- Providing AI-assisted internship recommendations
- Developing skill-gap analysis
- Building personalized career roadmaps
- Adding resume improvement guidance
- Creating role-specific interview practice
- Providing transparent interview feedback
- Adding an application tracker
- Implementing student profiles and saved internships
- Creating employer registration and login
- Hashing employer passwords
- Building an employer internship management dashboard
- Allowing employers to create, edit, and delete internship opportunities
- Connecting employer-created listings directly with student Job Search
- Maintaining a consistent responsive UI throughout the platform
The part we are most proud of is that the AI result does not stop at telling the user what career may suit them. It also directs them toward relevant internship opportunities they can explore immediately.
## What we learned
Through this project, we learned that building a useful AI application requires more than just training a machine learning model. The quality and structure of the training data strongly affect the usefulness of the results. We learned how important balanced categories and clear skill-based examples are when training a career classification model.
We also learned how frontend and backend components need to work together. Features such as AI matching become much more useful when they are connected to real user actions such as viewing internships, saving opportunities, and exploring career information.
Another important lesson was UI consistency. Even when individual features work correctly, the application can still feel incomplete if navigation, spacing, colors, buttons, and layouts are inconsistent. We therefore spent significant time improving the UI and user flow.
We also learned how to design around a specific target audience. Instead of building another general job portal, we designed InternMatch specifically for students looking for internships in Malaysia. Since InternMatch is focused on students and interns, we build the platform around internship-related information such as allowance, internship duration, required skills, and career paths instead of general employment features.
## What's next for InternMatch
The next step for InternMatch is to make the platform more personalized and production-ready.
We plan to improve the user account system by moving authentication and saved data from browser storage to a proper database. At the same time, we would also like to expand the internship dataset and connect the platform to live internship sources so users can access updated opportunities.
Also, we plan to improve on employer account verification. Employer registration could be extended with email verification, company verification, employer approval, verified-company badges, etc. This would help reduce fraudulent internship listings.
We would like to enhance employer dashboards that could allow companies to receive applications, view applicants, shortlist candidates, update application status, and contact selected students. This would make InternMatch a more complete two-sided recruitment platform.
Besides, resume analysis could be expanded beyond skills to identify education, projects, work experience, certifications, languages, and achievements. Thus, this would allow better internship recommendations.
Future recommendation systems could consider course or major, university year, skills, career interests, preferred location, work mode, allowance preference, previous saved jobs, previous applications. This could create more personalised internship rankings.
Last but not least, InternMatch currently focuses on the Malaysian internship market. Malaysia gives us a clear starting point and target user group. In the future, the same model could be adapted to other countries while keeping localized:
- Employers
- Internship requirements
- Locations
- Career information
- Recruitment expectations
Built With
- cosine-similarity
- css
- flask
- flask-cors
- git
- html
- javascript
- joblib
- json
- local-storage
- logistic-regression
- machine-learning
- pandas
- pypdf
- python
- rest-api
- scikit-learn
- tf-idf
- visual-studio
- web-design
- werkzeug

Log in or sign up for Devpost to join the conversation.