See llms.txt for all machine-readable content.

Back to Templates

Send daily LinkedIn hiring trend voice notes with Apify, DeepSeek, ElevenLabs, Telegram, and Google Sheets

Job boards show you one posting at a time. This workflow reads a week of LinkedIn postings for your niche every morning, compares the numbers with your own history, and sends a short voice note to Telegram. It also guards against double runs, checks the AI draft before it is spoken, and sends a weekly trend recap.

Last updated: November 2026.

Quick Overview

Each morning the workflow first checks the hiring_pulse sheet so a pulse never goes out twice on the same day. It then runs a saved Apify LinkedIn job search with retries, reduces the postings to counts, a median listed salary and ranked skills, and compares today with the last seven logged days. A DeepSeek agent writes the headline and narration, a validation step holds weak drafts for review, ElevenLabs turns the brief into an mp3, and Telegram gets the voice note. Failures, quiet days and held drafts land in a run_log tab, and a Monday digest sums up the week.

How it works

  1. A cron schedule fires at 07:30 and reads the hiring_pulse tab. If a row for today already exists, the run stops at Already Sent Today.
  2. The Apify LinkedIn jobs actor runs against the saved search URL, and the dataset is read back. Both calls retry three times, and a final failure is written to run_log and posted to Telegram.
  3. Postings with a title are counted, salary strings are scanned for a median, and a fixed skill list is ranked. Fewer than three postings logs a quiet day and sends a one line note.
  4. The trend step compares today's count with the seven day average from the sheet and lists skills that did not appear in the last week, then adds that context to the prompt.
  5. A DeepSeek agent writes a headline, summary, hot skills and a 70 to 110 word narration, and the reply is parsed as JSON with a regex fallback.
  6. A validation step checks the headline, narration length and formatting. Drafts that fail go to Telegram as a text for review and are logged as needs_review instead of being spoken.
  7. ElevenLabs creates the mp3 and Telegram sends it with the headline as caption. If text to speech fails, the text version is sent instead.
  8. Every delivered pulse appends a row with the counts, trend note, delivery type and Telegram message id.
  9. Every Monday at 08:00 a second schedule reads the last seven days and posts pulses sent, postings seen, the busiest day and the skills that showed up most.

Setup

  1. Connect your Apify account and confirm the LinkedIn jobs scraper actor is available on your plan.
  2. Add your DeepSeek compatible chat credential on Hiring Model and keep the temperature low.
  3. Edit the search URL in the Collect Job Postings body so the keyword, location and time filter match your niche.
  4. Add an ElevenLabs credential and pick a voice on Speak Hiring Pulse.
  5. Add a Telegram credential and replace the placeholder chat ID 123456789 in every Telegram node.
  6. Create a Google Sheets file with two tabs: hiring_pulse (created_at, role_query, job_count, median_salary, top_skills, headline, audio_file, trend_note, delivery, telegram_message_id) and run_log (run_at, status, detail, job_count).
  7. Adjust the two cron expressions if 07:30 daily and 08:00 Monday do not fit your week.

Quick Answers

Can the same pulse arrive twice?
No. The first step reads the hiring_pulse tab and stops when a row for today already exists, so a manual rerun does not repeat the Apify scrape or the voice note.

What if the AI writes something odd?
The draft is checked for a headline, a 40 to 180 word narration and no markdown or long dashes. Anything that fails is sent to Telegram as text for review and logged, not spoken.

What happens when Apify is down?
Each Apify call retries three times with a short wait. If it still fails, the error goes to run_log and a Telegram alert, and the rest of the run stops.

How do I see the bigger picture?
The Monday digest reads the last week of rows and reports pulses sent, total postings, the busiest day and the most repeated skills.

Additional info

Built with n8n. Need an assessment on your business? Feel free to reach out at https://khmuhtadin.com/consultation/