42 – Real-World Python Projects – Automated Resume Builder

This project automatically generates a professional resume from user input — perfect for job seekers, HR systems, and automation workflows.

You’ll build a tool where users enter:

  • Name
  • Contact info
  • Skills
  • Education
  • Work experience
  • Projects
  • Certifications

And Python automatically creates:

✔ A clean DOCX resume

✔ A professional PDF resume

✔ Multiple templates

✔ Auto-formatting

✔ Auto-export


🧠 What This Project Teaches You

✔ Python automation
✔ Document generation with python-docx
✔ PDF conversion (optional)
✔ Creating templates
✔ Dynamic placeholders
✔ File management
✔ User input forms (CLI or Streamlit UI)


📁 Folder Structure

AutoResumeBuilder/
│── resume_builder.py
│── template.docx
│── requirements.txt
│── output_resume.docx

📦 requirements.txt

python-docx
reportlab
streamlit

Install:

pip install -r requirements.txt

🧩 1. Create a Resume Template (template.docx)

Use placeholders like:

{{NAME}}
{{EMAIL}}
{{PHONE}}
{{SKILLS}}
{{EDUCATION}}
{{EXPERIENCE}}
{{PROJECTS}}

🧩 2. Python Code – resume_builder.py

from docx import Document

def build_resume(data, template_path="template.docx", output_path="output_resume.docx"):
    doc = Document(template_path)

    for p in doc.paragraphs:
        for key, value in data.items():
            placeholder = f"{{{{{key}}}}}"  # {{NAME}}
            if placeholder in p.text:
                p.text = p.text.replace(placeholder, value)

    doc.save(output_path)
    return output_path


if __name__ == "__main__":
    user_data = {
        "NAME": input("Enter your name: "),
        "EMAIL": input("Enter your email: "),
        "PHONE": input("Enter phone number: "),
        "SKILLS": input("List your skills: "),
        "EDUCATION": input("Enter your education: "),
        "EXPERIENCE": input("Work experience: "),
        "PROJECTS": input("Projects: "),
    }

    file_path = build_resume(user_data)
    print(f"\nResume created successfully! Saved as: {file_path}")

⭐ Bonus: Streamlit Web App

import streamlit as st
from resume_builder import build_resume

st.title("Automated Resume Builder")

name = st.text_input("Full Name")
email = st.text_input("Email")
phone = st.text_input("Phone Number")
skills = st.text_area("Skills")
education = st.text_area("Education")
experience = st.text_area("Work Experience")
projects = st.text_area("Projects")

if st.button("Generate Resume"):
    data = {
        "NAME": name,
        "EMAIL": email,
        "PHONE": phone,
        "SKILLS": skills,
        "EDUCATION": education,
        "EXPERIENCE": experience,
        "PROJECTS": projects
    }
    output = build_resume(data)
    st.success("Resume Generated Successfully!")
    st.download_button("Download Resume", open(output, "rb"), file_name="resume.docx")

Run:

streamlit run resume_app.py


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *