Summit is a full-stack job application tracker designed for students and job seekers. It streamlines the job-hunting process by intelligently integrating with your Gmail inbox to fetch, parse, and organize job-related emails, while also providing job discovery and status tracking in a single dashboard.
- React.js: Component-based UI library for dynamic user interfaces.
- TypeScript: Adds static type checking to improve maintainability.
- Vite: Lightning-fast build tool for frontend development.
- TailwindCSS: Utility-first CSS framework for consistent and responsive design.
- Django Rest Framework (DRF): Robust backend API with secure and scalable endpoints.
- Gmail API: Retrieves user emails for job-related content extraction.
- OpenAI API: Parses email content using LLMs to extract job data like status and deadlines.
- Google Calendar API: For updating user calendar for notification.
- Render: Cloud platform used to host both frontend and backend services.
- Supabase: Handles user authentication and PostgreSQL-based database management.
- Jest: For unit testing frontend logic.
- Cypress: End-to-end testing tool for user flows and UI interactions.
- Django Built-in Test Suite: Verifies backend logic and model integrity.
git clone https://github.com/cs421sp25-homework/team-02.git
cd team-02Copy .env.example to create your own environment files:
cp frontend/.env.example frontend/.env
cp backend/.env.example backend/.envUpdate all <YOUR_*> fields with actual credentials (API keys, secrets, etc.).
Make sure Docker and Docker Compose are installed.
docker compose up --buildTo apply local changes:
docker compose down
docker compose up --buildcd frontend
pnpm install --frozen-lockfile
pnpm devcd backend
python -m venv venv
source venv/bin/activate # macOS
# or venv\Scripts\activate on Windows
pip install -r requirements.txt
python manage.py makemigrations
python manage.py migrate
python manage.py runserverStart background services:
-
Celery (for async task queueing):
celery -A backend worker --loglevel=info
-
Redis:
brew install redis # installing on macOS redis-server
-
Jest: Add
.test.tsxfiles and run:pnpm test -
Cypress:
pnpm cypress open # for cypress launcher pnpm cypress run # running w/o visual launcher
- Django Tests:
python manage.py test --keepdb
The system takes inputs sender, subject, content, and classifies it as either job application related or no. If no, the system returns early, but if yes the system proceeds to the second layer, sending data to OpenAI.
For running classification tests (make sure validation_email_data.json exists in /data):
cd backend/backend/email_parser
python validation.pyThe system extracts the following fields:
job_related: Whether the email is job-related.company_name: Detected company.application_status: Applied, OA, Interview, Rejection, Offer, etc.deadline: Application-related deadlines.
For running parsing tests:
cd backend/backend/email_parser
python email_parsing.py- Non-job-related emails are discarded using GPT classification.
- Backend uses Celery to handle async processing as new emails arrive.
- Send an email to the connected Gmail.
- Ensure Redis/Celery is running.
- Confirm parsed results show up in dashboard and DB (
applicationortemp_application).
To scrape jobs:
cd backend/job_scraping
python job_scraper.py- Customize job roles, cities, or scraping duration in
job_scraper.py. - Save to
.csvor ingest directly into Supabase:python database_injection.py
The Summit platform includes a powerful chatbot feature that leverages advanced AI capabilities to enhance user experience and assist in job search and application management.
-
Semantic Vector Search for Job Recommendations
The chatbot utilizes semantic vector embeddings to match user queries with relevant job listings. By understanding the context and meaning of queries, it provides accurate and tailored job suggestions beyond simple keyword matching. -
Tool Calling with SQL Generation
The chatbot is capable of generating SQL queries based on natural language instructions from users. This enables seamless interaction with the Supabase database, allowing users to fetch or filter application data without knowing SQL.
These intelligent capabilities are powered by integration with the OpenAI API and are designed to help users navigate their job search efficiently and intuitively. We also include a very comprehensive instruction to help users navigate around the app itself or for app-related questions.
- Gmail Login Integration
- Smart Email Parsing
- Status Detection – Applied, OA, Interview, Rejection, Offer
- Duplicate Application Detection
- Real-time Gmail Sync
- Application Cycle Manager – Fall, Spring, Summer, or Custom
- Job Discovery Engine – Scrapes from multiple platforms
- Chatbot - can discuss with users on their application status or job recommendations.
- Google Calendar Integration
- Statistics - to visualize user statistics on current cycle, including basic stats and sharable sankey diagram
Please see CONTRIBUTING.md for contribution guidelines.
This project is licensed under the terms in LICENSE.md.