“Just checking in” is one of the easiest follow-up messages to write and one of the easiest for a prospect to ignore.
The phrase is not offensive. It is not unprofessional. The problem is that it usually gives the recipient no new reason to respond. It tells them that you are still interested in the conversation, but it does not make the conversation more relevant, easier, clearer, or more useful for them.
That distinction matters because most freelance developers do not lose follow-up opportunities by being too aggressive. They lose them by making the prospect do all of the work required to restart the conversation.
The first message identified a possible reason to talk. Then the follow-up says, in effect, “Do you want to talk about that yet?” If the prospect was busy, uncertain, unconvinced, waiting on someone else, or simply not ready to make the issue a priority, nothing has changed.
A stronger follow-up does not need to become a new sales pitch. It needs to have a reason to exist.
“Just checking in” makes the prospect create the next reason to talk
Consider what a prospect has to do when they receive a message that says only that you are following up.
They have to remember the original email, reconstruct why you contacted them, decide whether the issue still matters, determine whether they want to engage with it now, figure out what a response would commit them to, and then write something back.
That is a surprising amount of work for someone who did not ask to be contacted in the first place.
The developer often experiences the silence as a communication problem: perhaps the subject line was weak, the message was too long, or the prospect needs another reminder.
Sometimes those things are true. But often the problem is simpler. The follow-up contains no useful reason for the recipient to re-evaluate the conversation.
A reminder is most valuable when someone already intends to act and merely forgot. Prospecting rarely begins with that level of intent.
That means a good follow-up has a different job. It should help the prospect understand why the conversation might still be relevant without forcing them to reread your entire history together.
Silence is not automatically rejection
Freelancers sometimes swing between two bad assumptions about silence.
The first is that no reply means no interest, so there is no point following up. The second is that every silent prospect simply needs enough persistence, so the freelancer keeps sending messages until something happens.
Neither assumption is reliable.
People fail to respond for ordinary reasons. The message arrived during a busy week. The problem is real but not urgent. Another stakeholder needs to be involved. The company is between priorities. The recipient meant to reply and forgot. They are interested but not interested enough to create momentum on their own.
And, of course, sometimes they are simply not interested.
The difficulty is that silence does not tell you which explanation is correct.
That is why follow-up exists. Its purpose is not to interpret silence optimistically. Its purpose is to give a reasonable prospect another opportunity to engage while keeping the cost of non-response low for both sides.
A healthy system allows uncertainty without turning uncertainty into endless pursuit.
A follow-up should reconnect to the prospect’s situation
The weakest follow-ups are about the sender’s previous action:
You sent an email. You wanted to circle back. You wondered whether they saw it. You wanted to move the message to the top of their inbox.
Those statements are true, but they are not especially useful.
The prospect cares more about the situation that made the outreach relevant in the first place.
If you contacted a business because its mobile estimate form is unusually difficult to complete, the follow-up should still be grounded in that business context. If you contacted an agency because it appears to have more client demand than internal development capacity, the follow-up should still make sense in relation to that possible need. If a previous client mentioned an upcoming expansion, the follow-up should connect naturally to that timing rather than merely reminding them that you exist.
This is one reason evidence matters so much in prospecting. A weak original reason for outreach produces weak follow-up. If the first message was built on generic personalization such as “I love what your company is doing” or “I noticed you have a website,” there is very little meaningful context to return to later.
The article What Makes a Business a Qualified Web-Development Lead? explains the distinction between finding a business and finding a defensible reason to pursue it. Follow-up becomes much easier when the original prospect was qualified around something real.
Useful follow-up changes something, even if only slightly
A follow-up does not have to contain a dramatic new insight. It does need to move the interaction forward in some way.
That change might be additional context that makes the original observation easier to understand. It might be a clarification that reduces the apparent size of the conversation. It might acknowledge a timing issue. It might narrow the question. It might make the next step less ambiguous. It might give the prospect a simple way to say that the issue is irrelevant so you can stop contacting them.
The common thread is that the follow-up is not an identical request wrapped in different wording.
This is where freelancers sometimes overcorrect. They hear that every follow-up should “add value,” so they manufacture a new tip, send an unsolicited audit, record a video, attach a document, or offer increasingly detailed free consulting just to justify another email.
That can create a different problem: the follow-up becomes more expensive for the freelancer while requiring no more commitment from the prospect.
You do not need to earn the right to follow up by giving away more work every time.
The goal is relevance, not generosity theater.
Do not invent a new problem just to create a follow-up angle
One dangerous version of “adding value” is finding a new criticism every time the prospect stays silent.
The first email mentions a confusing contact path. The second says the homepage messaging is weak. The third points out a performance score. The fourth suggests the SEO strategy is probably costing traffic. By the end of the sequence, the freelancer sounds as if they are searching for defects until something produces a response.
That damages credibility.
A follow-up should not become an excuse to escalate unsupported claims. If the original reason for contacting the business remains valid, it is usually stronger to stay anchored to that reason than to keep inventing additional diagnoses.
This matters even more when AI is involved in research or outreach. A model can generate endless plausible-sounding observations, but plausible is not the same as verified. Prospecting evidence should remain traceable even when automation helps produce the message.
Follow-up should strengthen a defensible conversation, not compensate for a weak one with additional speculation.
Make the next step smaller than “book a call” when appropriate
Developers often make every follow-up point toward the same destination: a sales call.
That can be too large a jump for an early-stage prospect.
A business owner who has not replied to your first message may not yet be deciding whether to hire a developer. They may still be deciding whether the issue you mentioned matters enough to think about.
If every follow-up asks them to schedule thirty minutes, the prospect has to make a relatively large commitment before you have established much momentum.
This is why low-friction next steps can matter. The immediate objective of early prospecting is often not to close a project or even to schedule a formal call. It is to create a relevant conversation.
Once the prospect engages, you can learn whether there is an actual opportunity, whether the problem matters, whether the timing is real, and whether a larger conversation makes sense.
The mistake is treating every unanswered email as a sales objection that needs to be overcome. At that point, you may not have enough evidence to know whether there is a sale to object to.
Follow-up should match the stage of the relationship
Not all follow-up is the same.
A cold prospect who has never responded is in a different situation from someone who replied positively and then disappeared. A person who completed a discovery call is different from someone who received a proposal. A past client who said “reach back out in September” is different from all of them.
The purpose of the follow-up changes with the stage.
Before a real conversation, follow-up is mainly about giving a qualified prospect another reasonable opportunity to engage. After the prospect has replied, follow-up should reflect whatever was actually discussed. After a sales call, it should reinforce the agreed next decision or surface whatever is preventing that decision from happening. After a proposal, it should not pretend that “Have you had a chance to look?” is a sales process.
This distinction is important because many freelancers use one generic follow-up habit everywhere. They send a message, wait, remind, wait, remind again, and hope the prospect eventually supplies the momentum.
A stronger process keeps track of what stage the relationship is actually in and what event is supposed to happen next.
For pre-conversation prospecting, that belongs to the acquisition system. Once a real sales conversation has happened, the logic changes; the Developer Sales Playbook treats follow-up as part of an explicit next-step and decision process rather than a generic reminder sequence.
A strong sales call reduces the need for vague follow-up
One reason developers end up saying “just checking in” after a sales call is that the call ended without a real next step.
The conversation felt positive. The prospect said the project sounded interesting. The developer promised to send some information. Everyone said they would stay in touch.
Then several days pass, and neither side knows what “stay in touch” was supposed to mean.
That is not primarily a follow-up-writing problem. It is a sales-process problem.
If the next decision event was never defined, the follow-up has to invent momentum after the fact. That is much harder than continuing momentum that already existed.
A better sales process tries to leave the conversation with a clear understanding of what happens next, who is responsible for it, and what information or decision is still missing. The follow-up then supports that agreed process instead of asking the prospect to create one from scratch.
This is also why sending a proposal too early creates weak follow-up. If the buyer has not clarified the problem, scope, economics, stakeholders, timing, and decision process, the proposal becomes a document sitting in an inbox while the freelancer repeatedly asks whether it has been reviewed.
The document did not create readiness. The follow-ups cannot manufacture it either.
Do not confuse persistence with pressure
Consistent follow-up is useful. Pressure is different.
Pressure appears when the message tries to make the prospect feel guilty for not replying, implies false scarcity, pretends an arbitrary deadline exists, or treats silence as a breach of etiquette.
Phrases that suggest the prospect is “ignoring” you, warnings that your calendar is “almost full” when it is not, or increasingly confrontational attempts to force a yes-or-no answer may create a response, but that does not make them a good sales practice.
Freelancers sometimes justify this behavior by saying that busy people need persistence. Busy people may indeed need reminders. They do not need fabricated urgency.
The difference is whether the follow-up makes the decision easier or merely makes non-response more uncomfortable.
A professional follow-up respects that the prospect has priorities you do not control.
There should be a point where you stop
If there is no stop rule, follow-up becomes chasing.
This is where many developers struggle because stopping can feel like throwing away an opportunity. As long as the prospect has not explicitly said no, the possibility still seems alive.
But every open loop has a cost. It occupies attention, creates false pipeline optimism, and encourages you to count silent names as opportunities long after there is evidence that they are moving anywhere.
A finite follow-up process solves that problem.
Finite does not mean there is one universal correct number of messages. Different channels, relationships, buying cycles, and prior engagement justify different treatment. A warm referral who asked you to reconnect later should not be handled like a completely cold prospect who has never replied.
The important principle is that the sequence has an end condition.
At some point, the active pursuit stops. The record can be closed, moved to a legitimate nurture state, or revisited only when new evidence creates a real reason to do so.
This protects your pipeline from becoming a museum of people who once received an email.
“Not now” should not be treated the same as silence
One of the most useful outcomes of follow-up is discovering that the answer is not no, but not now.
That is different from a prospect who never engages.
If someone tells you the issue is real but the timing is wrong, you now have information. Perhaps a budget cycle has to reset. Perhaps a launch has to finish. Perhaps another internal project has priority. Perhaps they want to revisit after a seasonal rush.
The correct response is not to continue the same active follow-up sequence every few days.
The relationship has changed states.
A real “not now” can become a future follow-up tied to the condition the prospect actually named. That is much stronger than repeatedly checking whether now has magically become the right time.
This is another reason pipeline tracking matters. Without a simple record of what the prospect said and what should happen next, every future message depends on memory.
The freelancer either forgets the prospect entirely or follows up randomly because they remember the name but not the context.
Track next actions, not just contacts
A spreadsheet full of company names is not a pipeline.
A pipeline becomes useful when each active record has a state and a next action.
That distinction changes follow-up from an emotional decision into an operating decision.
Without tracking, freelancers tend to follow up when anxiety reminds them. They search their sent folder, look for messages without replies, and send another note because enough time appears to have passed.
With a simple process, you know which prospects are awaiting follow-up, which have replied, which are in nurture, which are no longer a fit, which moved into a sales conversation, and which should be closed.
That visibility is one of the ways follow-up helps reduce the feast-or-famine cycle. You are not merely sending more messages. You are preserving the state of conversations so client acquisition does not reset every time delivery work becomes busy.
The deeper pipeline problem is discussed in Why Freelance Developers Get Stuck in the Feast-or-Famine Cycle.
Good follow-up is a system property, not a writing trick
It is tempting to search for the perfect follow-up line because wording feels like the visible part of the problem.
But the quality of a follow-up depends heavily on decisions made before the message is written.
Was this prospect worth contacting in the first place? Was the original reason grounded in evidence? Did the first message create a clear, low-friction next step? Is the prospect still at the outreach stage, or has the relationship moved into a sales process? Do you know what happened in the previous interaction? Is there a defined point where active pursuit stops? If the prospect says “later,” can you preserve that context and return at the right time?
If those pieces are weak, better copy can only do so much.
That is why Client Acquisition Without Upwork treats follow-up as one stage inside a larger operating system for targeting, qualification, research, outreach, pipeline state, measurement, and weekly review. The full implementation includes the finite follow-up rules, nurture logic, examples, CRM state, and weekly operating rhythm that this article deliberately does not reproduce.
Explore Client Acquisition Without Upwork
If the prospect has already moved into a substantive sales conversation, the problem changes. The Developer Sales Playbook covers next-step agreements, post-call procedure, sales follow-up, decision conditions, and Proposal Readiness after the relationship has moved beyond prospecting.
The objective is not to find a more clever replacement for “just checking in.” It is to make every follow-up part of a conversation that still has a defensible reason to continue.
Take the next step
Make the sales conversation lead somewhere clear.
The Developer Sales Playbook goes deeper on understanding the opportunity, diagnosing what matters, and ending serious sales conversations with a clear decision and next step.

