Resume Generator App Using Python
Last Updated :
22 Jan, 2024
In this article, we will explain how to create the Resume Generator App using Python. To generate the resume, we will utilize an API and demonstrate how we can easily create a personalized resume by providing essential details. The information includes skills, education, experience, grades, and other crucial details that we typically include in our resumes.
What is the Resume Generator App?
The Resume Generator App is a user-friendly tool that simplifies the resume creation process. It organizes key information into sections such as Education, Skills, Experience, Projects, Achievements, and Other Activities, allowing users to input details seamlessly. This automated approach ensures a well-structured and visually appealing resume, covering academic achievements, professional skills, work experiences, projects, achievements, and extracurricular activities.
Resume Generator App Using Python
Below, are the implementations of the Resume Generator App Using Python step-by-step.
Create Virtual Environment
First, create the virtual environment using the below commands
python -m venv env
.\env\Scripts\activate.ps1
File Structure

Implement the Logic
In this example, below code facilitates the creation of a resume by interacting with the user, gathering input, generating Markdown content, and converting it into a PDF file using an external API. The script defines a function convert_markdown_to_pdf
that takes Markdown content, a file name (defaulted to "Resume.pdf"), and an engine (defaulted to "weasyprint") as parameters. This function includes CSS styles, specifies an API endpoint for converting Markdown to PDF, and sends a POST request with the Markdown content and CSS to the API. The response is then processed: if successful, the generated PDF is saved; otherwise, an error message is displayed.
Python3
import requests
def convert_markdown_to_pdf(markdown_content, Resume_file="Resume.pdf", engine="weasyprint"):
# Define CSS styles for the PDF
cssfile = """
body{
padding: 0px;
margin:0px;
}
h1 {
color: MidnightBlue;
margin:0px;
padding:0px;
}
h3{
color: MidnightBlue;
padding-bottom:0px;
margin-bottom:0px;
}
li{
margin-top:5px;
}
"""
# API endpoint for converting Markdown to PDF
url = "https://md-to-pdf.fly.dev"
# Data to be sent in the POST request
data = {
'markdown': markdown_content,
'css': cssfile,
'engine': engine
}
# Send a POST request to the API
response = requests.post(url, data=data)
# Check if the response is successful (status code 200)
if response.status_code == 200:
# Save the generated PDF to a file
with open(Resume_file, 'wb') as f:
f.write(response.content)
print(f"PDF saved to {Resume_file}")
else:
print(f"Error {response.status_code}: {response.text}")
class Resume:
def __init__(self, name, email, mobile, education, skills, experience, projects,
achievements, activities):
# Initialize the Resume object with user information
self.name = name
self.email = email
self.mobile = mobile
self.education = education
self.skills = skills
self.experience = experience
self.projects = projects
self.achievements = achievements
self.activities = activities
def generate_markdown(self):
# Generate Markdown content for the resume
markdown_text = f"<h1 style=\"text-align:center;\">{self.name
}</h1>\n<p style=\"text-align:center;\">Email: {self.email
} | Mobile: {self.mobile} </p>\n\n"
markdown_text += "### Education\n\n---\n\n"
# Add education details to the Markdown content
for edu in self.education:
markdown_text += f"- {edu['level']}: {edu['institution']} | {edu['field']
} | Score: {edu['score']} | {edu['duration']}." + "\n\n"
markdown_text += "### Skills\n\n---\n\n"
# Add skills to the Markdown content
markdown_text += f"{self.skills} \n\n"
markdown_text += "### Experience\n\n---\n\n"
# Add work experience details to the Markdown content
for exp in self.experience:
markdown_text += f"- **{exp['job_role']}({exp['company_name']})**: {exp['description']}\n"
markdown_text += "\n### Projects\n\n---\n\n"
# Add project details to the Markdown content
for proj in self.projects:
markdown_text += f"- **{proj['name']}**: {proj['description']}\n"
markdown_text += "\n### Achievements\n\n---\n\n"
# Add achievement details to the Markdown content
for ach in self.achievements:
markdown_text += f"- {ach}\n"
markdown_text += "\n### Other Activities\n\n---\n\n"
# Add other activities to the Markdown content
markdown_text += self.activities + '\n'
return markdown_text
def get_user_input():
# Gather user input for creating the resume
name = input("Enter your name: ")
email = input("Enter your email: ")
mobile = input("Enter your mobile number: ")
print("\nEducation:")
education = []
while True:
# Prompt user to add education details
edu_input = input(
"Do you want to add education details? (yes/no): ").lower()
if edu_input != 'yes':
break
level = input(
"Enter education level (e.g., Graduation(UG/PG), High School): ")
institution = input(f"Enter the name of the {level} institution: ")
field = input(f"Enter the field of study at {institution}: ")
duration = input(f"Enter passing year of {level} at {institution}: ")
score = input(
f"Enter your score (e.g., GPA/Percentage) of {level} at {institution}: ")
education.append({"level": level,"institution": institution,
"field": field,"duration": duration,"score": score,})
skills = input("\nEnter your skills (comma-separated): ")
print("\nExperience:")
experience = []
while True:
# Prompt user to add work experience details
job_role = input("Enter your job role (or type 'done' to finish): ")
if job_role.lower() == 'done':
break
exp_company_name = input("Enter the company name: ")
exp_description = input(f"Enter the description for '{job_role}': ")
experience.append(
{"job_role": job_role, "company_name": exp_company_name,
"description": exp_description})
print("\nProjects:")
projects = []
while True:
# Prompt user to add project details
proj_heading = input(
"Enter the project Title (or type 'done' to finish): ")
if proj_heading.lower() == 'done':
break
proj_description = input(
f"Enter the description for '{proj_heading}': ")
projects.append(
{"name": proj_heading, "description": proj_description})
print("\nAchievements:")
achievements = []
while True:
# Prompt user to add achievement details
ach_input = input(
"Enter an achievement detail (or type 'done' to finish): ")
if ach_input.lower() == 'done':
break
achievements.append(ach_input)
print("\nOther Activities like hobbies:")
# Prompt user to add other activities or hobbies
activities = input("Enter your other activities: ")
return Resume(name, email, mobile, education, skills,
experience, projects, achievements, activities)
if __name__ == "__main__":
# Main execution block
user_resume = get_user_input()
markdown_text = user_resume.generate_markdown()
convert_markdown_to_pdf(markdown_text)
Run the Server
run the server using below commands
python script_name.py
Output:

