Skip to main content
Glama

create_resume

Generate LaTeX resume files using customizable templates or custom content to create professional documents for job applications.

Instructions

Create a new LaTeX resume file. Args: filename: Name for the new resume file (with or without .tex extension) content: Full LaTeX content for the resume. If not provided, uses a template. template: Template to use if content not provided. Options: 'modern', 'classic', 'minimal' Returns confirmation of file creation.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
filenameYes
contentNo
templateNomodern

Implementation Reference

  • The handler function for the 'create_resume' tool. Decorated with @mcp.tool() for registration. Creates a new .tex resume file using custom content or predefined templates, handles duplicates and errors.
    @mcp.tool() def create_resume(filename: str, content: str = None, template: str = "modern") -> str: """ Create a new LaTeX resume file. Args: filename: Name for the new resume file (with or without .tex extension) content: Full LaTeX content for the resume. If not provided, uses a template. template: Template to use if content not provided. Options: 'modern', 'classic', 'minimal' Returns confirmation of file creation. """ ensure_dirs() filepath = get_resumes_dir() / ensure_tex_extension(filename) if filepath.exists(): return json.dumps({"error": f"Resume '{filename}' already exists. Use edit_resume to modify it."}) if content: resume_content = content elif template in LATEX_TEMPLATES: resume_content = LATEX_TEMPLATES[template] else: return json.dumps({"error": f"Unknown template '{template}'. Available: modern, classic, minimal"}) try: filepath.write_text(resume_content, encoding="utf-8") return json.dumps({"success": True, "path": str(filepath), "template_used": template if not content else "custom"}) except Exception as e: return json.dumps({"error": f"Error creating file: {str(e)}"})
  • Dictionary containing the built-in LaTeX templates ('modern', 'classic', 'minimal') used by create_resume when no custom content is provided.
    LATEX_TEMPLATES = { "modern": r"""\documentclass[11pt,a4paper]{article} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage{geometry} \usepackage{hyperref} \usepackage{titlesec} \usepackage{enumitem} \usepackage{xcolor} \geometry{left=0.75in, right=0.75in, top=0.5in, bottom=0.5in} \pagestyle{empty} % Colors \definecolor{primary}{RGB}{0, 79, 144} \definecolor{secondary}{RGB}{89, 89, 89} % Section formatting \titleformat{\section}{\large\bfseries\color{primary}}{}{0em}{}[\titlerule] \titlespacing{\section}{0pt}{12pt}{6pt} % Custom commands \newcommand{\resumeItem}[1]{\item\small{#1}} \newcommand{\resumeSubheading}[4]{ \item \begin{tabular*}{\textwidth}[t]{l@{\extracolsep{\fill}}r} \textbf{#1} & #2 \\ \textit{\small#3} & \textit{\small#4} \\ \end{tabular*}\vspace{-5pt} } \begin{document} % Header \begin{center} {\LARGE\bfseries YOUR NAME}\\[4pt] \href{mailto:email@example.com}{email@example.com} $|$ (123) 456-7890 $|$ \href{https://linkedin.com/in/yourprofile}{LinkedIn} $|$ \href{https://github.com/yourusername}{GitHub} \end{center} \section{Experience} \begin{itemize}[leftmargin=0.15in, label={}] \resumeSubheading {Company Name}{City, State} {Job Title}{Start Date -- End Date} \begin{itemize}[leftmargin=0.2in] \resumeItem{Accomplishment or responsibility} \resumeItem{Another accomplishment} \end{itemize} \end{itemize} \section{Education} \begin{itemize}[leftmargin=0.15in, label={}] \resumeSubheading {University Name}{City, State} {Degree, Major}{Graduation Date} \end{itemize} \section{Skills} \begin{itemize}[leftmargin=0.15in, label={}] \item \textbf{Programming:} Python, JavaScript, Java, C++ \item \textbf{Tools:} Git, Docker, AWS, Linux \end{itemize} \end{document} """, "classic": r"""\documentclass[11pt,letterpaper]{article} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage{geometry} \usepackage{hyperref} \usepackage{enumitem} \geometry{margin=1in} \pagestyle{empty} \begin{document} \begin{center} {\Large\textbf{YOUR NAME}}\\[6pt] Address Line $\bullet$ City, State ZIP\\ Phone: (123) 456-7890 $\bullet$ Email: email@example.com \end{center} \vspace{12pt} \noindent\textbf{\large OBJECTIVE}\\ \rule{\textwidth}{0.4pt}\\[3pt] A brief statement about your career objectives. \vspace{12pt} \noindent\textbf{\large EDUCATION}\\ \rule{\textwidth}{0.4pt}\\[3pt] \textbf{University Name} \hfill City, State\\ Degree, Major \hfill Graduation Date\\ GPA: X.XX \vspace{12pt} \noindent\textbf{\large EXPERIENCE}\\ \rule{\textwidth}{0.4pt}\\[3pt] \textbf{Company Name} \hfill City, State\\ \textit{Job Title} \hfill Start Date -- End Date \begin{itemize}[leftmargin=0.2in, topsep=0pt] \item Accomplishment or responsibility \item Another accomplishment \end{itemize} \vspace{12pt} \noindent\textbf{\large SKILLS}\\ \rule{\textwidth}{0.4pt}\\[3pt] \textbf{Technical:} List of technical skills\\ \textbf{Languages:} Languages you speak \end{document} """, "minimal": r"""\documentclass[11pt]{article} \usepackage[utf8]{inputenc} \usepackage[margin=0.75in]{geometry} \usepackage{hyperref} \usepackage{enumitem} \pagestyle{empty} \setlength{\parindent}{0pt} \begin{document} \textbf{\Large YOUR NAME}\\[4pt] email@example.com $|$ (123) 456-7890 $|$ City, State \vspace{12pt} \textbf{Experience}\hrulefill\\[6pt] \textbf{Job Title}, Company Name \hfill Dates\\ \begin{itemize}[leftmargin=0.15in, topsep=0pt, parsep=0pt] \item Accomplishment \end{itemize} \vspace{8pt} \textbf{Education}\hrulefill\\[6pt] \textbf{Degree}, University Name \hfill Graduation Date \vspace{8pt} \textbf{Skills}\hrulefill\\[6pt] Skill 1, Skill 2, Skill 3 \end{document} """, }
  • The @mcp.tool() decorator registers the create_resume function as an MCP tool.
    @mcp.tool()

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/dannywillowliu-uchi/resume_mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server