Files
Job-hunter/schema.sql
T
2026-05-27 19:48:48 -04:00

56 lines
2.0 KiB
SQL

CREATE DATABASE IF NOT EXISTS job_scraper_db;
USE job_scraper_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)
);
-- Migration: add columns required by daemon.py to an existing jobs table
-- Run once against an existing job_scraper_db; safe to skip if columns already exist.
ALTER TABLE jobs
ADD COLUMN description TEXT DEFAULT NULL,
ADD COLUMN match_score INT DEFAULT NULL,
ADD COLUMN match_breakdown JSON DEFAULT NULL,
ADD COLUMN matched_skills JSON DEFAULT NULL,
ADD COLUMN missing_skills JSON DEFAULT NULL,
ADD COLUMN verdict VARCHAR(50) DEFAULT NULL,
ADD COLUMN detail_fetched_at DATETIME DEFAULT NULL,
ADD COLUMN scored_at DATETIME DEFAULT NULL,
ADD INDEX idx_match_score (match_score),
ADD INDEX idx_verdict (verdict);