Skip to content
/ summit Public

Summit - Job application tracker for students and job seekers that feeds off your inbox.

License

Notifications You must be signed in to change notification settings

jmo-on/summit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

717 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Summit - Job Application Tracker

Live Application →

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.


Project Documentation


Architecture & Technology Stack

Frontend

  • 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.

Backend

  • 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.

Deployment & Database

  • Render: Cloud platform used to host both frontend and backend services.
  • Supabase: Handles user authentication and PostgreSQL-based database management.

Testing

  • 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.

Getting Started

1. Clone the Repository

git clone https://github.com/cs421sp25-homework/team-02.git
cd team-02

2. Set Up Environment Variables

Copy .env.example to create your own environment files:

cp frontend/.env.example frontend/.env
cp backend/.env.example backend/.env

Update all <YOUR_*> fields with actual credentials (API keys, secrets, etc.).


Running the App with Docker

Make sure Docker and Docker Compose are installed.

docker compose up --build

To apply local changes:

docker compose down
docker compose up --build

Running Without Docker

Frontend

cd frontend
pnpm install --frozen-lockfile
pnpm dev

Backend

cd 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 runserver

Start background services:

  • Celery (for async task queueing):

    celery -A backend worker --loglevel=info
  • Redis:

    brew install redis   # installing on macOS
    redis-server

Testing

Frontend

  • Jest: Add .test.tsx files and run:

    pnpm test
  • Cypress:

    pnpm cypress open # for cypress launcher
    pnpm cypress run # running w/o visual launcher

Backend

  • Django Tests:
    python manage.py test --keepdb

Email Processing Pipeline

Classification with fintuned Bert

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.py

Parsing with OpenAI

The 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

Fetching & Filtering

  • Non-job-related emails are discarded using GPT classification.
  • Backend uses Celery to handle async processing as new emails arrive.

Manual Testing

  1. Send an email to the connected Gmail.
  2. Ensure Redis/Celery is running.
  3. Confirm parsed results show up in dashboard and DB (application or temp_application).

Job Scraping

To scrape jobs:

cd backend/job_scraping
python job_scraper.py
  • Customize job roles, cities, or scraping duration in job_scraper.py.
  • Save to .csv or ingest directly into Supabase:
    python database_injection.py

Chatbot Integration

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.

Key Features:

  • 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.


Features

  • 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

Contributing

Please see CONTRIBUTING.md for contribution guidelines.

License

This project is licensed under the terms in LICENSE.md.

About

Summit - Job application tracker for students and job seekers that feeds off your inbox.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 5