Recruitment_Copilot / backend /mcp_server /tools /reference_resumes.py
Ashgen12's picture
Recruitment Copilot
14fdc5e verified
Raw
History Blame Contribute Delete
1.56 kB
from __future__ import annotations
from fastmcp import FastMCP
from services.reference_data_service import ingest_reference_resumes, sync_reference_resumes_to_local
def register(mcp: FastMCP) -> None:
@mcp.tool()
def bulk_ingest_reference_resumes(
limit: int = 20,
source_dir: str | None = None,
force_reingest: bool = False,
sync_to_local: bool = True,
sync_max_files: int = 150,
) -> dict:
"""Bulk ingest sample resumes from a local directory into SQLite and vector index."""
sync_result = None
ingest_source = source_dir
if sync_to_local:
sync_result = sync_reference_resumes_to_local(
max_files=max(1, min(sync_max_files, 1000)),
source_dir=source_dir,
)
ingest_source = str(sync_result.get("target_dir"))
summary = ingest_reference_resumes(
limit=max(1, min(limit, 200)),
source_dir=ingest_source,
force_reingest=force_reingest,
)
return {
"status": "success",
"sync": sync_result,
"summary": {
"source_dir": summary.source_dir,
"requested_limit": summary.requested_limit,
"files_seen": summary.files_seen,
"ingested": summary.ingested,
"skipped": summary.skipped,
"failed": summary.failed,
},
"failures": summary.failures[:20],
}