RJ DowellPERSONAL PORTFOLIO
← All projects

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

10,347notes structured · May 4–Oct 6, 2026
2,881follow-ups flagged · as of Oct 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

CRM note structuring workflow
  1. InputNew CRM notesPolled every 15 minutes
  2. CheckEligibility filterKeeps notes worth structuring

    System noise, short fragments, delivery receipts → skipped

  3. AILLM extractionClaude returns structured fields and follow-up signals

    Model-provider failure → isolated to that note

  4. StepDeterministic rulesValidate fields and store the result separately
  5. CheckPre-write checkNote ID + engine version + content hash, re-read just before writing

    Already updated or changed → skipped

  6. 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.

Related projects

Next projectProvider contact verification