What this workflow does
This n8n workflow reads your target account list from Google Sheets every Monday at 8:00, pulls each company's open roles from the job board it really uses, has OpenAI score whether that hiring signals a need for what you sell, and sends a ready opener to Telegram for the accounts worth contacting. It runs on Company Domain to Job Postings - Greenhouse, Lever, Ashby ($0.001 per job posting) and the template itself is free.
๐ How it works
A company hiring its first RevOps lead or three data engineers is telling you what it is about to buy. This workflow watches that signal for the accounts you already care about: one Google Sheet tab holds their domains, and every week it checks who each one is hiring.
The Apify actor resolves each domain to the applicant tracking system the company actually uses, such as Greenhouse, Lever, Workday or Ashby, and returns the open roles. Postings already read in an earlier week are dropped before any AI sees them, and titleKeywords narrows the rest, so tokens are only spent on new, relevant roles.
OpenAI scores each account from 0 to 100 against the problem you solve, names the signal and quotes the evidence. Every account lands in the Briefs tab, rejects included, so you can tune minScore. The ones at or above it get a subject line and a short opener built on the hiring observation, sent to Telegram for you to review.
The 16 nodes, in order
- Schedule TriggerEvery Monday at 8am
- Edit FieldsSet your targets
- Google SheetsRead your account list
- AggregateCollect the domains
- ApifyFind who they are hiring
- Remove DuplicatesSkip postings already read
- CodeGroup postings by account
- OpenAI Chat ModelOpenAI model
- Basic LLM ChainRead the hiring signal
- Structured Output ParserSignal format
- Edit FieldsFormat the account row
- Google SheetsSave every account brief
- FilterKeep the accounts worth working
- LimitCap the accounts per run
- Basic LLM ChainWrite the outreach opener
- TelegramSend the account brief to Telegram
๐ฅ Get the workflow
Three ways to import it. They all give you the same workflow, published 2026-10-08.
- 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/job-postings-account-qualification-openai-google-sheets.json
โ๏ธ The settings you edit
Every value you change lives in one node, Set your targets. These are the defaults the template ships with.
| Setting | Default | What it does |
|---|---|---|
whatYouSell | A RevOps service that cleans up CRM data and keeps it clean | One sentence on what you sell. |
problemYouSolve | Their pipeline reporting is wrong because nobody owns CRM hygiene, so forecasts are guesses and reps do not trust the data. | The pain you remove. The model matches postings against this, so be specific. |
signalsYouCareAbout | first RevOps or sales ops hire, a data engineer joining a go-to-market team, anyone whose posting mentions CRM cleanup, Salesforce migration or reporting we cannot trust | The hiring patterns that mean an account needs you, in plain words. |
titleKeywords | revops, revenue operations, sales operations, data engineer, analytics engineer | Comma separated job title words. Only matching roles are read, the cheapest filter you have. |
locations | (empty) | Optional. Comma separated locations to keep. Empty keeps every location. |
domainColumn | Domain | The header of the column in your sheet that holds the company domains. |
accountTab | Accounts | The sheet tab that holds your account list. |
briefTab | Briefs | The empty sheet tab the account briefs are written to. |
maxJobs | 100 | Most job postings one run returns, which is also what caps the Apify cost of a run. |
minScore | 65 | Accounts scoring at or above this get an opener. 60 to 70 is the useful band. |
maxAccounts | 5 | Most openers one run sends. |
googleSheetUrl | PASTE_YOUR_GOOGLE_SHEET_URL_HERE | The URL of the Google Sheet with your account list. |
telegramChatId | PASTE_YOUR_TELEGRAM_CHAT_ID_HERE | The Telegram chat the briefs are sent to. |
๐ What lands in your Google Sheet
One row per new account, with these 10 columns. The header row is written on the first run, so start with an empty sheet.
See real records from a Company Domain to Job Postings - Greenhouse, Lever, Ashby run โ
๐ How to set it up
- 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.
- Connect Apify and OpenAI
Create a free Apify account and connect it in the Find who they are hiring node, then connect an OpenAI account in the OpenAI model node.
- Prepare the sheet and Telegram
Put your account domains in one tab (stripe.com, not a LinkedIn URL) and add an empty tab for the briefs. Set accountTab, briefTab and domainColumn to match, create a bot with @BotFather and paste your chat id into telegramChatId.
- Describe what you sell, run once, activate
Fill in whatYouSell, problemYouSolve and signalsYouCareAbout, run the workflow once by hand and read the briefs. Then activate it.
No Apify account yet? Create one free โ
๐ต What it costs to run
maxJobs to lower that ceiling.
The Apify free plan covers a short account list per run. OpenAI tokens are billed on your own OpenAI account.
โ Questions about this workflow
How do I use job postings as a buying signal?
Import this workflow into n8n, list your target company domains in a Google Sheet and describe the problem you solve in the Set your targets node. Every Monday it reads their open roles and tells you which accounts are hiring for that problem now.
Which job boards does it read?
The actor finds the applicant tracking system each company uses, including Greenhouse, Lever, Workday, Ashby and Recruitee, and reads the roles from there.
Why do most accounts score low?
Most companies are not hiring for your problem in a given week, so a low score is the correct result. Raise or lower minScore to change how many openers you get.
Does it send the emails?
No. It sends the opener to Telegram so you can read it first. Nothing goes out under your name without you.
What does it cost to run?
The workflow is free. Each run bills the Company Domain to Job Postings actor on your Apify account per posting, capped by maxJobs, plus OpenAI tokens for the scoring and openers 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 Company Domain to Job Postings - Greenhouse, Lever, Ashby tasks on Apify.
๐ More n8n templates
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.