Recruitment_Copilot / backend /scripts /load_reference_resumes.py
Ashgen12's picture
Recruitment Copilot
14fdc5e verified
Raw
History Blame Contribute Delete
1.65 kB
from __future__ import annotations
import argparse
import sys
from pathlib import Path
BACKEND_ROOT = Path(__file__).resolve().parents[1]
if str(BACKEND_ROOT) not in sys.path:
sys.path.insert(0, str(BACKEND_ROOT))
from core.db import init_db
from services.reference_data_service import ingest_reference_resumes
def main() -> None:
parser = argparse.ArgumentParser(description="Bulk ingest sample resumes into local database")
parser.add_argument("--limit", type=int, default=20, help="Maximum number of PDF files to ingest")
parser.add_argument(
"--source-dir",
type=str,
default=None,
help="Optional source directory containing resume PDFs",
)
parser.add_argument(
"--force-reingest",
action="store_true",
help="Reprocess files even if matching candidate IDs already exist",
)
args = parser.parse_args()
init_db()
summary = ingest_reference_resumes(
limit=max(1, min(args.limit, 500)),
source_dir=args.source_dir,
force_reingest=args.force_reingest,
)
print("Reference resume ingestion summary")
print(f"source_dir: {summary.source_dir}")
print(f"requested_limit: {summary.requested_limit}")
print(f"files_seen: {summary.files_seen}")
print(f"ingested: {summary.ingested}")
print(f"skipped: {summary.skipped}")
print(f"failed: {summary.failed}")
if summary.failures:
print("failures:")
for item in summary.failures:
print(f" - {item['file']}: {item['error']}")
if __name__ == "__main__":
main()