Career
Cover letter PDF maker
A polished cover letter with a matching header, addressed to the hiring manager — pairs with the resume.
A good cover letter is short, specific and tailored to the role. Tell PDFgen the job, the company and two or three things you want to highlight, and it drafts a three-paragraph letter on a clean letterhead that matches the resume template.
Adjust the wording with a click, then download a PDF ready to attach to your application.
Generate a Cover Letter PDF via the API
POST your data to /api/v1/generate and get a PDF back. Copy-paste an example, swap in your API key, and loop over a list to render thousands — one cover letter per record.
curl -X POST https://pdfgen.com/api/v1/generate \-H "Authorization: Bearer pdfg_live_xxx" \-H "Content-Type: application/json" \-d '{"data": {"sender": {"name": "Priya Sharma","title": "Senior Product Designer","email": "priya.sharma@email.com","phone": "+91 98765 43210","location": "Bengaluru, India"},"date": "2026-10-28","recipient": {"name": "Anita Rao","title": "Head of Design","company": "Nimbus Technologies","address": "4th Floor, Prestige Tower, MG Road\nBengaluru 560001"},"position": "Senior Product Designer","greeting": "Dear Ms. Rao,","paragraphs": ["I was excited to see the Senior Product Designer opening at Nimbus Technologies. Your work making retail software simple for small store owners is exactly the kind of problem I love to solve.","At Lumen Labs I led the redesign of our onboarding flow, which lifted activation by 18%, and I built the design system our six product teams use every day. I enjoy pairing research with fast iteration alongside engineers.","I would welcome the chance to bring that experience to your team. Thank you for considering my application — I look forward to talking with you."],"closing": "Sincerely,"},"format": "A4","engine": "handlebars","html": "<div style=\"max-width:700px;margin:0 auto;padding:56px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:#111827;line-height:1.65;\">\n <div style=\"display:flex;justify-content:space-between;align-items:flex-start;border-bottom:1px solid #e5e7eb;padding-bottom:18px;margin-bottom:28px;\">\n <div>\n <h1 style=\"font-size:24px;font-weight:800;margin:0;\">{{sender.name}}</h1>\n <p style=\"margin:4px 0 0;font-size:13px;color:#7c3aed;font-weight:600;\">{{sender.title}}</p>\n </div>\n <div style=\"text-align:right;font-size:12px;color:#6b7280;line-height:1.6;\">{{sender.email}}<br>{{sender.phone}}<br>{{sender.location}}</div>\n </div>\n <p style=\"font-size:13px;color:#6b7280;margin:0 0 20px;\">{{formatDate date}}</p>\n <p style=\"font-size:14px;margin:0 0 24px;\"><strong>{{recipient.name}}</strong><br>{{recipient.title}}, {{recipient.company}}<br><span style=\"white-space:pre-line;color:#6b7280;\">{{recipient.address}}</span></p>\n <p style=\"font-size:14px;font-weight:700;margin:0 0 16px;\">Re: Application for {{position}}</p>\n <p style=\"font-size:14px;margin:0 0 14px;\">{{greeting}}</p>\n {{#each paragraphs}}<p style=\"font-size:14px;margin:0 0 14px;color:#374151;\">{{this}}</p>{{/each}}\n <p style=\"font-size:14px;margin:24px 0 0;\">{{closing}}</p>\n <p style=\"font-size:16px;font-weight:700;margin:28px 0 0;\">{{sender.name}}</p>\n</div>"}' --output cover-letter.pdf
Working in another language? Follow a full guide for your stack:
What you can build
- Writing a tailored letter for each application in minutes
- Keeping your resume and cover letter visually consistent
- Career coaches preparing letters with clients
- Job platforms generating a cover letter alongside each resume
Frequently asked questions
- How long should a cover letter be?
- Three short paragraphs on one page is usually enough: why this role, what you have done that matters for it, and a brief close.
- Can I reuse the letter for different jobs?
- Yes — save it as a template and change the company, role and highlights each time, or ask the AI to rewrite it for a new job description.
- Does it match the resume template?
- Yes. The header uses the same name, title and contact block, so the two documents look like a set.