Mindket

GitHub links from Hacker News posted to X and LinkedIn

Newversion 1 · updated

Overview

An n8n workflow that reads the Hacker News front page every six hours and keeps the posts linking to GitHub. gpt-4o-mini drafts one post for X and one for LinkedIn, Telegram shows you both, and five minutes later they are published.

GitHub links from Hacker News posted to X and LinkedIn is an n8n workflow in the Marketing & SEO category, listed by Mindket. It is free. This is version 1, last updated on . Download it on this page or copy its JSON, then import it into an n8n canvas. Nothing runs until you activate it in n8n.

At a glance

Runs in
  • n8n Cloud: import the file into a new workflow there
  • Your own n8n server: the same file and steps, with the schedule following the server’s time zone
  • Airtable: the table keeps every post the workflow has handled
  • Telegram: the chat that gets each pair of drafts

Platform

Connects 6 apps

How it works

Trigger

Schedule

It starts by itself every six hours, once the workflow is published, and takes no input:

  • No input from you: it reads the Hacker News front page

Actions

  1. The Hacker News front page is loaded and its posts that link to GitHub are listed
  2. Each post is looked up in your Airtable table, and the ones already there are dropped
  3. Each new project’s GitHub page is opened and turned into text
  4. gpt-4o-mini writes one post for X and a longer one for LinkedIn, as JSON
  5. The drafts are saved to Airtable and sent to you on Telegram
  6. The workflow waits five minutes, then posts to X and LinkedIn and ticks the row

Result

Each new GitHub project on the front page becomes a post on X and one on LinkedIn, with both drafts logged in Airtable

Integrations

What you need before you start.

Hacker News

Source of links

Gives the front page, which the workflow reads for posts that link to GitHub.

NeedsNothing, the page is public

OpenAI

Post writer

Runs gpt-4o-mini to turn a project page into a short post for X and a longer one for LinkedIn.

NeedsOpenAI API key

Airtable

Log of handled posts

Keeps each post with its drafts and two checkboxes, and shows whether an ID was seen before.

NeedsAirtable personal access token, and a table with eight fields

Telegram

Draft notice

Sends both drafts to your chat before anything is posted.

NeedsA Telegram bot, and your chat’s ID

X

Short post

Publishes the short post.

NeedsAn X app that can post, in an X credential

LinkedIn

Long post

Publishes the longer post on your profile.

NeedsA LinkedIn app that can post for you, and your person ID

Workflow check

Checked by Mindket on 13 Nov 2026

Steps
19 steps, starting on a schedule
AI
1 step calls an AI model: Generate Content
Sign-ins
Signs in to: Airtable, Telegram, X and LinkedIn
API keys
No API key is left in the file
Step types
Mindket’s checker reads all 13 of its step types

Read from the workflow’s file, not from a run.

About

What it is

This n8n workflow turns GitHub links on the Hacker News front page into social posts. Every six hours it reads the page and keeps the posts that link to GitHub, skipping any already logged in an Airtable table. For each new project it loads the GitHub page, and gpt-4o-mini writes a short post for X and a longer one for LinkedIn. Both drafts reach you on Telegram. Five minutes later the workflow publishes them from your own accounts. Nineteen nodes run it, beside seven sticky notes.

Who it suits

Developer advocates, open-source maintainers and tech newsletter writers who share new projects often and want a steady stream of first drafts. Skip it if you must approve every post, since nothing here waits for your reply. As imported, the posts go out on their own after five minutes.

Who uses it, and how
IndustryWho uses itHow they use itExample
Developer relationsAdvocatesKeep a team account active with notes on new open-source projectsAn advocate’s account posts about new repositories through the day with no writer on duty.
Open sourceMaintainersShare what the community is building, beside their own releasesA maintainer follows the front page and passes on projects close to their own.
Tech mediaNewsletter writersUse the Airtable table as a lead list for the next issueA writer opens the table on Friday and picks the week’s projects.
RecruitingEngineering recruitersShow candidates that the team follows the fieldA recruiter’s LinkedIn page shows a steady run of project notes.

You need solid n8n for this one: five credentials, an Airtable table with eight fields and two social apps that are allowed to post.

Where to use it

Any n8n that stays on can run it, since it starts on a schedule. Publish the workflow so the schedule fires.

  • n8n Cloud: import the file into a new workflow there
  • Your own n8n server: the same file and steps, with the schedule following the server’s time zone
  • Airtable: the table keeps every post the workflow has handled
  • Telegram: the chat that gets each pair of drafts
  • X and LinkedIn: where the posts go

Setup

Download saves a zip with workflow.json and Mindket’s setup notes in your downloads folder. Make the Airtable table first, then add the accounts one by one.

What you need first
NeedDetail
n8nOn n8n Cloud or on a server of your own
OpenAIAn API key
AirtableA personal access token and a table with Post, Title, Url, Tweet, LinkedIn, Date, TDone and LDone
TelegramA bot, and the ID of the chat that gets the drafts
X and LinkedInAn app for each that can post for your profile
  1. In n8n, create a workflow, open its menu, choose Import from File and pick workflow.json.
  2. Make the Airtable table, then copy its base ID and table ID from its address.
  3. In Search Item, Create Item, Update X Status and Update L Status, replace YOUR_BASE_ID and YOUR_TABLE_ID and select your Airtable credential.
  4. Select an OpenAI credential in Generate Content.
  5. In Ping Me, replace <YOUR_TELEGRAM_CHAT_ID> with your chat’s ID and select your Telegram credential. The brackets go.
  6. Select your X credential in X. In LinkedIn, select your credential and replace <YOUR_LINKEDIN_PERSON_ID>. The brackets go here too.
  7. Disable X and LinkedIn, run Test workflow once and read the drafts on Telegram.
  8. Enable them again and press Publish.

How to use it

There is nothing to type. Once the workflow is published, a run starts every six hours. Read each Telegram message as it arrives, and stop the waiting run under Executions if a draft is wrong. The Airtable table keeps every post with its drafts and two ticks, one for each site.

What to change for a different result
To changeWhere
How often it runsThe interval in Schedule Trigger
Which links it followsThe github.com test in Extract Meta
The voice and the lengthThe system message and the prompt in Generate Content
Your time to reactThe amount in Wait for 5 mins before posting
Drafts onlyDelete X, LinkedIn and the two Update nodes

Example

At noon the front page links to a new open-source note-taking app on GitHub. The workflow opens the project’s page, and gpt-4o-mini returns a JSON object with a twitter text and a linkedin text.

Airtable gets a new row with the post’s ID, title, address and both drafts. Telegram sends you the tweet and the LinkedIn text, starting with Hi There, here is your readymade tweet. Five minutes later both go out, and the row’s TDone and LDone boxes tick.

For newcomers and experts

If you are new. n8n draws a workflow as boxes joined by lines, and each box, a node, does one job. Here one item travels the line for each new project. Run Test workflow first with X and LinkedIn disabled, then open Generate Content to read what the model was asked.

For experts. Search Item runs once for each post, and its formula compares the Airtable Post field with the Hacker News ID. Merge appends the records to the fresh posts, and Filter Unposted Items drops any post whose ID appears among the records.

Where to look closer
NodeWhat it doesWhat to know
Extract MetaReads the front page with string matchingMindket’s JavaScript copy of a Python node, set to run once for the whole page
Filter Unposted ItemsKeeps posts with no Airtable recordItems with an id are records, and the rest are fresh posts
Wait for 5 mins before postingPauses the runWait 1.1 with its unit on minutes takes that version’s default amount, 5
XPosts the tweetSet to continue on error, so a failed post still ticks TDone

Good to know

Nothing here waits for your approval, and one node needed a repair.

  • Posting: the Telegram message is a notice, not an approval. Stop the waiting run before the five minutes end to hold a post
  • Several at once: a run holds every new GitHub link on the page, and the wait and the posts cover them together, so expect a short burst
  • The repair: Extract Meta was a Python node that installed packages, which n8n’s Python sandbox no longer allows. Mindket’s copy does the same job in JavaScript
  • Fragile page: it reads Hacker News’s markup, so a redesign can leave a run with no items
  • Failed tweet: X continues on error, so a post that X refuses still ticks TDone
  • Models: OpenAI’s deprecations page, read on 12 November 2026, gives 14 January 2027 as the shutdown of gpt-4o-mini, with gpt-6-luna as the replacement
  • Rules: X and LinkedIn set their own rules for posts made by software. Read them for your accounts, and check what your X plan allows
  • Billing: OpenAI bills one call for each new project
  • Your data: the project pages’ text goes to OpenAI, the drafts to Airtable and Telegram, and the posts to X and LinkedIn
  • Credentials: the JSON holds none

README and files

README

GitHub links from Hacker News posted to X and LinkedIn

An n8n workflow that runs every six hours. It reads the Hacker News front page, picks the posts that link to GitHub and skips
any it has handled before. For each new one, an OpenAI model writes a post for X and a longer one for LinkedIn. You get both
drafts on Telegram, and five minutes later the workflow publishes them.

What is inside

  • workflow.json: the workflow as n8n exports it, twenty-six nodes. Nineteen of them run and seven are sticky notes. It holds no
    credential.
  • README.md: these notes.

What we changed from the original copy

  • Extract Meta was a Python Code node that installed two packages with micropip and read the page with BeautifulSoup. In
    n8n's current source, read on 12 November 2026, Python runs in a sandbox where imports work only if the instance allows them,
    so the node would stop on its first import. The copy does the same job in JavaScript, with no packages. It keeps the same
    output fields. We ran its code in Node against the front page's markup that day, outside n8n: it found the four
    GitHub posts among the thirty rows, with their scores, ages and comment counts.
  • The Airtable base and table, the Telegram chat and the LinkedIn person belonged to the file's author. They are placeholders
    now: YOUR_BASE_ID, YOUR_TABLE_ID, <YOUR_TELEGRAM_CHAT_ID> and <YOUR_LINKEDIN_PERSON_ID>. Every credential link is gone.
  • The Wait node carried a webhook ID from the author's n8n. It is dropped, and n8n makes a new one.
  • Nothing else. The prompts, the filters and the other Code nodes are as the file had them.

Before you start

  • An n8n instance, on n8n Cloud or your own server.
  • An OpenAI API key.
  • An Airtable account with a personal access token, and a base with one table (see below).
  • A Telegram bot, and the ID of the chat that should get the drafts.
  • An X developer app that can post, and a LinkedIn app that can post for your own profile.

The Airtable table needs these fields: Post (single line text), Title, Url, Tweet, LinkedIn, Date (a created time
field) and the checkboxes TDone and LDone.

Set it up

  1. In n8n, create a workflow, open its menu and choose Import from File. Pick workflow.json.
  2. Make the Airtable table. Copy the base ID, which starts with app, and the table ID, which starts with tbl, from its address.
  3. In Search Item, Create Item, Update X Status and Update L Status, replace YOUR_BASE_ID and YOUR_TABLE_ID, and select
    an Airtable credential.
  4. Add an OpenAI credential and select it in Generate Content.
  5. In Ping Me, replace <YOUR_TELEGRAM_CHAT_ID> with your chat's ID, and select a Telegram credential. Brackets go.
  6. Select an X credential in X. In LinkedIn, select a LinkedIn credential and replace <YOUR_LINKEDIN_PERSON_ID> with your
    person ID. Brackets go here too.
  7. Run the workflow once by hand with Test workflow. Open each node's output, then check the Telegram message.
  8. For a first test, disable X and LinkedIn so nothing is posted by accident. Enable them again to go live, then press Publish.

