Skip to content

Case Study 01 · Career Services / Newsletter Media

Weekly AI Job Newsletter Automation

From a full day of manual curation to a newsletter that writes itself.

Client

Jobs I U

Industry

Career Services / Newsletter Media

Stack

n8n, OpenAI, Google Sheets, Gmail API, Webhooks

90%

Manual work reduced

~6 hrs → ~30 min

Weekly production time

Fully automated

Subscriber management

The business challenge

Every week, the Jobs I U team manually browsed job sources, copy-pasted listings into a spreadsheet, filtered out anything irrelevant or duplicate, wrote summaries by hand, built the newsletter in their email tool, and processed every unsubscribe request that came in by reply email.

The manual process wasn't just slow — it didn't scale. Every week the team spent producing the newsletter was a week not spent on anything else in the business, and as the subscriber list grew, so did the volume of unsubscribe and preference-change requests someone had to handle by hand. The team needed the same editorial quality their subscribers expected, at a fraction of the time cost, without hiring anyone new.

Objectives

  • Automate job collection from the website subscription funnel through to a clean, deduplicated dataset
  • Use AI to filter and summarize listings the way an editor would, not just repost raw postings
  • Generate a ready-to-send newsletter automatically from that data every week
  • Handle subscriber management, including unsubscribes, with zero manual intervention

The solution

A full n8n pipeline now runs the entire process end-to-end: new subscribers from the website land directly in a managed Google Sheet, an AI analysis step reviews and filters incoming job data on a schedule, a second AI pass drafts the newsletter copy in Jobs I U's established voice, and the finished issue is sent via the Gmail API to the current subscriber list — with unsubscribe requests processed automatically.

System architecture

Two data flows converge in n8n: a subscriber pipeline (signup → Sheet → suppression list) and a content pipeline (job sources → AI filtering → AI drafting → send). Both share the same subscriber Sheet as the single source of truth.

Website Signup
Google Sheets (Subscribers)
Job Source Feeds
AI Filter & Tag
AI Newsletter Draft
Gmail API Send
Unsubscribe Listener

Workflow breakdown

Step 01

Subscription Capture

The website sign-up form pushes new subscribers directly into a managed Google Sheet via webhook, with duplicate-email checking on entry.

Step 02

Job Data Collection

A scheduled workflow pulls fresh job listings from configured sources into a staging sheet.

Step 03

AI Filtering & Analysis

An OpenAI-powered step reviews each listing against the newsletter's editorial criteria, discards irrelevant or duplicate postings, and tags the rest by category.

Step 04

Newsletter Generation

A second AI step drafts the full newsletter — headline, summaries, and formatting — in Jobs I U's established tone.

Step 05

Delivery

The finished issue is sent to the full active subscriber list through the Gmail API on a fixed weekly schedule.

Step 06

Unsubscribe Handling

Unsubscribe requests are detected automatically and the subscriber is removed from the Sheet before the next send — no manual list management.

Technical implementation

  • n8n orchestrates the entire pipeline on a scheduled trigger, with a separate webhook-triggered branch for real-time subscription and unsubscribe events.
  • Google Sheets serves as the lightweight subscriber database, chosen deliberately so the Jobs I U team can view and manually adjust the list without needing separate software.
  • OpenAI's API is called twice per run — once for filtering/classification against structured criteria, and once for long-form newsletter drafting — using two distinct prompt configurations tuned for each task.
  • The Gmail API handles delivery so newsletters send from Jobs I U's own domain and inbox, preserving deliverability and sender reputation.

AI prompt strategy

The filtering prompt is deliberately narrow and rule-based — given explicit inclusion/exclusion criteria and asked to output structured yes/no decisions with a short reason, keeping false positives low and the AI's decisions auditable. The drafting prompt is the opposite: given the filtered listings plus past issues as style references, and asked to write in Jobs I U's established voice rather than a generic AI tone. Splitting these into two prompts — one strict, one creative — produced noticeably better results than one combined call.

Integrations used

n8nOpenAI APIGoogle Sheets APIGmail APIWebsite Webhook

Results

What used to consume most of a working day now runs unattended on a schedule, with the team spending closer to 30 minutes reviewing the draft before it sends rather than building it from scratch. Subscriber growth stopped being an operational burden — the system handles list management at any scale the same way it handles it today.

Lessons learned

  • Splitting the AI's job into a strict filtering pass and a separate creative drafting pass produced far more reliable output than one large, general-purpose prompt.
  • Using Google Sheets as the subscriber store — rather than a 'proper' database — was the right call for a non-technical team that wanted visibility without complexity.
  • Building unsubscribe handling in from day one, rather than as an afterthought, avoided a whole category of support headaches as the list grew.

Want a system like this for your business?

Tell me about your process and I'll get back to you within 24 hours with next steps.