DEV Community

Germán Aliprandi
Germán Aliprandi

Posted on

The Anti-LLM Checklist: How I Made AI-Written Recruiter Messages Sound Human

If you've used an AI coding agent to draft messages, you know the problem. The output is easy to spot. Em-dashes everywhere. Bullet points in DMs. Polished paragraphs that no human would type in a LinkedIn message.

Recruiters get dozens of these. They can tell.

I built an anti-LLM checklist for recruiter replies as part of Job Seeker, an open source set of markdown skills that any coding agent (Claude Code, Cursor, Devin, opencode) consumes to search, apply, and track jobs. The checklist forces the agent to sound human before showing you the draft.

The checklist

Before any recruiter reply is shown to the user, the agent runs it through this checklist:

  • No em-dashes (—). Use commas, periods, or parentheses. Em-dashes are the #1 tell that something was AI-written.
  • No bullet points in chat/DM messages. Bullets are for docs, not LinkedIn messages. A human writes in flowing text.
  • Conversational tone, not formal/structured. A human doesn't write polished paragraphs in a DM.
  • Maximum 2 short paragraphs. If it's longer, it's over-explaining.
  • Don't mention company research in a way that sounds like it was googled 2 minutes ago. If mentioning something, make it natural.
  • Don't repeat JD keywords obviously. If the job description says "agent orchestration, RAG and evaluation strategies", don't parrot it back.
  • Mimic the user's previous messages for tone and length. If no style profile exists, mimic the recruiter's tone.

If the draft doesn't pass, the agent rewrites it before showing it to you.

Why this matters

The goal isn't deception. It's about not sounding like every other AI-written message a recruiter receives. When every message has em-dashes, bullet points, and structured paragraphs, the human-written ones stand out. And not in a good way for the AI-assisted ones.

The checklist lives in the Gold Rules (AGENTS.md) of the repository, so any agent that reads the repo follows it automatically. No config, no prompting, it's baked in.

How it works in practice

When the news skill detects a recruiter message (via Gmail or LinkedIn), it:

  1. Extracts action items (calendar link? CV request? scheduling?)
  2. Analyzes the proposal (company, role, salary if mentioned)
  3. Researches the company
  4. Drafts a reply that passes the anti-LLM checklist
  5. Shows you the draft with analysis and action items
  6. Waits for your approval before sending

You always approve before anything is sent. The agent does the drafting, you do the deciding.

The bigger picture

This checklist is one piece of Job Seeker, an open source project that turns any coding agent into a job search assistant. The agent searches LinkedIn with your preference filters, fills Easy Apply forms from your Postgres database, tracks applications in a kanban pipeline, and drafts recruiter replies that sound human.

It's MIT licensed, candidate-agnostic (no personal data in the repo), and works with any agent that reads markdown.

Links:

If you're using AI to write recruiter messages, try this checklist. It makes a difference.

Top comments (0)