DEV Community

Cover image for Crafting a Professional Resume with LaTeX and ChatGPT: A Step-by-Step Guide
Aayush Adhikari
Aayush Adhikari

Posted on

Crafting a Professional Resume with LaTeX and ChatGPT: A Step-by-Step Guide

Introduction

In today's competitive job market, a well-crafted resume can make all the difference in securing your dream job. LaTeX is a powerful typesetting system known for its ability to create beautifully formatted documents, making it an excellent choice for crafting professional resumes. Paired with ChatGPT, an AI-powered text generation tool, you can streamline the resume creation process and generate personalized LaTeX code based on your input. In this guide, we'll walk you through the steps of creating a professional resume using LaTeX and ChatGPT, helping you stand out to potential employers.

Why Choose LaTeX and ChatGPT for Your Resume?

LaTeX offers several advantages for resume creation, including professional-looking typography, consistent formatting, extensive customization options, and compatibility with version control systems like Git. By incorporating ChatGPT into the process, you can generate personalized LaTeX code quickly and efficiently, saving time and effort while ensuring a polished final result.

The LaTeX Resume Prompt

To get started, copy the following LaTeX prompt and fill in your details:

Prompt:
Create a professional resume using LaTeX with the provided code and the following details:

Contact Information: Include your full name, email address, phone number, LinkedIn profile URL, and GitHub profile URL.

Skills: List relevant skills such as programming languages, software proficiency, and any other technical abilities you possess.

Education: Provide details about your education, including the name of the institution, degree earned, major, and relevant dates.

Projects: If applicable, showcase any projects you've worked on. Include a brief description, links to GitHub repositories, and demo URLs if available.

Experience: Detail your work experience, including job titles, company names, locations, dates of employment, and key responsibilities and achievements.

Certifications: List any certifications you have obtained to showcase your expertise.

Languages: Specify any languages you speak or are proficient in.

Interests: Mention any hobbies or interests that demonstrate your personality and interests outside of work.

main.tex

% Start a document with the here given default font size and paper size.
\documentclass[10pt,a4paper]{article}

% Set the page margins.
\usepackage[a4paper,margin=0.75in]{geometry}

% Setup the language.
\usepackage[english]{babel}
\hyphenation{Some-long-word}
\usepackage{lipsum} % Generates Lorem Ipsum filler text. Remove or replace with your own content.

% Makes resume-specific commands available.
\usepackage{resume}

% Input encoding for special characters such as ä, ö, ü, ñ etc.
\usepackage[utf8]{inputenc}

% For clickable URLs
\usepackage{hyperref}

\begin{document} % begin the content of the document

% Title on top of the document
\maintitle{Your Name}{}{Last update on \today} % Replace "Your Name" with your actual name

