A Smart Application Tracking & Skill Recommendation Platform
Our Job Application Manager is a full-stack web platform that helps users organize their job search and application process. Job seekers often lose track of deadlines, stages, and required skill requirements across many platforms. Our application allows users to:
- Track various applications on a centralized dashboard
- Get suggestions by AI on skills to practice
- Get recommended LeetCode problems from job position applied to
- Upload profile & resume
- Chat with AI to get further suggestions
There are some existing application similar to our application such as LeetCode and Simplify. But they rather focus on one part of the application process (tracker, practice questions, etc.) while our application integrate them together. Moreover, compared with existing spreadsheets or job-tracking tools, our system is smarter and more personalized: the AI analyzes job descriptions and the user's background to recommend specific skills and practice problems—reducing stress and improving preparation efficiency.
Motivation: Searching for jobs is overwhelming. We wanted to build a tool that we ourselves would use—a platform combining tracking, organization, and personalized learning guidance.
Functionalities: Displays UI, Manages application list and forms, Handles login and profile pages
Interaction: Sends requests to backend via HTTP (REST API) such as create, update, read. Get the JSON response from backend
Language/Library: React, Vite, Javascript, CSS
Functionalities: Authentication, CRUD for applications, Resume upload handling
Interaction: Get HTTP request from frontend and send response in JSON; Use Django ORM to communicate with SQLite Database; Send prompt to AI via OpenAI API to get response
Language/Library: Django, Python
Functionalities: Extracts keywords from job description, Calls OpenAI API for skill suggestions, Returns recommended skills and LeetCode topics
Interaction: Get Job Description and Prompt from backend via OpenAI API
Language/Library: OpenAI, Python
Functionalities: Stores user accounts, Stores job application info, Stores LeetCode problem info
Interaction: The backend performs CRUD operations using Django ORM
Language/Library: SQLite, Django ORM
git clone https://github.com/CS222-UIUC/Job-Application-Manager.git
cd Job-Application-Managercp .env.example .env
# Edit .env and fill in your own values (e.g. OPENAI_API_KEY)docker-compose up --buildNow you should be able to use the app (see step 4).
If it doesn't work, you may need to setup the database for the first time
# In another terminal:
# setup database
# - migrate
docker compose exec backend python manage.py migrate
# - upload the first 3758 leetcode problems
docker compose exec backend python manage.py get_leetcode_problemYou can check if both backend and frontend are running using the command
docker-compose psAlso, if you want to manage the backend database, you may need to create superuser.
# create superuser by this command, following the instruction
docker compose exec backend createsuperuserNow you should be able to use the frontend website at http://localhost:5173/
And the backend database at http://localhost:8000/admin/ (using your own account)
