PROFESSIONAL WORK · Recruiting data & AI
CRM note structuring
Uses an LLM to pull structured fields and follow-ups out of free-form CRM notes, then appends a summary without editing the original.
BuiltProductionDocumented October 6, 2026
My contribution
Designed and operated the extraction pipeline, including filters, replay protection, append-only updates, and failure recovery.
Tools
Python · Claude · Bullhorn · Supabase · Scheduled workers
How it works
- InputNew CRM notesPolled every 15 minutes
- CheckEligibility filterKeeps notes worth structuring
System noise, short fragments, delivery receipts → skipped
- AILLM extractionClaude returns structured fields and follow-up signals
Model-provider failure → isolated to that note
- StepDeterministic rulesValidate fields and store the result separately
- CheckPre-write checkNote ID + engine version + content hash, re-read just before writing
Already updated or changed → skipped
- OutputAppend a summaryOriginal note stays intact; the write is verified
Decisions that mattered
Preserve the evidence
The original note remains intact. Structured output lives separately, and the CRM receives an appended summary rather than a replacement.
Check twice before writing
Uniqueness combines note identity, engine version, and original-content hash. A second check immediately before the append protects against replays and concurrent change.
One failure should stay local
A model-provider failure is isolated to its record so the rest of a batch can continue. Database connection lifecycle fixes addressed resource exhaustion.
Results
Between May 4 and October 6, 2026, the pipeline structured 10,347 notes and flagged 2,881 follow-ups. Validation before launch covered no-write dry runs, append preservation, replay skips, and isolated provider failures.
Scope & limits
A flagged follow-up is a prompt for a recruiter; the pipeline doesn’t act on it.