karan.dev
All projects
AI/ML

AI-Powered Cold Email Generator

June 2026

AI outreach tool that scrapes any job URL, extracts structured requirements with LLaMA 3.3-70B, and generates a personalized cold email backed by matched portfolio projects.

PythonStreamlitLangChainGroq APILLaMA 3.3-70BChromaDBBeautifulSoup4Pandas

LLaMA 3.3

70B params (Groq)

20+

portfolio matches

RAG

two-step pipeline

Problem

Cold outreach from job postings takes a template every time: copy the JD, find a matching portfolio project, write the email. Doing this manually across dozens of postings a week doesn't scale.

Approach

  1. 1

    Built a scraping pipeline with LangChain's WebBaseLoader + regex cleaning that parses arbitrary job posting URLs.

  2. 2

    Ran the cleaned JD through LLaMA 3.3-70B via Groq's API with a structured extraction prompt (role, skills, experience). Groq's throughput makes 70B-parameter inference feel snappy at request time.

  3. 3

    Embedded a portfolio of 20+ (tech-stack, project-link) pairs into ChromaDB. When a JD comes in, semantic similarity picks the most relevant projects to reference.

  4. 4

    Chained two LangChain PromptTemplates: (1) extract structured requirements, (2) generate an email that cites the matched projects — a two-step RAG pipeline.

  5. 5

    Wrapped it all in a Streamlit UI so I paste a URL, click one button, and get the email.

Outcomes

  • One-click cold-email generation from any job posting URL — deployed live on Streamlit Cloud.
  • Every generated email references real portfolio work matched to the JD's requirements, not generic filler.
  • Cut outreach turnaround from ~10 minutes per email to under 30 seconds.

Learnings

Groq's inference speed changes what's feasible at LLM request time — a 70B model is fine to call inline. Two-step chains (extract → generate) hallucinate less than one-shot prompts because the second call operates on structured input. ChromaDB is the right choice when you don't want to run a vector-DB service.