ArthurLin's picture
Initial commit
a9a45af
import pandas as pd
from datetime import datetime
import os
import yaml
def save_result(jd_file, cv_file, weighted_score, section_scores, RESULTS_FILE="results.csv"):
record = {
"JD": os.path.basename(jd_file),
"Resume": os.path.basename(cv_file),
"Similarity Score": float(weighted_score),
"Timestamp": datetime.now().strftime("%Y-%m-%d %H:%M:%S")
}
for sec, val in section_scores.items():
record[f"{sec} Score"] = round(val, 4)
if os.path.exists(RESULTS_FILE):
df = pd.read_csv(RESULTS_FILE)
df = pd.concat([df, pd.DataFrame([record])], ignore_index=True)
else:
df = pd.DataFrame([record])
df.to_csv(RESULTS_FILE, index=False)
print(f"Result saved to {RESULTS_FILE}")
def list_ranked_results(jd_name=None, results_file='results.csv', sort=False, top_k=None):
if not os.path.exists(results_file):
print("No results found.")
return
df = pd.read_csv(results_file)
if jd_name:
df = df[df["JD"] == jd_name]
if sort:
df = df.sort_values(by="Similarity Score", ascending=False)
if top_k:
df = df.head(top_k)
print(df.to_string(index=False))
def load_weights_from_file(path):
with open(path, 'r') as f:
return yaml.safe_load(f)