initial public release

This commit is contained in:
2026-07-06 11:05:50 -04:00
commit ca518c5f8a
94 changed files with 15699 additions and 0 deletions
@@ -0,0 +1,88 @@
-- Users / Profile
CREATE TABLE IF NOT EXISTS profile (
id INTEGER PRIMARY KEY CHECK (id = 1),
name TEXT,
email TEXT,
location TEXT,
timezone TEXT,
salary_target_min REAL,
salary_target_max REAL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- Job postings
CREATE TABLE IF NOT EXISTS jobs (
id INTEGER PRIMARY KEY AUTOINCREMENT,
url TEXT UNIQUE NOT NULL,
company TEXT NOT NULL,
title TEXT NOT NULL,
description TEXT,
raw_html TEXT,
source TEXT, -- "greenhouse", "ashby", "lever", "indeed", etc.
discovered_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
indexed BOOLEAN DEFAULT 0,
archived BOOLEAN DEFAULT 0
);
-- Applications / Tracker
CREATE TABLE IF NOT EXISTS applications (
id INTEGER PRIMARY KEY AUTOINCREMENT,
job_id INTEGER NOT NULL,
status TEXT NOT NULL DEFAULT 'Evaluated', -- Evaluated, Applied, Responded, Interview, Offer, Rejected, Discarded, SKIP
score REAL, -- 0-5 rating from Claude
pdf_generated BOOLEAN DEFAULT 0,
applied_at TIMESTAMP,
notes TEXT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (job_id) REFERENCES jobs(id)
);
-- Evaluation reports
CREATE TABLE IF NOT EXISTS reports (
id INTEGER PRIMARY KEY AUTOINCREMENT,
application_id INTEGER NOT NULL,
report_md TEXT, -- Full markdown report (A-G blocks)
report_html TEXT, -- HTML rendering
generated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (application_id) REFERENCES applications(id)
);
-- Portal scan history (dedup)
CREATE TABLE IF NOT EXISTS scan_history (
id INTEGER PRIMARY KEY AUTOINCREMENT,
source TEXT NOT NULL, -- portal name
query_hash TEXT NOT NULL, -- hash of query params
last_scanned TIMESTAMP,
jobs_found INTEGER,
new_jobs INTEGER,
UNIQUE(source, query_hash)
);
-- User voice samples (from DOCX intake)
CREATE TABLE IF NOT EXISTS voice_samples (
id INTEGER PRIMARY KEY AUTOINCREMENT,
source_file TEXT, -- DOCX filename uploaded
transcription TEXT,
extracted_proof_points TEXT, -- JSON: ["point1", "point2", ...]
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- Follow-ups
CREATE TABLE IF NOT EXISTS follow_ups (
id INTEGER PRIMARY KEY AUTOINCREMENT,
application_id INTEGER NOT NULL,
follow_up_at TIMESTAMP,
contacted_at TIMESTAMP,
notes TEXT,
FOREIGN KEY (application_id) REFERENCES applications(id)
);
-- Create indexes for performance
CREATE INDEX IF NOT EXISTS idx_jobs_source ON jobs(source);
CREATE INDEX IF NOT EXISTS idx_jobs_company ON jobs(company);
CREATE INDEX IF NOT EXISTS idx_applications_status ON applications(status);
CREATE INDEX IF NOT EXISTS idx_applications_job_id ON applications(job_id);
CREATE INDEX IF NOT EXISTS idx_scan_history_source ON scan_history(source);
CREATE INDEX IF NOT EXISTS idx_follow_ups_application_id ON follow_ups(application_id);