CREATE DATABASE IF NOT EXISTS job_matcher_db; USE job_matcher_db; CREATE TABLE IF NOT EXISTS jobs ( job_id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255) NOT NULL, company VARCHAR(255), location VARCHAR(255), posted_date_raw VARCHAR(100), job_link VARCHAR(512) UNIQUE NOT NULL, is_actively_hiring BOOLEAN DEFAULT FALSE, description TEXT DEFAULT NULL, match_score INT DEFAULT NULL, match_breakdown JSON DEFAULT NULL, matched_skills JSON DEFAULT NULL, missing_skills JSON DEFAULT NULL, verdict VARCHAR(50) DEFAULT NULL, detail_fetched_at DATETIME DEFAULT NULL, scored_at DATETIME DEFAULT NULL, created_at DATETIME DEFAULT CURRENT_TIMESTAMP, INDEX idx_match_score (match_score), INDEX idx_verdict (verdict) ); CREATE TABLE IF NOT EXISTS users ( user_id INT AUTO_INCREMENT PRIMARY KEY, telegram_token VARCHAR(255) NOT NULL, telegram_chat_id VARCHAR(50) NOT NULL, min_match_score INT DEFAULT 70, created_at DATETIME DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE IF NOT EXISTS alert_logs ( alert_id INT AUTO_INCREMENT PRIMARY KEY, user_id INT NOT NULL, job_id INT NOT NULL, alerted_at DATETIME DEFAULT CURRENT_TIMESTAMP, UNIQUE KEY unique_user_job (user_id, job_id), FOREIGN KEY (user_id) REFERENCES users(user_id), FOREIGN KEY (job_id) REFERENCES jobs(job_id) );