DEV Community

Cover image for ColdCraft Studio: Personalized Cold Emails, Written Locally for $0
Deependra Gurjar
Deependra Gurjar

Posted on

ColdCraft Studio: Personalized Cold Emails, Written Locally for $0

Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle Submission 💸

This is a submission for the Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle*

What I Built

Everyone has received the cold email that opens with "I hope this email finds you well." It goes straight to the trash.
ColdCraft Studio fixes that. Give it a company's website URL and a short description of what you offer, and it writes a cold email that actually references what the company does. No template, no 15 minutes of research per lead, and no cloud AI bill.

Here is what happens when you click Generate:

It scrapes the company's site for taglines, current initiatives, and mission statements.
A local open-weight AI model reads that content.
It drafts a short email built around specific details from the page.
Everything runs on your own laptop.

Who is this for?

Freelancers and indie consultants pitching web development, design, content, or technical services to businesses and colleges, without spending 20 minutes researching every lead.
Sales reps and lead-gen agencies who need hundreds of tailored emails a week without paying $50 a month in token bills.
The Real Problem
Cold email only works when it feels personal, but right now there are two bad options:

What happens

Cloud AI looks like the answer, but running 1,000 detailed web pages through GPT-4o costs roughly $30 to $50 a month. You are also uploading private pitches and prospect lists to someone else's servers.
ColdCraft does the research and drafting in under 5 seconds per lead at $0.00 marginal cost.

Key features

Realistic email client preview. The output does not look like a chatbot. It renders inside a simulated desktop email window, with a proper salutation, body paragraphs, and sign-off.
One-click dispatch. One button opens your default mail app (Outlook, Apple Mail, and others) with the recipient, subject, and body already filled in, using a mailto: link.
CSV export. Save leads, subject lines, and personalized bodies to a spreadsheet for your pipeline.
Code

GitHub logo DeependraGurjar / coldcraft-studio

A local-first, zero-cost B2B cold outreach engine powered by Ollama and open-weight models.

ColdCraft Studio

A local-first B2B cold outreach tool. It reads a prospect's website, finds a relevant talking point, and drafts a personalized cold email using open-weight models running on your own machine through Ollama. No API keys, no per-email cost, and no data leaves your computer.

Table of Contents

  1. Overview
  2. Features
  3. How It Works
  4. Requirements
  5. Installation
  6. Usage
  7. Why Local Inference
  8. Contributing
  9. License

Overview

Effective cold outreach is slow and expensive to do well:

  • Mass templates read as robotic, often land in spam, and convert poorly.
  • Manual prospect research takes 10 to 15 minutes per lead.
  • Cloud AI APIs speed up drafting but add per-request costs and send your pitch and lead data to third-party servers.

ColdCraft Studio automates the research and drafting steps locally. Give it a prospect URL and a short description of your offer, and it produces a ready-to-review email, typically within a few seconds on modern hardware…

How I Built It

The stack is small and local-first. After the page is scraped, everything runs offline.

URL → Scraper → Studio → Local AI → Email

Prospect URL: You paste in the company's website.
BeautifulSoup scraper: Strips menus, footers, cookie banners, and scripts, keeping only headings and paragraphs.
Streamlit studio: You add your offer, goal, and tone.
Ollama + qwen2.5:3b: Generates the email as strict JSON.
Output: Email preview, mailto: link, and CSV export.

Local AI engine. I used qwen2.5:3b through Ollama, with an option to switch to llama3.2:1b on lighter machines. Qwen 2.5 is the star of the project. Even at 3 billion parameters, its instruction following and JSON formatting are rock solid.

Smart web scraping. The scraper is written in Python with BeautifulSoup. It removes navigation bars, footers, cookie banners, and scripts, and keeps only the high-signal headings and paragraphs. That gives the model something worth writing about.

Deterministic output. I forced Ollama's format="json" and paired it with a strict prompt framework:

Icebreaker, then Concrete Problem, then Value Prop, then Soft CTA

This stops the model from hallucinating or producing one long, unreadable block of text. Every email follows the same proven shape.

Frontend. The interface is built with Streamlit and custom CSS, so it feels like a focused desktop studio instead of a standard AI demo.

Why Open Innovation Matters

This project is a good example of why open-weight models matter for indie developers and micro-businesses.

Unit economics that work. Say you charge a freelancer $15 a month for an outreach tool. If cloud API bills cost you $12 a month per active user, your margin is gone. With qwen2.5:3b running locally, the marginal server cost is $0.00.

Real privacy. Pitches often involve unreleased projects, internal proposals, and private contact lists. With an open model, none of that leaves the user's hard drive.

No moving targets. No rate limits, no surprise pricing changes, and no provider deprecating the model your prompts depend on.

My First User

I showed an early build to a friend who freelances as a web developer. They regularly pitch website modernization to local educational departments and businesses.

They entered their service pitch, plugged in a regional college's website, and generated an email. Their reaction:

"Usually AI writes stuff like 'I hope this email finds you in high spirits.' This actually noticed the recent curriculum update on their homepage and connected it to my web services. It reads like an email I spent 10 minutes writing myself."

They also told me what they want next: a batch upload feature, where they drop in a list of 50 links at night and wake up to 50 drafts.

That is now at the top of my roadmap.

Try It Yourself

bash
ollama pull qwen2.5:3b
git clone https://github.com/DeependraGurjar/coldcraft-studio.git
cd coldcraft-studio
pip install -r requirements.txt
python -m streamlit run app.py

Feedback, issues, and pull requests are welcome. If you have ideas for making local outreach tools better, I would love to hear them in the comments.

Top comments (0)