What this workflow does

This n8n workflow collects open journalist source requests every morning at 8:00, has OpenAI score each one against your real expertise, saves every request to Google Sheets and sends a drafted pitch to Telegram for the few worth answering. It runs on Journalist Request Finder - HARO Alternative for Digital PR ($0.004 per journalist request delivered) and the template itself is free.

๐Ÿ” How it works

Since HARO closed, journalist requests are spread across SourceBottle, Bluesky and Mastodon. Finding them is the easy half. Deciding which ones you can answer with authority, and writing the reply before the deadline, is what takes the time.

Each morning the workflow collects the open requests for your topics, drops the ones it has already shown you, and asks OpenAI to score each from 0 to 100 on whether you can answer it first hand, naming the angle to lead with. Every request and its score goes to Google Sheets, the rejects included, so you can see what was filtered out.

Requests at or above minScore, at most maxPitches a day, get a short reply drafted in your voice from the credentials you wrote, with no invented statistics. Each draft arrives in Telegram as its own message with a link to the request, ready for you to read, edit and send.

The 13 nodes, in order

  1. Schedule TriggerEvery morning at 8am
  2. Edit FieldsSet your profile
  3. ApifyFind journalist requests
  4. Remove DuplicatesSkip requests already seen
  5. Basic LLM ChainScore it against your expertise
  6. Edit FieldsFormat the row
  7. Google SheetsSave every scored request
  8. FilterKeep the strong matches
  9. OpenAI Chat ModelOpenAI model
  10. LimitCap the daily pitches
  11. Structured Output ParserScore format
  12. Basic LLM ChainDraft the pitch
  13. TelegramSend the draft to Telegram

๐Ÿ“ฅ Get the workflow

Three ways to import it. They all give you the same workflow, published 2026-10-05.

  • n8n.io: open the template and choose "Use for free". It opens in your n8n Cloud or self-hosted instance.
  • Paste: copy the JSON, click an empty n8n canvas and press Ctrl+V (Cmd+V on a Mac).
  • Import from URL: in the workflow menu choose "Import from URL" and paste https://automationbyexperts.com/static/n8n/journalist-request-pitches-openai-telegram.json

โš™๏ธ The settings you edit

Every value you change lives in one node, Set your profile. These are the defaults the template ships with.

SettingDefaultWhat it does
yourNamePASTE_YOUR_NAME_HEREYour name, used to sign the drafts.
yourRoleFounder of a small agency doing technical SEO for B2B SaaS companiesOne line on what you do. The scorer reads it to judge fit.
yourCredentialsNine years in SEO, 40+ SaaS migrations, I run the monthly crawl data for 30 sites and have the before and after numbers for most of them.Specific proof: years, numbers, what you have built. The drafts quote from it.
topicsSaaS, marketing, small businessComma separated topics to search requests for.
sourcessourcebottle, blueskyComma separated request sources: sourcebottle, bluesky, mastodon.
maxRequests100Most requests one run returns, which is also what caps the Apify cost of a run.
minScore55Requests scoring at or above this get a drafted pitch. 55 to 65 is the useful band.
maxPitches5Most drafts sent per day.
googleSheetUrlPASTE_YOUR_GOOGLE_SHEET_URL_HEREThe URL of the empty Google Sheet that receives every scored request.
telegramChatIdPASTE_YOUR_TELEGRAM_CHAT_ID_HEREThe Telegram chat the drafts are sent to.

๐Ÿ“Š What lands in your Google Sheet

One row per new request, with these 11 columns. The header row is written on the first run, so start with an empty sheet.

โœ“Request
โœ“Score
โœ“Why
โœ“Angle
โœ“Source
โœ“Requester
โœ“Requester type
โœ“Deadline
โœ“Days left
โœ“What they need
โœ“Respond URL

See real records from a Journalist Request Finder - HARO Alternative for Digital PR run โ†’

๐Ÿš€ How to set it up

  1. Get the workflow into n8n

    Open it on n8n.io and choose "Use for free", or copy the workflow JSON from this page and paste it onto an empty n8n canvas.

  2. Connect Apify and OpenAI

    Create a free Apify account and connect it in the Find journalist requests node, then connect an OpenAI account in the OpenAI model node.

  3. Connect Google Sheets and Telegram

    Create an empty Google Sheet and paste its URL into googleSheetUrl. Create a bot with @BotFather, connect it, and paste your chat id into telegramChatId.

  4. Write your profile, run once, activate

    Fill in yourName, yourRole and yourCredentials as specifically as you can, run the workflow once by hand and read the drafts. Then activate it.

No Apify account yet? Create one free โ†—

๐Ÿ’ต What it costs to run

$0.004
per journalist request delivered
The template is free. Each run bills Journalist Request Finder - HARO Alternative for Digital PR on your own Apify account. A full run of 100 requests costs $0.40, so running every morning at 8:00 (30 runs a month) comes to at most about $12.00 a month at the current price. Lower maxRequests to lower that ceiling. The Apify free plan returns 25 requests per run. OpenAI tokens are billed on your own OpenAI account.

โ“ Questions about this workflow

What is a good HARO alternative?

Journalist requests now appear on SourceBottle and under the #journorequest hashtag on Bluesky and Mastodon. This workflow collects them from those sources every morning so you do not have to check each one.

Does it send the pitch for me?

No. Each draft arrives in Telegram for you to read and send yourself. A pitch goes out under your name, so it should never be sent unread.

Why are so few requests scored high?

The scorer is strict on purpose: most requests are outside your expertise. If a week goes quiet, lower minScore a little.

Can I use Claude or Gemini instead of OpenAI?

Yes. Swap the OpenAI model node for any chat model node in n8n. Nothing else changes.

What does it cost to run?

The workflow is free. Each run bills the Journalist Request Finder on your Apify account per request delivered, capped by maxRequests, plus OpenAI tokens for the scoring and drafts on your own OpenAI account.

๐Ÿงช Run it once without n8n

To see the data before building a schedule around it, open one of these ready-made Journalist Request Finder - HARO Alternative for Digital PR tasks on Apify.

Need this for a different site?

A workflow needs an actor for the site first. Tell me which one and what the alert should say.