DEV Community

Cover image for Generate a Custom Resume for Every Job Application Without Starting from Scratch
Elias Soykat
Elias Soykat

Posted on

Generate a Custom Resume for Every Job Application Without Starting from Scratch

If you're job hunting, you already know the struggle. You find a great job posting, spend time rewriting your resume to match what they're looking for, maybe write a cover letter, save it as a PDF, and then do it all over again for the next job. It's exhausting and time-consuming.

Tailor Resume is a free tool that makes this process much easier. You keep one master resume with all your experience, and the tool helps you create a customized version for each job you apply to — complete with a matching cover letter and professional PDF.


What This Tool Does

Think of it this way:

  • Your master resume is like a complete list of everything you've done — all your jobs, skills, education, and achievements
  • Each job application gets its own tailored version — you pick what's most relevant for that specific role
  • The tool turns that tailored version into a clean, professional PDF that works with automated hiring systems (ATS)

No more manually reformatting. No more wondering which version you sent to which company.


How to Get Started

Step 1: Download the Tool

You'll need a few things first:

  1. Node.js — Download it from nodejs.org (get the LTS version)
  2. Google Chrome or Microsoft Edge — You probably already have one of these
  3. Git — Download from git-scm.com (needed to get the tool files)

Then open a terminal (Command Prompt on Windows, Terminal on Mac) and run:

git clone https://github.com/elias-soykat/tailor-resume.git
cd tailor-resume
npm install
Enter fullscreen mode Exit fullscreen mode

Step 2: Create Your Master Resume

Open the master_resume.json file in any text editor (Notepad works fine). Replace the example information with your own:

{
  "personal_info": {
    "full_name": "Your Full Name",
    "title": "Your Current or Target Job Title",
    "email": "your.email@example.com",
    "location": "City, Country",
    "linkedin": "your-linkedin-profile-name",
    "github": "your-github-username"
  },
  "professional_summary": "A short paragraph about who you are professionally...",
  "skills": {
    "languages": ["English", "Spanish", "Other Languages"],
    "frontend": ["Skill 1", "Skill 2"],
    "backend": ["Skill 1", "Skill 2"],
    "tools_ops": ["Tool 1", "Tool 2"]
  },
  "experience": [
    {
      "company": "Company Name",
      "position": "Your Job Title",
      "start_date": "2023-06",
      "end_date": "Present",
      "location": "City, Country",
      "achievements": [
        {
          "description": "What you did in this role",
          "impact": "The result or outcome (optional)"
        }
      ]
    }
  ],
  "education": [
    {
      "degree": "Your Degree or Certification",
      "institution": "School or University Name",
      "start_year": 2014,
      "end_year": 2018
    }
  ]
}
Enter fullscreen mode Exit fullscreen mode

Don't worry about getting it perfect — you can always add more later. The key is to include everything you might want to use across different applications.

Step 3: Generate a Tailored Resume for a Job

This is where the magic happens. You can use an AI assistant (like Claude, ChatGPT, or Cursor) to help you:

  1. Copy a job description from a job posting you're interested in
  2. Paste it into a chat with the AI assistant
  3. Ask it to create a tailored resume and cover letter based on your master resume

The AI will create a folder in the output/ directory with your customized files.

Step 4: Create the PDF

Once you have your tailored resume and cover letter as JSON files, run this command in the terminal:

npm run generate -- --dir output/CompanyName
Enter fullscreen mode Exit fullscreen mode

Replace CompanyName with the actual folder name. The tool will create professional PDFs you can submit with your application.


What You Get

For each job application, you'll have:

output/
  Company_Name/
    YourName_Job_Title_resume.json      ← Your tailored resume data
    YourName_Job_Title_resume.pdf       ← Your resume as a PDF
    YourName_Job_Title_cover_letter.json ← Your cover letter data
    YourName_Job_Title_cover_letter.pdf  ← Your cover letter as a PDF
Enter fullscreen mode Exit fullscreen mode

Everything is organized by company, so you'll never lose track of what you sent where.


Why This Helps

The old way:

  • You edit your resume manually for each job
  • You might forget which version you sent to which company
  • Formatting takes time and can break between applications
  • Cover letters are often skipped because they take too long

With this tool:

  • One master list of everything you've done
  • Each application gets its own tailored version
  • PDFs are generated automatically — no formatting headaches
  • Cover letters are included with every application
  • Everything is organized and easy to find later

Tips for Best Results

  • Keep your master resume complete — Include all your experience, even if you don't use it all for every application. You can always leave things out for specific jobs.
  • Be specific in your achievements — Instead of "Responsible for sales," write "Increased sales by 30% in 6 months." Numbers and results stand out.
  • Update your master resume regularly — Add new skills and achievements as you go, so you're always ready for the next opportunity.
  • Review the AI output — The AI does a good job, but always read through the tailored version to make sure it represents you accurately.

Quick Start Summary

  1. Install Node.js, Chrome/Edge, and Git
  2. Clone the tool: git clone https://github.com/elias-soykat/tailor-resume.git
  3. Install: npm install
  4. Edit master_resume.json with your information
  5. Find a job posting and use an AI assistant to create tailored versions
  6. Run npm run generate -- --dir output/CompanyName to get your PDFs
  7. Apply with confidence

Good luck with your job search! If you have questions, open an issue on the GitHub repository.

Top comments (0)