Introduction
Overview
The Japanese ATS Resume Analyzer is a specialized Applicant Tracking System designed to streamline the recruitment and admission process for Japanese language programs and professional roles. Developed as part of an academic internship project, the system bridges the gap between manual application review and automated candidate shortlisting through intelligent resume parsing and keyword matching.
The platform provides a dual-interface experience: an intuitive submission portal for applicants and a robust management dashboard for administrators to track, score, and notify candidates.
Core Value Proposition
In traditional recruitment, manually filtering resumes for specific technical skills or language proficiencies (such as JLPT levels) is time-consuming. This system automates that process by:
- Automated Resume Parsing: Extracting text directly from PDF uploads using cloud-based functions.
- Keyword-Based Shortlisting: Comparing extracted resume text against a predefined set of industry-standard keywords (e.g., "JLPT N2," "TypeScript," "React").
- Status Management: Providing a unified workflow to move candidates from "Pending" to "Accepted" or "Rejected" with automated email feedback.
Key Features
For Applicants
- Streamlined Application: A validated form to capture personal details, educational background, and experience.
- Secure Resume Upload: Integrated PDF upload functionality.
- Instant Feedback: Visual confirmation upon successful submission.
For Administrators
- Candidate Dashboard: A high-level overview of all applicants with sorting and filtering capabilities.
- Intelligence Scoring: View "Keyword Match Scores" to quickly identify high-potential candidates.
- Document Management: One-click download of original PDF resumes.
- Automated Notifications: Change application statuses and trigger automated email notifications via the Resend API integration.
- Data Portability: Export candidate lists to CSV for external reporting and analysis.
System Workflow
The system operates on a modern serverless architecture. When an applicant submits their CV, the following sequence occurs:
- Storage: The PDF is stored in a Supabase Storage bucket.
- Trigger: An Edge Function (
parse-cv) is invoked. - Extraction: The system extracts raw text from the PDF.
- Analysis: The text is scanned for relevant keywords, and a matching score is calculated.
- Persistence: The score and matched keywords are saved back to the database for the administrator to review.
Application Data Model
Administrators and developers can interact with the following core data structure within the applicants table:
interface Applicant {
id: string;
full_name: string;
email: string;
highest_degree: string;
years_of_experience: number;
preferred_course: string; // e.g., "JLPT N2 Preparation"
status: "pending" | "reviewed" | "accepted" | "rejected";
keyword_match_score: number | null; // Calculated 0-100
matched_keywords: string[] | null;
cv_file_path: string;
}
Technology Stack
The application is built with a focus on performance and type safety:
- Frontend: React with TypeScript, powered by Vite.
- Styling: Tailwind CSS with shadcn-ui components for a professional, accessible interface.
- Backend/Database: Supabase (PostgreSQL, Auth, and Storage).
- Automated Logic: Supabase Edge Functions (Deno).
- Notifications: Resend API for transactional email.