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…
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.
Schedule
It starts by itself every six hours, once the workflow is published, and takes no input:
Each new GitHub project on the front page becomes a post on X and one on LinkedIn, with both drafts logged in Airtable
What you need before you start.
Source of links
Gives the front page, which the workflow reads for posts that link to GitHub.
NeedsNothing, the page is public
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
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
Draft notice
Sends both drafts to your chat before anything is posted.
NeedsA Telegram bot, and your chat’s ID
Short post
Publishes the short post.
NeedsAn X app that can post, in an X credential
Long post
Publishes the longer post on your profile.
NeedsA LinkedIn app that can post for you, and your person ID
Checked by Mindket on 13 Nov 2026
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.
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.
| Industry | Who uses it | How they use it | Example |
|---|---|---|---|
| Developer relations | Advocates | Keep a team account active with notes on new open-source projects | An advocate’s account posts about new repositories through the day with no writer on duty. |
| Open source | Maintainers | Share what the community is building, beside their own releases | A maintainer follows the front page and passes on projects close to their own. |
| Tech media | Newsletter writers | Use the Airtable table as a lead list for the next issue | A writer opens the table on Friday and picks the week’s projects. |
| Recruiting | Engineering recruiters | Show candidates that the team follows the field | A 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.
Any n8n that stays on can run it, since it starts on a schedule. Publish the workflow so the schedule fires.
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.
| Need | Detail |
|---|---|
| n8n | On n8n Cloud or on a server of your own |
| OpenAI | An API key |
| Airtable | A personal access token and a table with Post, Title, Url, Tweet, LinkedIn, Date, TDone and LDone |
| Telegram | A bot, and the ID of the chat that gets the drafts |
| X and LinkedIn | An app for each that can post for your profile |
workflow.json.Search Item, Create Item, Update X Status and Update L Status, replace YOUR_BASE_ID and YOUR_TABLE_ID and select your Airtable credential.Generate Content.Ping Me, replace <YOUR_TELEGRAM_CHAT_ID> with your chat’s ID and select your Telegram credential. The brackets go.X. In LinkedIn, select your credential and replace <YOUR_LINKEDIN_PERSON_ID>. The brackets go here too.X and LinkedIn, run Test workflow once and read the drafts on Telegram.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.
| To change | Where |
|---|---|
| How often it runs | The interval in Schedule Trigger |
| Which links it follows | The github.com test in Extract Meta |
| The voice and the length | The system message and the prompt in Generate Content |
| Your time to react | The amount in Wait for 5 mins before posting |
| Drafts only | Delete X, LinkedIn and the two Update nodes |
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.
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.
| Node | What it does | What to know |
|---|---|---|
Extract Meta | Reads the front page with string matching | Mindket’s JavaScript copy of a Python node, set to run once for the whole page |
Filter Unposted Items | Keeps posts with no Airtable record | Items with an id are records, and the rest are fresh posts |
Wait for 5 mins before posting | Pauses the run | Wait 1.1 with its unit on minutes takes that version’s default amount, 5 |
X | Posts the tweet | Set to continue on error, so a failed post still ticks TDone |
Nothing here waits for your approval, and one node needed a 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 JavaScriptX continues on error, so a post that X refuses still ticks TDonegpt-4o-mini, with gpt-6-luna as the replacementAn 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.
workflow.json: the workflow as n8n exports it, twenty-six nodes. Nineteen of them run and seven are sticky notes. It holds noREADME.md: these notes.Extract Meta was a Python Code node that installed two packages with micropip and read the page with BeautifulSoup. InYOUR_BASE_ID, YOUR_TABLE_ID, <YOUR_TELEGRAM_CHAT_ID> and <YOUR_LINKEDIN_PERSON_ID>. Every credential link is gone.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.
workflow.json.app, and the table ID, which starts with tbl, from its address.Search Item, Create Item, Update X Status and Update L Status, replace YOUR_BASE_ID and YOUR_TABLE_ID, and selectGenerate Content.Ping Me, replace <YOUR_TELEGRAM_CHAT_ID> with your chat's ID, and select a Telegram credential. Brackets go.X. In LinkedIn, select a LinkedIn credential and replace <YOUR_LINKEDIN_PERSON_ID> with yourX and LinkedIn so nothing is posted by accident. Enable them again to go live, then press Publish.Schedule Trigger fires every six hours.Crawl HN Home loads https://news.ycombinator.com/ once.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.Search Item looks each Post up in the Airtable table. Merge puts those records and the fresh posts in one list, andFilter Unposted Items drops every post whose ID is already in the table.Visit GH Page opens each remaining project's address, and Convert HTML To Markdown turns the page into text.Generate Content calls gpt-4o-mini with a system message and a prompt that ask for JSON with two fields, twitter andlinkedin. The X post must stay under 280 characters with the link, and neither post may use emoji.Validate Generate Content checks that both fields exist, and Filter Errored lets only items with no error through.Create Item stores the post ID, title, address and both drafts in Airtable.Ping Me sends both drafts to Telegram, beginning with Hi There, here is your readymade tweet.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 itX posts the tweet and LinkedIn posts the longer text. Update X Status ticks TDone and Update L Status ticks LDone.Schedule Trigger.github.com test in Extract Meta. Change it to any other site to follow its links.Generate Content.Generate Content.Wait for 5 mins before posting.X, LinkedIn and the two Update nodes, and read the drafts on Telegram or in the table.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.Validate Generate Content cannot repair it, because it testsGenerate 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.gpt-4o-mini, with gpt-6-lunaGenerate Content before then.NOTICE.md 589 B README.md 7 KB workflow.json 30 KB
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…
Qwen · Kit
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…
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…
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…
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…
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…