Inspiration

I am a freelance email copywriter working with online coaches and consultants. Every new prospect I reach out to requires the same process: read their website, understand their niche, find the specific gap in their funnel, then write something personal enough that they actually reply. I have done this dozens of times. It takes hours per prospect.

Most freelancers skip the research and send templates. Templates get ignored. I built OutreachOS to automate the research-to-email process so anyone, regardless of their skill, can send outreach that feels hand-crafted.

What It Does

You enter your name and your skill. You paste a prospect's website URL. OutreachOS reads their site, understands their business model, identifies a specific revenue gap in their funnel, and writes a personalized cold email in seconds.

It works for any skill. Email copywriter. UI/UX designer. Video editor. Automation specialist. The email always sounds like it came from that specific person, written for that specific prospect. A visual is generated alongside the email and streamed back interleaved with the text.

How I Built It

The backend is a Python FastAPI server that first scrapes the prospect's website using Jina Reader, then passes the content to Gemini 2.5 Flash via the Google GenAI SDK. Gemini analyzes the site and generates a personalized email identifying the exact conversion gap. A visual is generated via Pollinations.ai and streamed back alongside the text using Server-Sent Events.

The frontend is React 18. Content streams in real-time as Gemini generates it, with text blocks and images rendering interleaved as they arrive.

The backend is containerized with Docker and configured for Google Cloud Run deployment.

Challenges

Getting Gemini's interleaved output to stream correctly to the frontend took significant iteration. The SSE parsing on the React side needed careful buffer handling to avoid dropped chunks. Google Cloud billing restrictions prevented live Cloud Run deployment during the hackathon window, though the full deployment configuration is included in the repository.

What I Learned

Gemini 2.5 Flash is remarkably good at reading a website and extracting business-specific insights. The quality of the output depends heavily on prompt structure. Framing the model as the sender rather than as a copywriter produces dramatically more personalized results.

What's Next

Bulk CSV processing so users can generate emails for a full prospect list in one run. ActiveCampaign integration to push generated emails directly into sequences. A saved history of generated emails per user.


**Built with:**

Gemini 2.5 Flash, Google GenAI SDK, Google Cloud Run, Python, FastAPI, React, Jina Reader API, Pollinations.ai

Built With

  • fastapi
  • gemini-2.5-flash
  • google-cloud-run
  • google-genai-sdk
  • jina-reader-api
  • pollinations.ai
  • python
  • react
Share this project:

Updates

Submission history