Cover letters for developers: whether to write one, how, and ready templates

When a cover letter really helps and when nobody reads it, what it consists of, how long it should be, how a formal letter differs from a Djinni or LinkedIn message, how to use AI, and three short templates.

By Sasha Kolesnik with Dmytro AntonyukUpdated 11 min read

"Should I write a cover letter?" has an honest answer: it depends. For some jobs nobody opens it, for others it is the only thing that separates you from a hundred identical CVs. Below: when it works, what it consists of, how a formal letter differs from a Djinni or LinkedIn message, and three templates you can adapt in five minutes.

The CV is a separate topic, see the developer CV guide. How the system processes your application is in the ATS hub. Tools for letters are in part 4 of the series.

Should you write one

Data on whether letters get read contradicts itself. Resume Genius (2026, 625 hiring managers) reports that 83% read most letters. ResumeBuilder (2024, 948 US hiring managers) says only 26% read them always or frequently and 44% never do. A 2025 REC survey in the UK, as relayed: fewer than half looked at the letter before shortlisting. All of these figures come from secondhand blogs and none is about developers (unverified). A common explanation is that the manager who owns the role reads letters more often than a recruiter skimming hundreds of applications.

Practical conclusion: a letter doesn't hurt and sometimes decides. But don't spend an hour on every application. Spend the time where it pays.

When a letter matters

  • Small companies and startups. A founder or tech lead reads the application, not a filter. The letter shows you understand what the company does.
  • Changing stack, role or domain. The CV says "Java backend", the job wants Go. The letter explains why the switch is logical and what you've already done.
  • Relocation. The company wants to know you've thought about the move, visa, time zone, dates.
  • EU roles and international teams, where a letter is requested in the form or customary as a separate document.
  • Little experience. A junior can use a letter to show motivation and projects the CV lacks.
  • The job explicitly asks for one. Then skipping it is a missed requirement.
  • A gap in the CV worth one sentence of explanation.

When it gets skipped

  • Large corporations with mass hiring, where the letter isn't even stored on the profile.
  • Jobs where the form has no field for a letter and the recruiter is working through a flood.
  • One click applications on Djinni, where companies get hundreds of responses. Some reply automatically if experience is clearly irrelevant (per company reviews on DOU, individual cases, not statistics).
  • When you can't say anything specific about this company or role. A generic letter is worse than none.

Djinni and DOU: a message, not a formal letter

In Ukraine the main channels for developers are Djinni and DOU. A one page formal letter looks out of place there. 3 to 5 sentences in the response field are enough: who you are, what in the job fits you, one proof, a question or an offer. See the CV guide, Ukrainian market section for both platforms.

What a letter consists of

Four blocks, 1 to 3 sentences each.

  1. The hook. Everyone reads the first sentence. Not "My name is... and I read your job post." Start with what connects you to them: a product you used, a technical problem you've solved, or a specific fact about the company. For a small company it's fine to open with their product, for a large one with the role.
  2. Why this company and this role. One sentence that can't be pasted into a letter to another company. If it can, it isn't working. Sources: the engineering blog, docs, a release, the job post, the product.
  3. 2 to 3 proof points with numbers. What matches the job requirements, not your whole career. Numbers and scale, as in the bullet formula. Don't copy the CV: the letter adds the "why".
  4. A call to action. One sentence: "I'd be glad to walk you through X on a call this week." No "I would appreciate the opportunity" or "I look forward to hearing from you".

Length

  • Formal letter: 120 to 180 words, no more than a page. This matches what we suggest in part 4: the number is a practical rule, not a measured norm.
  • Djinni, DOU or LinkedIn message: 50 to 100 words, 3 to 5 sentences.
  • Keep paragraphs to 2 or 3 sentences. Letters are read on phones.

Tone

In Ukraine. Businesslike and direct. In Ukrainian use the formal "Ви", no pathos. Ukrainian recruiters are used to templates, so a living, specific sentence stands out. In English keep the same behaviour in simpler forms: Hi Olena, not Dear Sir or Madam.

International (US, EU). Warm, direct, confident without bragging. Use the addressee's name if you can find it (LinkedIn, team page), otherwise Hi team. Don't apologise for missing experience and don't write "I'm a fast learner" without proof. The difference between markets is not formality but expectations: abroad a letter is expected to contain concrete results and metrics, not just motivation.

In general: short sentences, active voice, no dashes as punctuation, no "passionate" without a fact. Run the text through LanguageTool.

LinkedIn and Djinni versions

Djinni (response to a job):

Hi! I'm a frontend developer with 3 years in React and TypeScript. You're looking for someone for Next.js and a design system, which is exactly what I've done for the last year and a half at Acme: I built a 40-component Storybook library used by 3 teams. Performance is my thing too: the catalogue LCP dropped from 3.8 to 1.9 s. Happy to go into detail on a call. My CV is in the profile.

LinkedIn (to a recruiter or manager directly): a connection request note is limited to roughly 300 characters without premium (check the current limit, it has changed):

Hi Olena! I applied for the Middle Frontend role in your team. For the last 2 years I've been building a catalogue on Next.js, rewrote it on RSC and halved LCP. Happy to share more if the role is still open.

The principles are the same as for any cold message: personalise, one fact, one action, keep it short. For LinkedIn as a channel see part 5 and the LinkedIn guide.

Follow-up

