CureMD
A healthcare software company.
From 2020 to 2023 I worked at CureMD as a machine learning engineer on document understanding: getting reliable information out of documents that followed no fixed format, before large language models made that easier.
SmartRecruit
SmartRecruit, which I built with one other engineer, took the manual reading out of hiring: it parsed a resume of any layout and scored the candidate against the job in 2–3 seconds, against about three minutes for a recruiter.
Resumes came in one column or several, heavy on graphics, and of any length. Candidates were scored with a model a recruiter could follow: weights for degree, institution, and grade, roles normalised to the O*NET occupational taxonomy, about 13,000 known skill terms, and separate weights for required and preferred skills.
Reading a scrambled page
The hard part was not finding a date or an employer but knowing which date belonged to which employer once the layout had scrambled the order of the text.
We solved it visually. After named-entity recognition had found the institutions, companies, roles, degrees, and dates, each entity was drawn back onto the page as a box coloured by its type, and a custom YOLOv5 model we trained grouped the boxes into education and work entries. Headings were chosen by a vote among twelve candidate segmentations, and columns were found by sweeping a vertical line until it crossed no text, so a two-column page was read one column at a time. Parsing held better than 90% accuracy across layouts.
In production
Resumes arrived on their own, routed from CureMD's HR mailboxes through Microsoft Graph, and recruiters searched, shortlisted, emailed, and hired candidates in bulk from a web interface we built. CureMD used the system for its own hiring.
Parsing, scoring, and document conversion each ran in its own Docker container on AWS ECS and Fargate, connected through RabbitMQ queues that persisted requests so bulk uploads were never dropped, with MongoDB for parse results, PostgreSQL for records, and S3 for files.