The Brief
Priya Krishnamurthy runs MedConnect Staffing in Bangalore. Her team places about 400 nurses per quarter across 80 hospitals in South India. Right now matching is manual -- her staff compare skills, certifications, location preferences, and shift availability against hospital requirements, one nurse at a time. It works, but it is slow, and she knows some hospitals get strong matches quickly while others wait months.
She wants a model that scores how well a nurse matches a hospital opening and ranks the best matches for her team to review. She has three years of placement data: nurse profiles with certifications and written bios, hospital requirements with structured fields and free-text notes, and outcomes showing which placements succeeded.
One thing she mentioned early: equitable placement matters. She does not want a system that automates existing patterns without questioning them.
Your Role
You are building a matching model that handles two kinds of data at once -- structured fields and free text -- in a single Pipeline. You will use a pretrained language model to improve how the text features are represented, and you will audit the model's predictions across demographic groups to check whether it treats all nurses fairly.
Templates and guides provide structure for the Pipeline construction and the fairness audit. You design what goes inside them -- which columns get which treatment, which fairness intervention to apply, and how to communicate the trade-offs to Priya. Context curation becomes a deliberate skill: what you feed Claude at each step shapes what it produces.
What's New
Last time you took a working model and made it deliverable -- Docker, scripted pipelines, prediction logging. The model itself was the starting point, not the challenge.
This time the model is the challenge. The placement data mixes structured columns with free-text descriptions, and they need different preprocessing. scikit-learn Pipelines make the wrong execution order impossible by design -- a shift from catching leakage by hand (P4) to preventing it structurally. Transfer learning brings a pretrained model's existing knowledge to a task where training data alone is not enough. And the fairness audit surfaces something aggregate metrics hide: a model that works well overall can fail systematically for one group.
Tools
- Python / pandas -- data processing, Pipeline construction
- scikit-learn -- Pipelines, ColumnTransformer, feature selection, baseline models
- Hugging Face Transformers -- transfer learning (new)
- PyTorch -- training loop (familiar from P4)
- MLflow -- experiment tracking (familiar)
- Jupyter -- development
- Claude Code -- AI direction
- Git / GitHub -- version control
Materials
You receive:
- The placement dataset -- 2400 records with structured fields and free-text nurse bios and hospital notes
- A Pipeline template showing ColumnTransformer structure with placeholder column groups
- A fairness audit guide covering disaggregated evaluation, fairness metrics, and intervention options
- A project governance file (CLAUDE.md)