DEV Community

Brad
Brad

Posted on • Edited on

Stop Doing These 5 Business Tasks Manually — Python Can Do Them in Seconds

The Real Cost of Manual Work

If you spend 2 hours a day on repetitive business tasks — data entry, report creation, invoice tracking, email follow-ups — that's 500+ hours per year. At even $30/hour value of your time, that's $15,000/year in lost productivity.

Python can automate most of this. Here are 5 tasks that businesses run manually that they absolutely shouldn't.


1. Generating Weekly Reports from Spreadsheets

The manual version: Open 3-5 spreadsheets, copy-paste numbers into a template, format it, email it to the team.

Time: 45-90 minutes/week

Python version:

import pandas as pd
from datetime import datetime

# Load your data files
sales = pd.read_excel("sales_data.xlsx")
expenses = pd.read_csv("expenses.csv")

# Calculate KPIs automatically
revenue = sales["amount"].sum()
costs = expenses["total"].sum()
profit = revenue - costs

# Generate report
report = f"""
WEEKLY BUSINESS REPORT — {datetime.now().strftime("%B %d, %Y")}

Revenue: ${revenue:,.2f}
Expenses: ${costs:,.2f}
Net Profit: ${profit:,.2f}
Profit Margin: {(profit/revenue)*100:.1f}%
"""

# Email it automatically
import smtplib
# ... send to team automatically
Enter fullscreen mode Exit fullscreen mode

Time saved: 40-80 minutes/week = ~50 hours/year


2. Scraping Competitor Prices

The manual version: Visit 5-10 competitor websites, write down prices, update your own pricing sheet.

Time: 1-2 hours/week

Python version:

import requests
from bs4 import BeautifulSoup
import pandas as pd

def get_competitor_price(url, price_selector):
    response = requests.get(url, headers={"User-Agent": "Mozilla/5.0"})
    soup = BeautifulSoup(response.content, "html.parser")
    price_elem = soup.select_one(price_selector)
    return price_elem.text.strip() if price_elem else "Not found"

# Run this every Monday morning automatically
competitors = {
    "CompetitorA": ("https://competitor-a.com/product", ".price"),
    "CompetitorB": ("https://competitor-b.com/item", "#product-price"),
}

results = {}
for name, (url, selector) in competitors.items():
    results[name] = get_competitor_price(url, selector)

# Save to spreadsheet
df = pd.DataFrame.from_dict(results, orient="index", columns=["Price"])
df.to_excel("competitor_prices.xlsx")
print("Competitor price check complete!")
Enter fullscreen mode Exit fullscreen mode

Time saved: ~75 hours/year


3. Invoice Generation and Sending

The manual version: Open Word template, fill in client details, convert to PDF, email it. Do this for every client, every month.

Time: 10-20 minutes per invoice

Python version:

import pandas as pd
from reportlab.lib.pagesizes import letter
from reportlab.pdfgen import canvas
import smtplib

def generate_invoice(client_name, amount, services, invoice_number):
    filename = f"invoice_{invoice_number}.pdf"

    # Create PDF
    c = canvas.Canvas(filename, pagesize=letter)
    c.drawString(100, 750, f"INVOICE #{invoice_number}")
    c.drawString(100, 700, f"Bill To: {client_name}")
    c.drawString(100, 650, f"Amount Due: ${amount:,.2f}")
    # Add line items...
    c.save()

    return filename

# Load client list from spreadsheet
clients = pd.read_excel("clients.xlsx")

for _, client in clients.iterrows():
    pdf = generate_invoice(
        client["name"],
        client["monthly_fee"],
        client["services"],
        client["invoice_number"]
    )
    # Auto-email invoice
    # email_invoice(client["email"], pdf)
    print(f"Invoice sent to {client[name]}")
Enter fullscreen mode Exit fullscreen mode

Time saved: 2-5 hours/month for a 20-client business = 24-60 hours/year


4. Social Media Scheduling

The manual version: Log into each platform, write posts, schedule them manually.

Time: 2-4 hours/week

Python version:

import schedule
import time
import requests
from datetime import datetime

POSTS = [
    {"text": "Monday motivation post here", "day": "monday", "time": "09:00"},
    {"text": "Wednesday tip of the week", "day": "wednesday", "time": "12:00"},
    {"text": "Friday wrap-up and weekend offer", "day": "friday", "time": "16:00"},
]

def post_to_twitter(text, api_key, api_secret):
    # Twitter API v2
    pass

def schedule_posts():
    for post in POSTS:
        getattr(schedule.every(), post["day"]).at(post["time"]).do(
            post_to_twitter, post["text"], API_KEY, API_SECRET
        )

# Run this script on your server and it posts automatically
while True:
    schedule.run_pending()
    time.sleep(60)
Enter fullscreen mode Exit fullscreen mode

Time saved: ~100-200 hours/year


5. Email Follow-Up Sequences

The manual version: Remember to follow up with prospects, check notes, write personalized emails.

Time: 30-60 minutes/day

Python version:

import smtplib
import sqlite3
from datetime import datetime, timedelta

# Track your prospects in a simple database
conn = sqlite3.connect("crm.db")

def send_followup(email, name, days_since_contact):
    templates = {
        3: f"Hi {name}, just checking in...",
        7: f"Hi {name}, I wanted to share something...",
        14: f"Hi {name}, last follow-up..."
    }

    if days_since_contact in templates:
        # Send email automatically
        message = templates[days_since_contact]
        # smtp.sendmail(...)
        print(f"Follow-up sent to {name}")

# Run daily to check who needs a follow-up
prospects = conn.execute("SELECT * FROM prospects WHERE status = active").fetchall()
for prospect in prospects:
    days = (datetime.now() - datetime.fromisoformat(prospect["last_contact"])).days
    send_followup(prospect["email"], prospect["name"], days)
Enter fullscreen mode Exit fullscreen mode

Time saved: 100+ hours/year, improved conversion rates


The ROI is Obvious

Task Manual Time Python Time Annual Savings
Weekly reports 60 min/week 2 min 48 hours
Price monitoring 90 min/week 5 min 70 hours
Invoicing 20 min each 30 sec 30+ hours
Social media 3 hrs/week 0 min 150 hours
Email follow-ups 45 min/day 0 min 180+ hours

Total: 478+ hours saved per year = ~$14,000+ value for a $30/hour operator


Don't Want to Code? Get the Pre-Built Toolkit

If you're not a developer but want these automations working for your business, I've packaged the most useful scripts into a ready-to-configure toolkit.

Python Business Automation Toolkit — $29

Includes:

  • Report generation scripts (Excel, PDF, email)
  • Price monitoring templates
  • Invoice automation
  • CRM follow-up system
  • Setup instructions for non-programmers

Or if you need custom automation built for your specific workflow, reach out at lukass.brad@gmail.com — I do fixed-price Python projects starting at $50.


What manual tasks are eating your time? Comment below — I might write the automation script in a follow-up post.


🔧 **Found this useful?* I build custom HN lead reports (20–50 companies with verified emails, tech stacks, 24h delivery) → Order done-for-you lead report — $75 | Got a workflow to automate? → 1-Hour Python Automation Audit — $39*

Top comments (0)