7 AI Automations That Made Me Money Before I Finished My Coffee
Real Python scripts I built to automate work, scale output, and make actual cash
Photo by BoliviaInteligente on Unsplash
At 20, I thought I had to hustle harder. So I was manually editing freelance proposals, organizing invoices, rewriting cover letters, and chasing data from dozens of places. Every task felt like a never-ending to-do list that ate up creative energy before I even started my real work.
Then, in one long weekend of caffeine, I flipped the script. I stopped looking at AI tools like magic and started wiring them into real workflows with Python. Some of these scripts took me under 20 minutes to build — and they’ve been running quietly in the background, saving me hours and bringing in consistent value.
Here are 7 real automations I built that made me money before I even finished my morning coffee. You can steal them, tweak them, or let them inspire your own. Let’s get to it.
1. Auto-Personalized Cold Emails That Landed Clients
Problem: Writing custom cold emails is time-consuming. Generic ones don’t convert. Solution: I built a Python tool that automatically personalized cold outreach using a mix of web scraping, GPT-4o, and a templated pitch.
How It Works:
- Scrape basic info from a LinkedIn profile or business site
- Pass that data into a GPT prompt that rewrites a cold pitch
- Send it via SMTP
import requests
from bs4 import BeautifulSoup
import openai
import smtplib
from email.mime.text import MIMEText
openai.api_key = "your_api_key"
def scrape_name(url):
page = requests.get(url)
soup = BeautifulSoup(page.content, "html.parser")
name_tag = soup.find("title")
return name_tag.text.strip() if name_tag else "there"
def generate_email(name):
prompt = f"Write a short, friendly cold email offering web dev services to {name}. Make it casual but professional."
response = openai.ChatCompletion.create(
model="gpt-4o",
messages=[{"role": "user", "content": prompt}]
)
return response.choices[0].message.content
def send_email(body, to_email):
msg = MIMEText(body)
msg["Subject"] = "Quick Question"
msg["From"] = "[email protected]"
msg["To"] = to_email
with smtplib.SMTP("smtp.gmail.com", 587) as server:
server.starttls()
server.login("[email protected]", "your_password")
server.send_message(msg)
# Usage
profile_url = "https://www.linkedin.com/in/sample"
name = scrape_name(profile_url)
email_body = generate_email(name)
send_email(email_body, "[email protected]")
Landed 2 freelance gigs the first week I ran it.
2. AI-Powered Invoice Generator
Problem: I hated manually generating invoices. Solution: I used OpenAI to generate Markdown invoices and pdfkit to export polished PDFs — all triggered from a single CLI command.
import openai
import pdfkit
openai.api_key = "your_api_key"
def generate_invoice(client_name, service, amount):
prompt = f"""Create a professional Markdown invoice for:
Client: {client_name}
Service: {service}
Amount: ${amount}
Include invoice number, date, and payment terms."""
response = openai.ChatCompletion.create(
model="gpt-4o",
messages=[{"role": "user", "content": prompt}]
)
return response.choices[0].message.content
def convert_to_pdf(md_text, filename="invoice.pdf"):
with open("temp.md", "w") as f:
f.write(md_text)
pdfkit.from_file("temp.md", filename)
# Usage
md_invoice = generate_invoice("Acme Corp", "Landing Page Design", 500)
convert_to_pdf(md_invoice)
Sent 10+ invoices this way and got paid faster.
3. Content Repurposing Bot (YouTube → Twitter Thread)
Problem: Great ideas from YouTube videos never made it into my content. Solution: This bot summarizes any tech video and turns it into a Twitter thread draft.
from youtube_transcript_api import YouTubeTranscriptApi
import openai
import re
openai.api_key = "your_api_key"
def get_transcript(youtube_url):
video_id = re.search(r'(?:v=|\/)([0-9A-Za-z_-]{11})', youtube_url).group(1)
transcript = YouTubeTranscriptApi.get_transcript(video_id)
text = "\n".join([line['text'] for line in transcript])
return text
def summarize_to_thread(transcript_text):
prompt = f"""Turn this transcript into a Twitter thread summarizing the key points clearly. Use thread formatting.
Transcript:
{transcript_text}"""
response = openai.ChatCompletion.create(
model="gpt-4o",
messages=[{"role": "user", "content": prompt}]
)
return response.choices[0].message.content
# Usage
url = "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
transcript = get_transcript(url)
thread = summarize_to_thread(transcript)
print(thread)
Drove 3K+ views to my newsletter via Twitter repurposing.
4. Resume Rewriter for Freelance Proposals
Problem: I had to adapt my profile for each new freelance gig. Solution: I built a GPT-based script that rewrites my resume to match each project description.
import openai
openai.api_key = "your_api_key"
def rewrite_resume(md_resume, job_description):
prompt = f"""
Here is my resume in Markdown:
{md_resume}
Here is the job description:
{job_description}
Adapt my resume to align with the job description using relevant keywords and keeping a professional tone. Return the updated version in Markdown.
"""
response = openai.ChatCompletion.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": prompt}],
temperature=0.25
)
return response.choices[0].message.content
Helped me win 5 proposals by tailoring resumes in minutes.
5. Auto-Categorizer for Clients and Leads
Problem: My inbox was a mess of leads, clients, and junk. Solution: I built a script to categorize leads based on their email body content using embeddings and clustering.
from sentence_transformers import SentenceTransformer
from sklearn.cluster import KMeans
import pandas as pd
emails = [
"Hi Areej, I loved your portfolio and would like to hire you.",
"Can you help with a web scraping task?",
"Discount on hosting - buy now!"
]
model = SentenceTransformer("all-MiniLM-L6-v2")
embeddings = model.encode(emails)
kmeans = KMeans(n_clusters=2, random_state=0)
clusters = kmeans.fit_predict(embeddings)
df = pd.DataFrame({"email": emails, "cluster": clusters})
print(df)
Saved hours by auto-labeling incoming leads and following up faster.
6. Auto-Pricing Estimator for New Projects
Problem: I was manually quoting prices and wasting time. Solution: This script estimates a project’s cost and timeline based on its description.
def estimate_price(project_desc):
prompt = f"""You're a freelance developer. Estimate the time (in hours) and price (USD) to complete this project:
{project_desc}
Be concise and realistic."""
response = openai.ChatCompletion.create(
model="gpt-4o",
messages=[{"role": "user", "content": prompt}]
)
return response.choices[0].message.content
# Usage
project = "Build a responsive portfolio website with 5 pages and contact form"
print(estimate_price(project))
Helped close deals faster with instant price estimates.
7. Passive Income Tracker Using Google Sheets + Python
Problem: Tracking affiliate sales manually sucked. Solution: I connected Python with Google Sheets and automated tracking + analytics.
import gspread
from oauth2client.service_account import ServiceAccountCredentials
scope = ["https://spreadsheets.google.com/feeds", "https://www.googleapis.com/auth/drive"]
creds = ServiceAccountCredentials.from_json_keyfile_name("creds.json", scope)
client = gspread.authorize(creds)
sheet = client.open("Income Tracker").sheet1
# Read and update data
data = sheet.get_all_records()
sheet.append_row(["August", "Notion Affiliate", "$120"])
Tracks monthly income streams and gives me clarity at a glance.
Final Thoughts
AI is not about replacing you. It’s about scaling you. These 7 automations aren’t gimmicks — they’re real scripts that saved me time and brought in cash. You don’t need to be an expert to start building like this. You just need to find a problem worth solving.
Pro tip: Always ask: What’s annoying me right now that AI could automate in 20 minutes?
Then automate it. The money will follow.
Read the full article here: https://blog.stackademic.com/7-ai-automations-that-made-me-money-before-i-finished-my-coffee-9413ddef9414