The JD is the Antifilter

We posted a full stack engineering role and got 1,500 applications in under 24 hours.

Five years ago that number was a hiring success story. Today it's a diagnosis. AI broke the application funnel. Candidates fire hundreds of tailored applications a week, generated and customized by the same models you might be using to screen them. Your ATS isn't a filter anymore. It's a firehose.

The instinct is to add filters downstream. Better screening tools. AI knockout questions. Resume scorers. Keyword gates. That's a losing arms race. You can't out-filter a model that writes 500 cover letters an hour and learns whatever screener you put in front of it. Every dollar spent on the back-end filter is a dollar spent on the wrong side of the problem.

The fix is upstream. The JD is the antifilter.

Volume is no longer the metric.

The metric is density of right-fit per applicant, and the best JDs are designed to lose applications on purpose. If your inbox fills up with wrong-fit resumes, the JD is doing its job badly even when applications are up. Every line is signal that attracts or repels, and the work is to scare off the wrong people upstream.

A junior reads the JD literally, checking qualifications. The senior IC you actually want reads it as a document and infers culture, taste, and rigor from how it's written. They're deciding whether you sound like a place worth their next four years before they ever get to the requirements. A sloppy JD says "sloppy team" before the candidate ever clicks apply.

The JD writes the team before it writes the candidate.

Writing tight forces a hiring manager to commit to must-have versus nice-to-have. If you can't write it, you don't know what you're hiring for. A candidate should finish reading and know three things: what you do, what kind of company you are, and whether they'd thrive there. If they can't tell, the JD isn't done.

The antifilter does two jobs at once. It repels the wrong applications, and it makes the hiring manager commit to what good looks like before a single resume comes in. Most JDs fail at both because the writer never had to choose.

Five checks.

The hiring manager runs five checks and if any one fails, the JD doesn't ship. Then a peer in a different function reads it cold and signs off. The peer read is what catches the things a checklist can't see.

  • Stranger test. Hand paragraph one to someone outside the company and ask what you do. If they can't tell you in a sentence, the lede is broken and nothing downstream matters.

  • Specificity. Pull three requirement bullets at random. Each one has to name a tool, a technique, or something measurable. "Comfortable with AI tools" fails. "Has shipped production code with Claude Code and can debug an agent that's confidently wrong" passes. A generic bullet on a random pull means the writer didn't think hard enough about the role.

  • Must-have versus nice-to-have. Every requirement carries one of those two labels. If the hiring manager won't commit, they don't know what they're hiring for and the JD isn't ready.

  • Three repels named. The hiring manager writes down, somewhere other than the JD itself, three specific candidate profiles it's built to lose. Not "junior generalists." Closer to "career consultants who haven't owned a P&L." Three or the funnel isn't pointed.

  • A value doing filter work. At least one of your values has to show up in the body of the JD in a way that costs you applications. Listing values is decoration. Showing what a value disqualifies is filtering.

After all five, the peer read. What they're answering is whether a senior IC could finish reading and picture spending four years here. If not, figure out why before you post.

Then require a cover letter.

Once the JD is right, make the apply itself a filter. Require a cover letter. Not as a formality but as a test. Will they include one? Will it be more than two paragraphs of boilerplate? Will it demonstrate they read the JD, understand the company, have a point of view about the role, are genuinely interested?

AI didn't kill the cover letter. It made it more useful. Generic AI cover letters are easy to spot. Same structure, same hedges, same "I am excited about the opportunity" opener. The effort to produce a real one is higher than ever, which means the signal is higher than ever. A candidate who writes a real letter has already done the thing the AI flood made expensive. They've thought about you.

I've written separately about what makes a great cover letter. The point here is simpler. The JD is the first filter. The cover letter requirement is the second. Stack them and most of the noise never reaches your inbox.

The math has flipped.

If your application volume goes up year over year as AI gets better, your hiring is getting worse. The number that matters now is the ratio of right-fit to total. Most teams are still optimizing the numerator. The leverage is in the denominator.

The antifilter is the JD. Build it before you post.

AI: 30% | Human: 70% — Jesse provided the data point and the framing from an ongoing conversation about JD writing. Claude structured the post and drafted iterations. Jesse edited every pass.

Next
Next

Map the Physics, Not the Sociology