How a run goes

  1. Schedule Trigger fires every six hours.
  2. Crawl HN Home loads https://news.ycombinator.com/ once.
  3. Extract Meta reads the page and keeps each post whose link contains github.com. Each item has Post (Hacker News's ID),
    title, url, site, score, author, age, comments and hn_url.
  4. Search Item looks each Post up in the Airtable table. Merge puts those records and the fresh posts in one list, and
    Filter Unposted Items drops every post whose ID is already in the table.
  5. Visit GH Page opens each remaining project's address, and Convert HTML To Markdown turns the page into text.
  6. Generate Content calls gpt-4o-mini with a system message and a prompt that ask for JSON with two fields, twitter and
    linkedin. The X post must stay under 280 characters with the link, and neither post may use emoji.
  7. Validate Generate Content checks that both fields exist, and Filter Errored lets only items with no error through.
  8. Create Item stores the post ID, title, address and both drafts in Airtable.
  9. Ping Me sends both drafts to Telegram, beginning with Hi There, here is your readymade tweet.
  10. Wait for 5 mins before posting is a Wait node, version 1.1, with its unit set to minutes. Its amount is not in the file, so it
    takes that version's default, 5.
  11. X posts the tweet and LinkedIn posts the longer text. Update X Status ticks TDone and Update L Status ticks LDone.

Change the look

  • How often it runs: the interval in Schedule Trigger.
  • Which links it takes: the github.com test in Extract Meta. Change it to any other site to follow its links.
  • The voice, length and rules of the posts: the system message and the prompt in Generate Content.
  • The model: Generate Content.
  • How long you have to stop a post: the amount in Wait for 5 mins before posting.
  • Only draft, never post: delete X, LinkedIn and the two Update nodes, and read the drafts on Telegram or in the table.

Good to know

  • Telegram is a notice, not an approval. Nothing waits for your answer, and the posts go out when the five minutes end. To stop
    one, stop the waiting run under Executions before then.
  • A run can hold several projects, since the front page often links more than one GitHub repository. The Wait covers them all, and
    X and LinkedIn then post each one in turn, so expect a short burst of posts.
  • X is set to continue when it fails, so a post that X refuses still ticks TDone. LinkedIn has no such setting.
  • If a reply ever arrives as text and not as JSON, the fallback in Validate Generate Content cannot repair it, because it tests
    the original text again. With Generate Content's JSON output on, the first test normally passes.
  • Extract Meta reads Hacker News's page markup. A redesign of the page can leave it with no items.
  • OpenAI's deprecations page, read on 12 November 2026, gives 14 January 2027 as the shutdown of gpt-4o-mini, with gpt-6-luna
    as the replacement. Pick another model in Generate Content before then.
  • X and LinkedIn both set rules for posts made by software. Read them for your own account, and check what your X plan allows.
  • The prompt tells the model not to imply you own a project, and to write no emoji. Read each draft anyway: it works from a page's
    text and can get a detail wrong.
  • Where the data goes: the project pages' text goes to OpenAI, the drafts go to Airtable and Telegram, and the posts go to X and
    LinkedIn. Hacker News and GitHub are loaded straight from n8n.
Files
NOTICE.md  589 B
README.md  7 KB
workflow.json  30 KB

3 files, 37 KB, downloaded as a zip.

What’s new

  • Version 1 · 2026-11-12

Reviews

No ratings yet

Write a review

No reviews yet.

More from Mindket

See all from Mindket

anaksor-ocr

Sokheng · Kit

Reads Khmer and English text from documents, receipts and photos of signs, using a detector for text lines and a recogniser for each line. Suits developers who…

New

Qwen2.5-7B-Instruct as GGUF files in eight quantization sizes, to chat with locally through llama.cpp. For people who want a capable 7.6B model on their own co…

New

ACE-Step 1.5 XL SFT

ACE-Step · Kit

Generates music from text with a 4B diffusion decoder, 50 steps and guidance control, aiming for higher audio quality than the base. For creators with a GPU of…

New

Similar in Marketing & SEO

See all in Marketing & SEO

Huashu Design

alchaincyf · Skill

Turns a one-line request in your AI agent into a finished design: a launch animation, a clickable app prototype, an editable slide deck, an infographic or a se…

New29.4k

Pixel Art XL

nerijs · Kit

A pixel art style add-on for Stable Diffusion XL that turns text prompts into pixel-style images, with an optional LCM LoRA for faster runs. For game makers, d…

New

Licon MSR for LTX-2.5

LiconStudio · Kit

Keeps characters, clothing, objects and backgrounds consistent in generated video by feeding the model up to five reference images. A LoRA for LTX-2.5 in Comfy…

New