Recruitment Screening & Placement Automation
A bidirectional CRM-and-automation loop that screens applicants from paid social lead ads in near real time. The CRM captures the lead and hands off to an automation layer that enriches the record, geocodes the applicant, calculates distance to the nearest depot, screens against right-to-work, experience and qualification criteria, drafts tailored copy with an LLM, and writes the candidate back into a specific pipeline stage — which is itself the trigger for the CRM to send the candidate's email and WhatsApp. Documented as a reusable template so launching a new role campaign changes five configuration values and nothing else.
I built the first version in December 2025, from the first lead-ads connection, then the AI and CRM side. In July 2026 I mapped and audited the live campaigns that had grown out of it; one of the defects the audit found was in my own first version.
The problem
Applicants arrive from paid social lead ads and need screening fast — right-to-work status, experience, qualifications, and whether they live within a workable distance of the depot. Doing that by hand doesn't scale across multiple concurrent role campaigns, and slow responses lose candidates.
What was built
A loop rather than a pipeline, which is the interesting structural choice:
- A lead ad creates the applicant in the CRM.
- A CRM workflow alerts the team and posts only the contact ID to the automation layer.
- The automation pulls the full record back, normalises fields, logs to a sheet, and injects the campaign's depot constants.
- It geocodes the postcode and computes distance to the depot.
- Screening logic evaluates right-to-work, experience, distance and qualifications, and decides Qualified / Clarifying / Parked.
- An LLM drafts tailored copy; a tag builder sets tags.
- It upserts the contact and creates an opportunity in the corresponding pipeline stage.
- That stage landing is itself the trigger for the CRM's messaging workflows to send the candidate's email and, after a delay, a WhatsApp nudge.
The automation layer never messages a candidate directly. It moves them into a state, and the CRM does the talking — which keeps messaging, consent and channel handling in the system that owns them.
The hard part
Making it reusable rather than bespoke per campaign. Cloning a campaign changes five things — the webhook path, the depot coordinates, the qualification logic, the target pipeline, and the copy. Everything else is identical, and that's documented as a blueprint rather than left as tribal knowledge.
The audit was the other substantial contribution: in July 2026, reading both live systems, including campaigns that had grown out of the first build, surfaced real defects: two coexisting email paths that could diverge or double-send; a published CRM workflow posting to a webhook whose counterpart appeared inactive; four delay nodes with no incoming connections in the first version, so an intended human-like delay never ran at all; contradictory depot defaults between two nodes; a test spreadsheet wired as production; and two different phone normalisations producing inconsistent formats — which breaks WhatsApp's strict E.164 requirement.
A client request to remove unsubscribe links was raised as a compliance concern rather than implemented quietly.
What can be verified
- Two campaigns running end to end in production
- the clone pattern documented such that a new campaign changes five values and nothing else
- the audit surfaced the specific defects listed above.
The workflows
(select to enlarge)
(select to enlarge)
(select to enlarge)
(select to enlarge)
On numbers: every figure above is an artefact count or a measured technical value. No business-outcome metric, whether time saved, revenue or conversion, was captured on these engagements, so none is claimed.
On status: reflects repository evidence and platform backups, not a live systems check.