Conclusion
In Conclusion, the provided Python script provides an efficient and automated method for crafting polished resumes. Through the utilization of user input and Markdown capabilities, the script generates a visually pleasing and well-organized resume encompassing crucial sections like education, skills, experience, projects, achievements, and other activities. The inclusion of CSS styling further elevates the aesthetics of the final PDF, ensuring a professional and cohesive presentation.
Similar Reads
Story Generator App Using Python
In the realm of programming and natural language processing, there's an opportunity to create engaging and creative applications that spark the imagination. One such project is the development of a Story Generator App using Python. In this article, we'll embark on a journey to understand how to buil
4 min read
Resetting Password Using Python
In this discussion, we explore creating a robust Python password reset tool using the regex library. We define a specific pattern for the password format, enhancing security. The tool incorporates parameters ensuring passwords meet criteria like uppercase/lowercase letters, digits, and special chara
3 min read
File Sharing App using Python
Computer Networks is an important topic and to understand the concepts, practical application of the concepts is needed. In this particular article, we will see how to make a simple file-sharing app using Python. An HTTP Web Server is software that understands URLs (web address) and HTTP (the protoc
4 min read
Python | Build a REST API using Flask
Prerequisite: Introduction to Rest API REST stands for REpresentational State Transfer and is an architectural style used in modern web development. It defines a set or rules/constraints for a web application to send and receive data. In this article, we will build a REST API in Python using the Fla
3 min read
Create a stopwatch using python
This article focus on creating a stopwatch using Tkinter in python . Tkinter : Tkinter is the standard GUI library for Python. Python when combined with Tkinter provides a fast and easy way to create GUI applications. Tkinter provides a powerful object-oriented interface to the Tk GUI toolkit. It's
3 min read
Project - How to build a Resume Parser using Python
A Resume Parser is a valuable tool for HR professionals and organizations looking to streamline their recruitment process. It automates the extraction of key information from resumes, making it easier to manage and analyze candidate data. These are helpful in shortlisting candidates based on certain
3 min read
Online Resume Builder using Django
In this article, we will create an online resume builder web app. We will start by filling out a form with our personal information. Once the form is completed, we can generate a resume. Additionally, we will ensure the PDF generation quality to make the final result closely resemble the original re
9 min read
Image Viewer App in Python using Tkinter
Prerequisites: Python GUI â tkinter, Python: Pillow Have you ever wondered to make a Image viewer with the help of Python? Here is a solution to making the Image viewer with the help of Python. We can do this with the help of Tkinter and pillow. We will discuss the module needed and code below. Mod
5 min read
Weather app using Django | Python
In this tutorial, we will learn how to create a Weather app that uses Django as backend. Django provides a Python Web framework based web framework that allows rapid development and clean, pragmatic design. Basic Setup - Change directory to weather â cd weather Start the server - python manage.py ru
2 min read
How to Make API Call Using Python
APIs (Application Programming Interfaces) are an essential part of modern software development, allowing different applications to communicate and share data. Python provides a popular library i.e. requests library that simplifies the process of calling API in Python. In this article, we will see ho
3 min read