← Back to Projects

Targeted B2B Outreach → Automated Lead Precision System

A custom-built workflow that identifies high-fit companies, enriches contacts, and generates tailored outreach at scale.

This system automates the entire prospecting pipeline—from scraping job listings to sending personalized emails—resulting in significantly higher response rates.

Project Summary

Automated scraping of job listings to detect companies offering employee perks
Filtering logic to detect relevant keywords in job descriptions
Exported lead list enriched with verified HR contacts
Tailored outreach emails automatically generated per company
Fully automated end-to-end workflow using Python, Apollo, and n8n
Messages customized to each company's context
Significant improvement in first-touch reply rates

System Architecture

Icon
Job Listing Scraper
Identify relevant companies
Icon
Keyword Matching
Extract meaningful signals
Icon
Lead Enrichment in Apollo
Append HR contacts
Icon
Automated Personalised Outreach
Generate & send tailored emails

Key Challenges & Solutions

Icon
Broad Targeting Didn't Work
Company-size and industry filters produced low-quality outreach.
Solution:
Scrape job ads to find companies actively promoting employee benefits.
Icon
Generic Messaging Underperformed
Mass emails created little relevance for recipients.
Solution:
Automatically generate tailored messages based on each company's job ad.
Icon
Manual Prospecting Was Slow
Researching companies individually was not scalable.
Solution:
Automate scraping, enrichment, and email generation using Python + n8n + Apollo.

Technical Implementation

1. Scraping Job Posts
# Python script querying Arbeitnow API
import requests
import pandas as pd
import re

KEYWORDS = [
    "urban sports", "wellpass", "qualitrain",
    "gympass", "mental health support", "employee wellbeing",
    "betriebliche gesundheitsförderung", "health budget"
]

API_URL = "https://arbeitnow.com/api/job-board-api"

def count_keywords(text, keywords):
    text = text.lower() if text else ""
    return {kw: len(re.findall(re.escape(kw), text)) for kw in keywords}

# Fetch jobs and filter by keyword matches
resp = requests.get(API_URL)
jobs = resp.json().get("data", [])

# Export matched companies to CSV
df.to_csv("keyword_matches.csv", index=False)
2. Lead Enrichment
# Import CSV into Apollo
# Append verified HR contacts
# Export enriched lead list

apollo.import_csv("keyword_matches.csv")
apollo.enrich_contacts(job_titles=["HR Manager", "People Ops"])
enriched_leads = apollo.export()
3. Personalised Email Generation & Delivery
// n8n workflow: loop through each lead
for (const lead of enrichedLeads) {
  // Send job-ad context to ChatGPT for email drafting
  const email = await chatgpt.generateEmail({
    company: lead.company,
    jobContext: lead.matchedKeywords,
    contactName: lead.hrContact,
  });

  // Push final email to Apollo via API
  await apollo.pushEmail(lead.id, email);
}

// Apollo sends emails automatically on schedule
7%
First-touch response rate (up from 1%)
100%
Automated workflow
0
Manual research required
10x
Higher message relevance

Want to build smarter outreach workflows?

Let's design an automated prospecting system that finds high-fit leads and generates personalized outreach at scale.

Let's connect →