No reply doesn't mean no. Recruiters are swamped.

  1. First follow-up after 5 to 7 working days. One or two sentences, new value, not "just checking in":

    Hi! Following up on the Middle Frontend role. Since I applied I've published a demo of my Next.js project: [link]. If the role is still open, I'd be glad to talk.

  2. Second 7 to 10 days later, shorter. Then stop.
  3. After an interview: a thank you note the same or next day. Mention one topic you discussed and add one clarification or link.
  4. Channels. First where you applied (Djinni, email). LinkedIn as a second channel, not as pressure.

Using AI to tailor without sounding generic

Any assistant will quickly write a letter that sounds like every other letter: "I am excited to apply...". Recruiters see it daily, including in DOU reviews where companies complain about copy-paste with no personalisation. To make AI help rather than give you away:

  1. Give it facts, not "write a letter". Paste the job text, your base profile with numbers, and 2 or 3 sentences on why this company interests you. The workflow is in part 6 and part 4.
  2. Ask for structure, not text. "Suggest 3 hooks based on this fact about the company" and choose yourself.
  3. Forbid invention. "Do not add facts, numbers or technologies that are not in the profile."
  4. Add your voice. Give 2 or 3 of your own messages as a tone sample.
  5. Strip AI tells: passionate, leverage, I am excited to, long intros, three matching adjectives in a row, dashes as punctuation. Cut it in half.
  6. Read it aloud. If you wouldn't say it to a person, rewrite it.
  7. Privacy: remove phone, email and address before pasting.

A rule that works: you should be ready to explain every sentence at the interview.

Three short templates

Fill in the parts in square brackets. All about 120 to 150 words.

1. Junior

Hi [Name],

I'm a junior frontend developer, and your [product] is something I've used for [time], so the [role] opening caught my eye.

I don't have commercial experience yet, but I've built [project] in React and TypeScript, which [what it does, e.g. is used by 40 people in my course community]. It's deployed at [URL], code at [GitHub]. For this project I [one hard thing you solved, e.g. cut the initial load from 4 s to 1.5 s]. I also [second proof: internship, hackathon, open source PR].

The job post mentions [technology from the vacancy]. I used it in [where], and I'm learning [gap] now.

Could we have a short call this week? I'd be glad to walk you through the code.

[Your name]

2. Middle, switching stack

Hi [Name],

I've spent [N] years as a Java backend developer at [company], and I'm moving to Go. I'm writing about the [role] because [specific reason: you run (the thing) on Go and (public fact about the company)].

The overlap is bigger than it looks. I [proof 1 with a number, e.g. designed an event pipeline processing 2M messages a day], [proof 2, e.g. cut p95 latency from 800 to 250 ms]. Over the last [months] I [proof of the switch: shipped a Go service at work, a pet project, open source PR], link: [URL].

I know I'd be learning on the job for the first weeks, and I'd rather say that upfront than pretend. If you'd like, I can send you a short technical note on how I'd approach [relevant problem from the vacancy].

[Your name]

3. Relocation

Hi [Name],

I'm a [role] with [N] years in [stack] and I'm planning to relocate to [city, country] in [month or season]. I'm applying for the [role] because [specific reason about the company or product].

Some results from my recent work: [proof 1 with a number], [proof 2 with a number], [proof 3 if relevant].

Relocation details so you don't have to ask: [work authorisation status, e.g. I hold an EU residence permit / I'm looking for visa sponsorship / I can start as a contractor remotely from Ukraine and relocate within (N) months]. My time zone is UTC+2, and I can cover [hours] overlap. I'm available from [date].

I'd be glad to talk through the details on a call.

[Your name]

For a letter in Ukrainian keep the same structure. Don't copy a template word for word: the hook and the "why you" reason have to be yours.

Common mistakes

  1. One letter for everyone. If you can swap the company name and the letter still works, nobody needs it.
  2. Retelling the CV. A letter should add the "why", not repeat the "what".
  3. A long intro. "My name is... I'm a graduate... I saw your job post." Start with the point.
  4. All about you. "I need a chance to grow" interests only you. Say what the company gets.
  5. Pleading. Apologising for weak spots. One honest fact and a step forward is better.
  6. Generic words. passionate, team player, fast learner without proof.
  7. Typos and wrong names. Another company's name, a forgotten job title, a misspelled recruiter name.
  8. Invented facts and numbers, especially from AI. They get checked at the interview.
  9. Three paragraphs on Djinni. Length hurts there.
  10. A 2 page attachment when the form asks for two sentences.

How ShortLesson helps

A good letter promises what you will have to show at the interview. We are building vacancy mode: you paste the job text and get a match with your profile, keywords and a prep plan, so choosing the "2 to 3 proof points" for the letter gets easier. Today you can already practise answers in interview practice.

Sources

  • Resume Genius cover letter statistics (2026): relayed by Novoresume, against the original (unverified).
  • ResumeBuilder (2024, 948 managers): via The Interview Guys and similar blogs (unverified).
  • REC survey of UK hiring managers (2025): via DEV Community (unverified).
  • Company reviews on DOU about hundreds of responses, automatic replies on Djinni and templated AI messages: individual reviews, not statistics.
  • We found no solid Ukrainian language sources on letters for Djinni, so our Djinni, DOU and LinkedIn advice is editorial.
  • Internal: CV guide, ATS hub, CV and cover letter tools.

All resources