Production

Uploads

Five ingestion pipelines. Each writes a SourceDocument + audit ExtractionResult.

Offer letter

PDF / DOCX / TXT — extracts provider constraints via the LLM pipeline.

Accepted: .pdf,.docx,.txt,.md

Endpoint: /api/v1/uploads/offer-letter

Approved clinic list

CSV / XLSX — upserts ProviderClinicApproval rows.

Accepted: .csv,.xlsx,.xls,.xlsm

Endpoint: /api/v1/uploads/clinic-approvals

Provider active status

CSV / XLSX — updates Provider.active.

Accepted: .csv,.xlsx,.xls,.xlsm

Endpoint: /api/v1/uploads/active-status

PTO export (ADP)

CSV / XLSX from ADP Workforce Now — writes PTO with overlap merge.

Accepted: .csv,.xlsx,.xls,.xlsm

Endpoint: /api/v1/uploads/pto

Historical schedule

CSV / XLSX — long or wide format. Seeds continuity scoring.

Accepted: .csv,.xlsx,.xls,.xlsm

Endpoint: /api/v1/uploads/historical-schedule

Direct upload via curl
curl -X POST http://localhost:8000/api/v1/uploads/offer-letter \
  -F "file=@./sample-letter.pdf"

The drop-zone UI (drag a file, see the audit summary inline) is a small follow-up — the endpoints are already wired and tested.