Recruitment · AI + CRM
How we cut recruiter triage time from 90 seconds to 10.
A regional German recruitment platform group faced 60–90 seconds of manual review per applicant. We built a production-pattern pipeline — Salesforce Lead → Make.com → Claude API → CRM — that cuts it to under 10, with zero new tools for recruiters.
The Problem
Manual applicant triage became the bottleneck.
A recruitment platform group operating regional portals across southern Germany (Mittelstand market) was drowning in first-pass applicant triage. Every new Lead in their Salesforce CRM needed a recruiter to read the profile, assess fit for the applied role, weigh regional signals, check German-language level, and decide: prioritize, queue, or decline.
At 60–90 seconds per applicant across thousands of monthly applications, first-pass triage had become the bottleneck. They wanted AI-assisted summaries — but with three hard constraints:
- No new tools for recruiters — Salesforce stays the source of truth
- No hallucinated data — recruiters must trust what the AI writes
- Complete audit trail — for compliance and prompt-iteration safety
The Approach
Five design decisions that made this production-pattern, not a toy demo.
We designed a six-module Make.com scenario that watches Salesforce Leads, calls Claude API with a structured prompt, and writes the triage summary back to a custom field.
tool_use forces consistent output
Claude is forced to call a save_candidate_summary tool with a fixed {"summary": "..."} schema. No free-form text, no preamble pollution, identical shape every run.
Two-layer length protection
max_tokens caps the physical response size; the system prompt reinforces the character ceiling; a Make-side guard trims at the nearest sentence boundary before writing to the CRM.
Recruiter-visible status on every record
Every Lead carries an AI_Status__c picklist (Generated / Failed / Skipped) so recruiters see run health inline — no opening Make to check why something didn't process.
One-click retry without leaving Salesforce
A "Retry AI Summary" Lightning quick action on the Lead page clears the AI fields; the updated-time trigger picks it back up and regenerates the summary. Zero Make access needed.
Errors never corrupt the target field
Hard failures stamp AI_Status__c = "Failed" and push the bundle to Make's Incomplete Executions queue (48h of preserved error context) — the summary field is never written with a partial value.
Implementation
What we shipped.
Salesforce
Ten custom fields on Lead (summary, timestamp, prompt version, status, applicant metadata), one screen flow, one quick action, one permission set — all deployable via SFDX metadata.
Make.com
Six-module scenario: Watch Records (by Updated Time) → If-else guard → Anthropic Claude API call → Update Lead on success. Error handler branch stamps status and issues a Break directive. Else branch marks skipped Leads explicitly.
Claude
claude-haiku-4-5 at temperature 0.3 for deterministic output. Haiku was chosen over Sonnet/Opus for cost efficiency — 2–3 sentence triage summaries don't need the larger models' depth, and the cost difference matters at thousands of applicants per month.
Change-log discipline
Inline prompt text + AI_Prompt_Version__c stamped on every record gives a two-sided audit trail. Any record shows its generation context; any log entry shows which records were affected. Critical when prompt iteration is inevitable.
Results
Measurable outcomes.
~9× faster first-pass triage
60–90 seconds of manual review → under 10 seconds per applicant.
Cost at volume: ~$0.0003 per applicant
Haiku 4.5 pricing; ~$15/month for 50,000 applicants.
Zero summary corruption on errors
Hard failures never overwrite the target field — summary remains null or previously-generated until a clean retry.
48h error audit trail
Make's Incomplete Executions queue preserves full error context with one-click operator retry.
Recruiter self-service retry
Zero tickets to the integration team for failed runs — recruiters resolve it from the Lead page.
Walkthrough + Source Code
See it run, or deploy it yourself.
Watch the walkthrough
End-to-end demo: create a Lead → scenario fires → summary populates. Plus the error path and one-click retry button.
Deploy it yourself
SFDX metadata (deployable with one command), redacted Make blueprint, full change-log document, runbook, cost ceiling. Credentials scrubbed.
Run a similar bottleneck?
Let's map it to a working integration pattern in your stack.
30-minute scoping call. No slides, no sales pitch. We'll look at your current stack and show you the path — before you commit a dollar.
Book a 30-min call