Applying to fifty roles with one unchanged CV and no message feels productive — it is a lot of visible activity. It usually produces fewer replies than fifteen applications sent with a short, specific message and a slightly adjusted CV. Volume is not the variable that matters most here.
A generic application is easy for a reader to skip, because it does not address anything about their specific role or company — it is visibly one of fifty identical copies. A short, specific message signals the opposite: that this application was actually written for them, which is a low bar almost nobody clears, which is exactly why clearing it stands out.
Generic (skipped): "I am writing to express my interest in the
Developer position. I believe my skills make me a strong
candidate. Please find my CV attached."
Specific (read): "I saw you're looking for a frontend developer
familiar with React. I recently built and deployed a task manager
using React and a REST API I wrote myself — link below. Happy to
walk through the code or take on a small test task."A short, polite follow-up after a week of silence is normal practice, not pushy — hiring processes are frequently slower than applicants expect, and a message can genuinely get lost or buried. One follow-up is reasonable. Several unanswered follow-ups in a short period reads as pressure rather than interest, and can work against you.
Track what you've applied to and when — a simple spreadsheet is enough. Without this, following up becomes guesswork, and it becomes hard to tell which kind of application, message, or role is actually getting responses.
This is not an argument for applying to only two or three roles total. It is an argument against fifty identical, unconsidered ones. A reasonable middle ground: apply broadly to keep the pipeline full, but spend real effort on the message and CV fit for roles you actually want.