% Contact information
\nobreakvspace{0.3em} % add some page break averse vertical spacing
\noindent
\href{mailto:your_email@example.com}{your\_email@example.com}\sbull % Replace "your_email@example.com" with your actual email address
\textsmaller{+}123456789\sbull % Replace "123456789" with your actual phone number
\href{https://www.linkedin.com/in/your-linkedin-profile}{LinkedIn}\sbull % Replace "your-linkedin-profile" with your actual LinkedIn profile URL
\href{https://github.com/your-github-profile}{GitHub} % Replace "your-github-profile" with your actual GitHub profile URL

% Skills section
\spacedhrule{0.5em}{-0.4em} % Horizontal rule with some vertical spacing before and after
\roottitle{Skills} % Section title
\begin{itemize}
    \item Skill 1
    \item Skill 2
    \item Skill 3
    % Add more skills as needed
\end{itemize}

% Education section
\spacedhrule{0.5em}{-0.4em}
\roottitle{Education}
\headedsection
  {University Name}
  {\textsc{City, State, Country}}
  {%
    \headedsubsection
      {Degree, Major}
      {Month Year -- Month Year}
      {\bodytext{Additional details}}
  }

% Projects section
\spacedhrule{0.5em}{-0.4em}
\roottitle{Projects}
\headedsection
  {Project Title}
  {}
  {
    \headedsubsection
      {Description}
      {}
      {
        \bodytext{Additional details}
        \begin{itemize}
            \item GitHub Repository: \url{https://github.com/your-project}
            \item Demo URL: \url{https://your-demo-url.com}
        \end{itemize}
      }
  }

% Experience section
\spacedhrule{0.5em}{-0.4em}
\roottitle{Experience}
\headedsection
  {Job Title}
  {Company Name}
  {\textsc{City, State, Country}}
  {Month Year -- Month Year}
  {
    \bodytext{Responsibilities and achievements}
  }

% Certifications section
\spacedhrule{0.5em}{-0.4em}
\roottitle{Certifications}
\begin{itemize}
    \item Certification 1
    \item Certification 2
    % Add more certifications as needed
\end{itemize}

% Languages section
\spacedhrule{0.5em}{-0.4em}
\roottitle{Languages}
\begin{itemize}
    \item Language 1: Proficient
    \item Language 2: Intermediate
    % Add more languages as needed
\end{itemize}

% Interests section
\spacedhrule{0.5em}{-0.4em}
\roottitle{Interests}
\begin{itemize}
    \item Hobby 1
    \item Hobby 2
    % Add more interests as needed
\end{itemize}

\end{document}

Enter fullscreen mode Exit fullscreen mode

resume.sty


\usepackage{mdwlist}
\usepackage{multicol}
\usepackage{relsize}
\usepackage{hyperref}  
\usepackage{xcolor}
\definecolor{dark-blue}{rgb}{0.15,0.15,0.4}
\hypersetup{colorlinks,linkcolor={dark-blue},citecolor={dark-blue},urlcolor={dark-blue}}

\usepackage{ifxetex}
\ifxetex

  \usepackage{fontspec}

  \setmainfont
    [ ExternalLocation ,
      Mapping          = tex-text ,
      Numbers          = OldStyle ,
      Ligatures        = {Common,Contextual} ,
      BoldFont         = texgyrepagella-bold.otf ,
      ItalicFont       = texgyrepagella-italic.otf ,
      BoldItalicFont   = texgyrepagella-bolditalic.otf ]
    {texgyrepagella-regular.otf}

  \newfontfamily\newnums
    [ ExternalLocation ,
      Mapping          = tex-text ,
      Ligatures        = {Common,Contextual} ,
      BoldFont         = texgyrepagella-bold.otf ,
      ItalicFont       = texgyrepagella-italic.otf ,
      BoldItalicFont   = texgyrepagella-bolditalic.otf ]
    {texgyrepagella-regular.otf}

\else

  \usepackage{tgpagella}

\fi

\pagestyle{empty}
\setlength{\tabcolsep}{0em}
\xspaceskip7pt

\newcommand\maintitle[3]{\vbox to 0pt{\hfill\scriptsize\color{gray} #3}\vspace{-0.4em}\noindent{\LARGE \textbf{#1}}\ \ \ \emph{#2}}
\newcommand*\roottitle[1]{\subsection*{#1}\vspace{-0.3em}\nopagebreak[4]}
\newcommand*\acr[1]{\textscale{.85}{#1}}
\newcommand*\bull{\raisebox{-0.365em}[-1em][-1em]{\textscale{4}{$\cdot$}}}
\newcommand*\sbull{\ \ \bull \ \ }
\newlength{\newparindent}
\addtolength{\newparindent}{\parindent}
\newlength{\doubleparindent}
\addtolength{\doubleparindent}{\parindent}
\addtolength{\doubleparindent}{\parindent}

\newenvironment{indentsection}%
{\begin{list}{}%
  {\setlength{\leftmargin}{\newparindent}\setlength{\parsep}{0pt}\setlength{\parskip}{0pt}\setlength{\itemsep}{0pt}\setlength{\topsep}{0pt}}%
}
{\end{list}}

\newcommand{\headedsection}[3]{\nopagebreak[4]\begin{indentsection}\item[]\textscale{1.1}{#1}\hfill#2#3\end{indentsection}\nopagebreak[4]}
\newcommand{\headedsubsection}[3]{\nopagebreak[4]\begin{indentsection}\item[]\textbf{#1}\hfill\emph{#2}#3\end{indentsection}\nopagebreak[4]}
\newcommand{\bodytext}[1]{\nopagebreak[4]\begin{indentsection}\item[]#1\end{indentsection}\pagebreak[2]}
\newcommand{\breakvspace}[1]{\pagebreak[2]\vspace{#1}\pagebreak[2]}
\newcommand{\nobreakvspace}[1]{\nopagebreak[4]\vspace{#1}\nopagebreak[4]}
\newcommand{\spacedhrule}[2]{\breakvspace{#1}\hrule\nobreakvspace{#2}}
\newcommand{\inlineheadsection}[2]{\begin{basedescript}{\setlength{\leftmargin}{\doubleparindent}}\item[\hspace{\newparindent}\textbf{#1}]#2\end{basedescript}\vspace{-1.7em}}
\newcommand{\apo}{\raisebox{-.18ex}{'}{\hspace{-.1em}}}
\newcommand*{\nsp}{\hskip0pt}
\newcommand{\CPP}{C\nolinebreak[4]\hspace{-.04em}\raisebox{.20ex}{\footnotesize\bf++}}
Enter fullscreen mode Exit fullscreen mode

Creating Your Resume with LaTeX and ChatGPT

  1. Copy the Prompt: Paste the LaTeX prompt into the ChatGPT interface.

  2. Fill in Your Details: Replace placeholder text in the prompt with your actual information.

  3. Generate LaTeX Code: Let ChatGPT process the prompt and generate personalized LaTeX code for your resume.

  4. Copy the Generated Code: Once ChatGPT has generated the LaTeX code, copy the entire snippet.

  5. Creating Your Resume in a LaTeX Editor:

    • Open a LaTeX editor like Overleaf and create a new document.
    • Paste the copied LaTeX code of both files main.tex and resume.sty into the editor.
    • Compile the LaTeX document to view your resume. Make any necessary adjustments to formatting or content.
    • Save the document for future reference.

Sample
Image description

Conclusion

Crafting a professional resume with LaTeX and ChatGPT is a straightforward process that yields impressive results. By leveraging the power of LaTeX's typesetting capabilities and ChatGPT's text generation capabilities, you can create a standout resume that effectively showcases your skills and experiences. So why wait? Follow the steps outlined in this guide and take the next step towards landing your dream job with a professional LaTeX resume.

Top comments (1)

Collapse
 
adhikareeprayush profile image
Prayush Adhikari

Found it very Helpful!