To write a cover letter, read the job posting, pick the three requirements that matter most, and write four short paragraphs: an opening that names the role and one real reason you want it, two proof paragraphs that each answer one requirement with something you did, and a close that asks for a conversation. Keep it to about 200 to 400 words, the range CareerOneStop, the US Department of Labor's career site, recommends. Most guides stop at that structure. This one shows the whole method on one sample posting, letter included, and then covers the part the ranking guides skip: what online application forms do with your letter once you have written it.
The short version: four paragraphs and the job of each
A cover letter has one purpose: to connect a few things you have done to the few things this employer said it needs. Every paragraph should earn its place against that.
| Paragraph | Its job | Length |
|---|---|---|
| Opening | Name the role, say where you found it, give one specific reason you want this job | 2 to 3 sentences |
| Proof 1 | Answer the posting's most important requirement with one example and its result | 3 to 4 sentences |
| Proof 2 | Answer a second requirement, ideally a different kind (technical, then people) | 3 to 4 sentences |
| Close | Tie the third requirement in, ask for the next step, thank them | 2 to 3 sentences |
Cover letter format, in brief. Put your name, email and phone at the top, then the date, then the greeting. Address a person by name where you can. CareerOneStop advises against addressing the letter to a business, a department, or "To Whom It May Concern"; a job title such as "Dear Analytics Hiring Manager" works when you have no name. Our guide to addressing a cover letter without a name covers each case. Sign off with "Sincerely" or "Best regards" and your name. For the length question in more detail, see how long a cover letter should be.
What to include, and what not to. Include things that are true, specific and checkable: what you built, fixed, sold or improved, and what changed as a result. Leave out what the resume already says in list form, salary, reasons you left a job unless the posting asks, and any claim you could not explain in an interview. CareerOneStop's template asks for "different examples or language than your resume", which is the best single test of a paragraph: if it repeats a bullet, rewrite it as the story behind the bullet.
Step 1: read the posting and pick three requirements
Most postings list ten or more requirements. A letter cannot answer them all, and should not try. Pick three, using these filters in order:
- What the posting repeats. A skill named in the summary, the duties and the qualifications is the one the hiring manager cares about.
- What comes first in the list. Requirements near the top of a list are usually the ones the writer thought of first.
- What you can prove best. Of the remaining candidates, pick the ones where you have a specific example with a result.
Here is the sample posting this guide works through. It is invented for this post.
Sample posting: Junior Data Analyst, Harbor Lane Markets (a fictional regional grocery chain)
We are looking for a junior data analyst to join our merchandising team. You will (A) write SQL to pull and clean sales and inventory data from our warehouse, (B) build and maintain Tableau or Power BI dashboards that our 40 store managers use every week, and (C) explain what the numbers mean to buyers and store teams who are not technical. Bonus: experience with Python, retail or supply chain data.
Requirement A is the daily work. Requirement B names the output and the audience. Requirement C appears in the posting's own words twice ("store managers", "store teams who are not technical"), which marks it as a real concern, probably because a past hire could build dashboards no one used.
Step 2: an opening that names the role and one real reason
The opening has two jobs: tell the reader which job you are applying for, and give one reason that could only be about this employer. Skip the line about being "excited to apply". Most applicants write it.
A reason that works is something you know about the company, its product or its customers that connects to the work. A reason that does not work is praise any company could receive ("an industry leader", "your innovative culture").
Sample opening lines, written for this post, for four common situations:
- New grad, data analyst: "I am applying for the Junior Data Analyst role on your merchandising team. I shop at your Elm Street store, and I noticed the weekly specials change by neighborhood, which is exactly the kind of decision I would like to help support with data."
- New grad, software engineer: "I am applying for the Software Engineer, New Grad role on the Payments team. Your engineering blog post on retrying failed card authorizations described a problem I spent a semester on in my distributed systems course."
- Career changer: "After six years as a pharmacy technician, I moved into data analysis because the inventory reports I relied on were always a week late. Your Junior Data Analyst opening is the job I wished existed at my old pharmacy."
- International student: "I am completing my MS in Business Analytics in May and am applying for your Junior Data Analyst role. Before graduate school I worked two years in retail planning in Pune, so grocery data is familiar ground."
Each one names the role in the first sentence and gives a reason that would make no sense in a letter to a different employer. Applying for an internship? Our internship cover letter guide builds the letter from classes and projects.
Step 3: two proof paragraphs, one requirement each
Each proof paragraph answers one requirement with one example. Use a simple shape: the situation in one sentence, what you did, and what changed. If you have a number, use it. If you do not, describe the change concretely ("the team stopped exporting to Excel").
Two rules keep these paragraphs honest:
- One requirement per paragraph. A paragraph that tries to cover SQL, Python, dashboards and teamwork proves none of them.
- Only claims you can defend. A hiring manager may ask about any sentence in the letter. If you cannot talk about it for two minutes, cut it.
CareerOneStop suggests a "T" format as an alternative: a two-column list of the posting's requirements beside your matching qualifications. It is quicker to read but harder to make memorable. The paragraph version below lets you show how you work, which is what a list cannot do.
Step 4: a close that asks for the next step
The close does three things in two or three sentences: it touches the remaining requirement, it asks for a conversation, and it thanks the reader. "I look forward to hearing from you" is fine. Asking for something specific is better: "I would welcome the chance to walk you through the dashboard."
Do not restate the whole letter, and do not apologize for anything you lack. For closing lines by situation and sign-offs ranked by formality, see how to end a cover letter.
A full sample letter, annotated against the sample posting
This sample letter is written for this post. The candidate, the school and every number in it are invented. The bracketed tags show which requirement each paragraph answers.
Jordan Rivera | jordan.rivera@example.com | (555) 010-0142
October 18, 2026
Dear Merchandising Analytics Hiring Manager,
I am applying for the Junior Data Analyst role on your merchandising team, which I found on your careers page. I shop at your Elm Street store, and I noticed the weekly specials change by neighborhood. I would like to help make those calls with better data. [Opening: role, source, specific reason]
At Lakeside Food Co-op, where I interned this summer, I wrote the SQL that pulled two years of point of sale and delivery records into one table for the first time. Half the work was cleaning: product codes had changed twice, and returns were logged as negative sales in one system and as a separate table in the other. Once the data lined up, the buying team could see which products sold out before the next delivery for the first time. [Proof 1: Requirement A, SQL and data cleaning]
The table only mattered once people used it. I built a Tableau dashboard showing stockouts by store and day, and I sat with two store managers to learn what they checked each morning. Their answer was "what will run out before Friday," so I rebuilt the first page around that question. By the end of the internship, all six managers were opening it before their weekly order. [Proof 2: Requirements B and C, dashboards for non-technical users]
I would welcome the chance to walk you through that dashboard and hear how your store teams use data today. Thank you for your time. [Close: next step, thanks]
Sincerely, Jordan Rivera
About 240 words. Here is how it maps to the posting:
| Posting requirement | Where the letter answers it | Evidence used |
|---|---|---|
| (A) SQL to pull and clean data | Paragraph 2 | A specific cleaning problem, named |
| (B) Tableau or Power BI dashboards | Paragraph 3 | The dashboard and who used it |
| (C) Explaining numbers to non-technical teams | Paragraph 3, then the close | Sitting with managers, redesigning around their question |
| Bonus: retail data | Opening and paragraph 2 | Store visit, co-op internship |
Notice what is missing. There is no list of tools, no "fast learner", no GPA and no summary of the resume. The letter does not mention Python, because the candidate's best Python story did not fit any of the three requirements. Leaving a skill out of the letter does not remove it from the resume. For full letters in other situations, see our cover letter examples.
Online application forms: upload, text box or optional
Most applications now go through an online form, and the form decides how your letter arrives. To see what forms ask for, we read the application questions on 57 current postings on 18 October 2026.
On Greenhouse, we checked the first three postings on each of ten employers' public job boards (Airbnb, Cloudflare, Discord, Dropbox, Figma, Instacart, Lyft, Reddit, Robinhood and Stripe) through the public Greenhouse job board API:
| Greenhouse result, 30 postings | Count |
|---|---|
| Cover letter field present | 24 |
| ...of which optional | 23 |
| ...of which required | 1 |
| No cover letter field | 6 (all at two employers) |
Every Greenhouse cover letter field we saw accepted either a file upload or pasted text. Greenhouse's documentation lists the supported attachment types as "pdf, doc, docx, txt, rtf".
On Ashby, whether a posting asks for a cover letter varies by employer and even by job, and the fields we saw came in two shapes. At Ramp it was an optional file upload (example posting). At Linear it was a long text box, required on two of the three postings (example posting).
On Lever, the standard form has no separate cover letter upload. It ends with an optional Additional information box whose placeholder reads "Add a cover letter or anything else you want to share."
What to do in each case:
| What the form shows | What to send |
|---|---|
| Upload field, optional | The full letter as a PDF, if you wrote a specific one; otherwise skip it |
| Upload field, required | The full letter as a PDF. A required field left empty can block the application |
| Text box for the letter | The same letter as plain text, without the address block and date |
| A general "additional information" box | A shorter version: opening plus your strongest proof paragraph |
| No field at all | Nothing. Put your best example in the resume instead |
Pasting into a text box. Write in a plain editor first, so curly quotes, bullets and bold text do not turn into stray symbols. Keep the greeting and sign-off, drop your contact block (the form already has it), and leave a blank line between paragraphs. If the box has a character limit, cut the second proof paragraph before you shorten the others.
File naming. Name the file so it still makes sense in a recruiter's downloads folder: Jordan-Rivera-Cover-Letter-Harbor-Lane.pdf, not cover letter final v3.pdf. Use PDF unless the form asks for something else, so the layout survives.
When a letter is optional, whether to write one is its own decision. Our post on whether a cover letter is necessary works through it. When there is no posting at all, what you send is a letter of interest instead.
What a cover letter is still worth
The evidence on cover letters is thinner than most guides admit, and most of it comes from resume companies. Here is what exists, with its weak points.
| Source | Finding | Caveat |
|---|---|---|
| ResumeGo field experiment | Tailored letters got "a 53% higher callback rate than applications with no cover letter at all" across 7,287 fictitious applications | Run by a resume vendor from July 2019 to January 2020; rates appear only in a chart |
| Resume Genius survey | "83% of hiring managers read most cover letters" | Vendor poll of 625 US hiring managers |
| Cui, Dias and Ye, 2025 | After a platform launched an AI cover letter tool, "the correlation between cover letters' textual alignment and callbacks fell by 51%" | Working paper, one online labor platform |
Read together: a tailored letter seems to help, and people do read them. But the academic study shows what happens when everyone can generate a letter that matches the posting. Matching stopped being a signal, and employers "shifted toward alternative signals, including workers' prior work histories." A letter that only repeats the posting's words now says very little. A letter with a specific, checkable example says something the others do not.
Using AI without sounding like every other applicant
CareerOneStop says it is fine to use AI tools to draft a cover letter, as long as you then edit it "so it reflects your unique 'voice', your skills and experience, and your interest in the position." The same 2025 study found that "time spent editing AI-generated cover letter drafts is positively correlated with hiring success."
A workable process:
- Write the three requirements and your one example for each yourself, in rough notes. This is the part a tool cannot do, because it does not know what happened at your internship.
- Ask the tool to turn the notes into four paragraphs of about 250 words. Our ChatGPT resume prompts use the same rule: give it facts, not permission to invent.
- Delete every sentence that could appear in anyone's letter. Typical offenders: "I am excited to apply", "proven track record", "passionate about", "fast-paced environment".
- Check every claim. If the draft says you "led" something you helped with, fix it. An invented claim in a letter is a problem in the interview.
- Read it aloud. If it does not sound like you, rewrite the opening in your own words; that is the paragraph read most closely.
A checklist before you submit
Copy this and run through it for every letter:
- The first sentence names the exact job title from the posting.
- The opening has one reason that only fits this employer.
- Each proof paragraph answers one named requirement with one example.
- Every claim is true and you could talk about it for two minutes.
- No sentence repeats a resume bullet word for word.
- The greeting names a person or a job title, not "To Whom It May Concern."
- It is about 200 to 400 words and fits on one page.
- The company name is right everywhere (check after reusing a draft).
- For a text box: plain text, no address block, blank lines between paragraphs.
- For an upload: PDF, named with your name and the company.
The letter and the resume should tell the same story about the same job. If you have tailored the letter, tailor the resume to match; our guide to tailoring a resume shows how.
Where ApplyEze fits
ApplyEze writes a resume for every posting it applies to, and a cover letter when the form asks for one, as PDF and DOCX, and reads each file back with a parser check before upload. Our post on how ApplyEze writes a letter for one posting covers the details. If you use it, run a dry run first, which fills the form without clicking Submit, and read any letter it wrote. It goes out under your name, so the checklist above still applies.
