Duck
AI Tools5 min read

Using AI to Make Money: A Practical Blueprint for Solo Operators

Samet Turan— Editor··5 min read

Learn how to turn AI prompts into a repeatable income stream with real tools, sample prompts, and debugging tips.

Last month I stared at a spreadsheet of 200 cold leads and realized I could not write personalized lines for each one before lunch. I needed a way to turn those names and companies into decent first‑email copy without hiring a Writer.com or spending all night at the keyboard. After a few failed attempts with generic AI outputs, I built a simple automation that pulls data from Google Sheets, runs it through a tuned OpenAI prompt, and writes the result back to the sheet — all in under five minutes per batch.

The workflow I built

I chose **Make** (formerly Integromat) as the glue because it lets me watch a sheet for new rows, call an API, and write back without writing code. The scenario starts with a Google Sheet that has three columns: Name, Company, and Email Draft (empty). When a new row appears, Make triggers, reads the Name and Company, sends them to OpenAI with a prompt, and puts the generated line into the Email Draft column.

First mention of the tools: **Make**, **OpenAI**, **Google Sheets**. The free tier of Make gives you 1 000 operations per month, which is enough for a few test runs but not for real outreach. I moved to the $9/mo Core plan that gives 10 000 operations — plenty for a few hundred leads each week. I think $9/mo is fair for the automation I run.

My concrete love: I love how Make’s visual scenario shows each step’s input and output in real time, making it easy to spot where a prompt went wrong. My concrete gripe: I hate how OpenAI’s rate limits return a 429 error if you burst more than five requests per second, which forces you to add a delay module and slows the whole batch.

Aside from the rate limit, the workflow is stable. (Which, yes, is annoying when you’re in a hurry.)

Direct opinion that could be wrong: I think spending $200/mo on an AI agent framework is overkill for most solo ops; a simple Make.com+ OpenAI combo does the same job for a fraction of the cost.

Why does the AI output sound generic after a few dozen runs?

This is a common reader question. The problem usually isn’t the model; it’s the prompt getting stale because you reuse the same variables without adding fresh context. When the prompt only sees “{{Name}} works at {{Company}}” it starts to fill in the same filler phrases.

To fix it, I add a rotating set of angle brackets that force the model to consider different aspects: recent news, a product launch, or a mutual connection. The prompt becomes a short template with placeholders for those dynamic bits.

A real prompt that works for cold email lines

Below is the exact prompt I feed to OpenAI. It lives in a Make text module and is combined with the sheet data using string interpolation.

You are a concise sales copywriter. Write a one‑sentence cold email opener for {{Name}} who works at {{Company}}. Reference a recent product launch or news item about {{Company}} if you can find one; otherwise mention a common industry challenge. Keep the tone friendly and under 20 words.

I store the prompt as a constant in Make, then map the Name and Company columns into the placeholders. The result is a single line that I copy into the Email Draft column.

What most guides get wrong

Many tutorials tell you to just drop a generic prompt like “Write a sales email” into an AI and expect magic. They skip the step of grounding the output in real data, which leads to bland copy that prospects ignore. They also ignore rate limits, suggesting you can fire off hundreds of requests in a loop without any delay.

What works better is to treat the AI as a junior copywriter: give it clear constraints, recent facts, and a tight word limit. Then automate the delivery of those facts from a source you control, like a sheet or a CRM.

Another mistake is over‑relying on the free tier of automation platforms. You’ll hit the operation cap quickly and wonder why the workflow stops mid‑batch. Checking your plan’s limits before you start saves a lot of headache.

How to debug when this breaks

When the Email Draft column stays empty, I first check the Make scenario history. The error tab usually shows either a missing variable or an HTTP status from OpenAI.

If I see a 400 error, I look at the prompt text that was sent — often a stray line break or an unescaped quote broke the JSON payload. I fix it by wrapping the prompt in Make’s “Text parser” module to escape special characters.

If I see a 429, I add a “Sleep” module set to 1200 milliseconds between each OpenAI call. That throttles the flow just enough to stay under the limit while still finishing a batch of 200 rows in about four minutes.

If the output looks garbled, I test the prompt directly in the OpenAI playground with the same variables to see if the model is the issue or the data mapping.

One‑sentence paragraph: Never trust a workflow that hasn’t been run with real data at least once.

After you have the scenario running smoothly, you can scale by adding a Google Sheets filter to only process leads that haven’t been emailed yet, or by connecting the sheet to a CRM via Make’s native modules.

Adjacent reading: deeper coverage of AI agent platforms.

If you’d rather skip the build and deploy a working version in an afternoon, we’ve packaged this workflow as a blueprint at deepusecase.com/vault.

— The Colophon

One AI tool. Tested. Reviewed.
In your inbox every Sunday.

~3 minute read. Real outcomes from operators, not marketers.

Free. One email per Sunday. Unsubscribe in one click.