Att hitta något som är värt att posta är svårt nog. Sedan tappar du ytterligare en del av dagen på att kopiera länkar, skriva om samma ”här är varför det här spelar roll”-intro och hoppas att du inte redan delade det där repot förra veckan.
Den här GitHub LinkedIn-automationen träffar marknadsförare som behöver jämnt flöde av innehåll, men grundare och konsulter känner av det också. Du slutar med att posta mer sällan, eller att posta stressat. Inget av det är bra.
Det här arbetsflödet hämtar trendande GitHub-diskussioner från Hacker News, gör dem till publiceringsklara sociala inlägg med AI, publicerar på LinkedIn (och X), och loggar allt i Airtable så att det inte blir några upprepningar. Du får se hur det fungerar, vad du behöver och den verkliga tiden det sparar.
Så fungerar den här automationen
Hela n8n-flödet, från trigger till slutresultat:
n8n Workflow Template: GitHub till LinkedIn, utvalda inlägg med Airtable
flowchart LR
subgraph sg0["Schedule Flow"]
direction LR
n0["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Crawl HN Home"]
n1["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Extract Meta"]
n2["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Filter Unposted Items"]
n3["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Visit GH Page"]
n4["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/markdown.dark.svg' width='40' height='40' /></div><br/>Convert HTML To Markdown"]
n5@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Filter Errored", pos: "b", h: 48 }
n6@{ icon: "mdi:cog", form: "rounded", label: "No Operation, do nothing", pos: "b", h: 48 }
n7["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Update X Status"]
n8["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/linkedin.svg' width='40' height='40' /></div><br/>LinkedIn"]
n9["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Update L Status"]
n10["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Search Item"]
n11["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Create Item"]
n12["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/x.dark.svg' width='40' height='40' /></div><br/>X"]
n13["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Validate Generate Content"]
n14@{ icon: "mdi:play-circle", form: "rounded", label: "Schedule Trigger", pos: "b", h: 48 }
n15["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/merge.svg' width='40' height='40' /></div><br/>Merge"]
n16@{ icon: "mdi:robot", form: "rounded", label: "Generate Content", pos: "b", h: 48 }
n17["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/telegram.svg' width='40' height='40' /></div><br/>Ping Me"]
n18@{ icon: "mdi:cog", form: "rounded", label: "Wait for 5 mins before posting", pos: "b", h: 48 }
n12 --> n7
n15 --> n2
n17 --> n18
n8 --> n9
n11 --> n17
n10 --> n15
n1 --> n10
n1 --> n15
n0 --> n1
n3 --> n4
n5 --> n11
n9 --> n6
n7 --> n6
n16 --> n13
n14 --> n0
n2 --> n3
n4 --> n16
n13 --> n5
n18 --> n12
n18 --> n8
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n14 trigger
class n16 ai
class n5 decision
class n7,n9,n10,n11 database
class n0,n3 api
class n1,n2,n13 code
classDef customIcon fill:none,stroke:none
class n0,n1,n2,n3,n4,n7,n8,n9,n10,n11,n12,n13,n15,n17 customIcon
Problemet: trendande länkar blir inte till konsekventa inlägg
Hacker News är fullt av guldkorn, särskilt när GitHub-repon börjar trenda. Men ”intressant” blir inte automatiskt ”postat”. Du måste fortfarande öppna tråden, öppna repot, skumma README:n, plocka ut några trovärdiga detaljer, skriva något som låter som du, och sedan publicera i rätt format för LinkedIn. Gör du det några gånger i veckan har du skapat ett extrajobb. Än värre: du börjar tvivla på dig själv: ”Har jag redan postat det här?” Då slösar du antingen tid på att leta… eller så råkar du upprepa innehåll och ditt flöde ser slarvigt ut.
Det går snabbt att bygga upp. Här är var det brukar fallera.
- Att granska ett GitHub-repo ordentligt tar cirka 10 minuter, och du har fortfarande inte skrivit en enda rad av inlägget.
- Manuell textning ger ojämn kvalitet, så du fastnar i att skriva om krokar i stället för att publicera.
- Om du inte loggar inlägg någonstans pålitligt smyger dubbletter in och du tappar förtroende (inklusive ditt eget).
- Att publicera till LinkedIn och X separat är ett litet jobb, men det är den sorten som avbryter allt annat.
Lösningen: autokurera GitHub-fynd från Hacker News och publicera dem
Det här n8n-arbetsflödet körs enligt schema och skannar Hacker News startsida efter GitHub-relaterade diskussioner. Det tolkar titlar och URL:er och kontrollerar sedan Airtable för att se vad du redan har postat. Bara nya objekt går vidare, vilket håller ditt flöde fräscht utan att du behöver passa det. För varje ny GitHub-länk öppnar det repo-sidan, konverterar sidinnehållet till felfri text och skickar kontexten till en AI-prompt som skriver social text anpassad för LinkedIn (och även X). Efter ett snabbt valideringssteg publicerar det de färdiga inläggen, loggar dem tillbaka till Airtable med status och tidsstämplar och skickar en Telegram-sammanfattning så att du vet vad som gick ut.
Arbetsflödet startar med en schemalagd trigger och gör sedan tre saker i en loop: samlar kandidater från Hacker News, berikar dem med data från GitHub och genererar/publicerar inlägg. Airtable fungerar som minneslagret, så du inte postar samma repo två gånger om du inte medvetet vill det.
Det du får: automation vs. resultat
| Det här arbetsflödet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut i praktiken
Säg att du publicerar 3 kurerade ”GitHub-fynd”-inlägg per vecka. Manuellt är det ungefär 10 minuter för att kvalitetssäkra HN-tråden, 10 minuter på repot och cirka 15 minuter för att skriva och formatera för LinkedIn, plus ytterligare 5 minuter för att posta på X och logga det någonstans. Säg 40 minuter per inlägg, eller cirka 2 timmar i veckan. Med det här arbetsflödet lägger du kanske 10 minuter i början på att justera prompten och dina Airtable-fält, och sedan är varje körning i stort sett hands-off: en schemalagd trigger, en kort väntan innan publicering och en Telegram-sammanfattning när det är klart.
Det här behöver du
- n8n-instans (prova n8n Cloud gratis)
- Självhostat alternativ om du föredrar det (Hostinger fungerar bra)
- Airtable för loggning av inlägg och deduplicering.
- LinkedIn för att publicera kurerade inlägg automatiskt.
- OpenAI API-nyckel (hämta den från din OpenAI-dashboard).
Kunskapsnivå: Medel. Du kopplar konton, klistrar in API-nycklar och redigerar en prompt, men du skriver inte produktionskod.
Vill du inte sätta upp detta själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
En schemalagd körning drar igång allt. n8n startar arbetsflödet vid de tider du väljer, så innehållsskapandet inte beror på ”när du får tid”.
Hacker News crawl:as och parsas. Arbetsflödet hämtar HN-startsidan, extraherar GitHub-relaterade objekt och bygger en strukturerad lista med titlar, URL:er och grundmetadata som kan bearbetas pålitligt.
Airtable förhindrar upprepningar. För varje kandidat-länk slår det upp en befintlig post, sammanfogar flöden och exkluderar sedan allt som redan har markerats som postat (separat för LinkedIn och X).
GitHub-kontext förbättrar texten. Det öppnar repo-sidan, konverterar HTML till markdown-liknande text och använder sedan OpenAI för att skriva social text som hänvisar till riktiga detaljer i stället för vag hype. Efter en valideringsrunda och en kort väntan publicerar det till LinkedIn och X, uppdaterar Airtable-statusar och skickar en Telegram-notis med sammanfattningen.
Du kan enkelt justera AI-prompten för att matcha din tonalitet och din önskade struktur på inläggen utifrån dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: konfigurera schematriggern
Ställ in automationsfrekvensen så att arbetsflödet hämtar nytt innehåll från Hacker News enligt ett fast schema.
- Lägg till eller öppna Scheduled Automation Start.
- Ställ in intervallregeln så att den körs var 6:e timme genom att konfigurera fältet rule till
{"interval":[{"field":"hours","hoursInterval":6}]}. - Koppla Scheduled Automation Start till Fetch HN Homepage.
Steg 2: hämta och parsa data från Hacker News
Hämta startsidans HTML och extrahera GitHub-relaterade inlägg för vidare bearbetning.
- I Fetch HN Homepage, ställ in URL till
https://news.ycombinator.com/. - Behåll svarsalternativen som aktiverar fullständigt svar och aldrig fel, som redan är konfigurerat.
- Öppna Parse HN Metadata och bekräfta att language är
pythonoch att parsingskriptet är inklistrat i pythonCode. - Säkerställ att Fetch HN Homepage är kopplad till Parse HN Metadata.
- Parse HN Metadata skickar utdata parallellt till både Lookup Existing Record och Combine Streams.
Steg 3: deduplicera och berika repository-innehåll
Förhindra återpublicering genom att kontrollera Airtable, hämta sedan repo-HTML och konvertera till markdown för AI-prompten.
- I Lookup Existing Record, ställ in operation till
searchoch filterByFormula till={Post}= {{ $json.Post }}. - Inloggningsuppgifter krävs: Anslut era airtableTokenApi-uppgifter i Lookup Existing Record.
- Bekräfta att Lookup Existing Record matar Combine Streams, och att Combine Streams sedan matar Exclude Posted Records.
- Öppna Exclude Posted Records och behåll JavaScript-koden i jsCode som angiven för att filtrera dubbletter.
- I Open Repo Page, ställ in URL till
{{ $json.url }}. - I HTML to Markdown, ställ in HTML till
{{ $json.data }}.
Post och att Airtable-tabellen har matchande fält-ID:n.Steg 4: sätt upp AI-generering av utkast och validering
Generera text för sociala kanaler med OpenAI och validera JSON-svaret innan ni går vidare.
- I Generate Social Copy, behåll modelId inställd på
gpt-4o-minioch jsonOutput inställd påtrue. - Bekräfta att prompten använder uttrycken i meddelandeinnehållet, inklusive
{{ $('Exclude Posted Records').item.json.title }},{{ $json.data }}och{{ $('Exclude Posted Records').item.json.url }}. - Inloggningsuppgifter krävs: Anslut era openAiApi-uppgifter i Generate Social Copy.
- I Validate Draft Output, behåll mode inställd på
runOnceForEachItemoch jsCode för JSON-validering. - Verifiera flödet: Generate Social Copy → Validate Draft Output → Filter Error Outputs.
Steg 5: logga i Airtable och avisera för granskning
Skapa en post i Airtable, avisera via Telegram och förbered för fördröjd publicering.
- I Filter Error Outputs, behåll villkoret som kontrollerar att
{{ $json.error }}är tomt. - I Create Airtable Entry, ställ in operation till
createoch mappa fält med uttryck: - Ställ in Url till
{{ $('Exclude Posted Records').item.json.url }}, Post till{{ $('Exclude Posted Records').item.json.Post }}, Title till{{ $('Exclude Posted Records').item.json.title }}, Tweet till{{ $json.message.content.twitter }}och LinkedIn till{{ $json.message.content.linkedin }}. - Inloggningsuppgifter krävs: Anslut era airtableTokenApi-uppgifter i Create Airtable Entry.
- I Notify via Telegram, ställ in chatId till
[YOUR_ID]och behåll meddelandemallen som använder{{ $json.fields.Tweet }}och{{ $json.fields.LinkedIn }}. - Inloggningsuppgifter krävs: Anslut era telegramApi-uppgifter i Notify via Telegram.
- Säkerställ att Notify via Telegram är kopplad till Delay Before Publish.
Steg 6: schemalägg och publicera till sociala kanaler
Fördröj publiceringen, posta sedan till X och LinkedIn parallellt och markera poster som publicerade.
- I Delay Before Publish, ställ in unit till
minutesoch justera eventuell väntetid vid behov. - Delay Before Publish skickar utdata parallellt till både Post to X och Publish to LinkedIn.
- I Post to X, ställ in text till
{{ $('Filter Error Outputs').item.json.message.content.twitter }}. - Inloggningsuppgifter krävs: Anslut era twitterOAuth2Api-uppgifter i Post to X.
- I Publish to LinkedIn, ställ in text till
{{ $('Filter Error Outputs').item.json.message.content.linkedin }}och person till[YOUR_ID]. - Inloggningsuppgifter krävs: Anslut era linkedInOAuth2Api-uppgifter i Publish to LinkedIn.
- I Mark X Posted, behåll operation som
updateoch ställ in postens id till{{ $('Create Airtable Entry').item.json.id }}. - I Mark LinkedIn Posted, behåll operation som
updateoch ställ in postens id till{{ $('Create Airtable Entry').item.json.id }}. - Inloggningsuppgifter krävs: Anslut era airtableTokenApi-uppgifter i Mark X Posted och Mark LinkedIn Posted.
- Bekräfta att både Mark X Posted och Mark LinkedIn Posted avslutas i End Placeholder för en ren terminering.
Steg 7: testa och aktivera ert arbetsflöde
Validera hela körningen end-to-end innan ni aktiverar schemaläggning i produktion.
- Klicka på Execute Workflow för att köra Scheduled Automation Start manuellt.
- Bekräfta att Fetch HN Homepage returnerar HTML, att Parse HN Metadata ger utdata med GitHub-inlägg och att Exclude Posted Records ger items som inte redan finns i Airtable.
- Verifiera att Generate Social Copy producerar JSON med fälten
twitterochlinkedinoch att Validate Draft Output skickar innehållet vidare. - Kontrollera Airtable för att bekräfta att Create Airtable Entry skapade en post och att Notify via Telegram levererade meddelandet.
- Efter väntetiden, säkerställ att både Post to X och Publish to LinkedIn lyckas och att Mark X Posted och Mark LinkedIn Posted uppdaterar posten.
- Slå om arbetsflödet till Active för att aktivera schemalagda körningar var 6:e timme.
Vanliga fallgropar
- Airtable-autentisering kan löpa ut eller kräva specifika behörigheter. Om något skapar fel, kontrollera först scopes för din Airtable Personal Access Token samt base-/table-ID:n i dina Airtable-noder.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om efterföljande noder fallerar på tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in din tonalitet tidigt, annars kommer du att redigera output för alltid.
Vanliga frågor
Cirka 30 minuter om dina API-nycklar är klara.
Nej. Du kommer mest att koppla konton och klistra in autentiseringsuppgifter i rätt n8n-noder.
Ja. n8n har ett gratis självhostat alternativ och en gratis provperiod på n8n Cloud. Molnplaner börjar på 20 USD/månad för högre volym. Du behöver också räkna med OpenAI API-kostnader (ofta bara några dollar i månaden vid låg volym).
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller självhosting på en VPS. För självhosting är Hostinger VPS prisvärd och hanterar n8n bra. Självhosting ger dig obegränsade körningar men kräver grundläggande serveradministration.
Ja, och det bör du. Du justerar främst OpenAI-noden ”Generate Social Copy” så att den skriver i din ton och följer din struktur (till exempel: krok, varför det spelar roll, en takeaway och en fråga). Vanliga justeringar är att korta in inlägg för ett tajtare flöde, lägga till en rad om ”vem det är för”, eller tvinga fram en specifik CTA som ”stjärnmarkera repot” eller ”kommentera för länken”. Vill du ha ett manuellt godkännandesteg kan du lägga in en Google Sheets- eller Airtable-kontroll ”Status = Approved” före ”Publish to LinkedIn”.
Oftast är det en utgången token eller saknade scopes på din Airtable Personal Access Token. Uppdatera autentiseringen i n8n och dubbelkolla sedan base-ID och tabellnamn i ”Lookup Existing Record” och ”Create Airtable Entry”. Om det bara misslyckas ibland kan du slå i rate limits vid större batcher, så minska hur många inlägg du processar per körning.
En typisk setup hanterar dussintals objekt per körning, och den främsta begränsningen är din n8n-körningskvot (i Cloud) eller din serverkapacitet (vid självhosting).
Ofta, ja, eftersom det här flödet har förgreningar, filtrering, innehållsgenerering och ”minne” (Airtable-deduplicering) på ett ställe. n8n gör det också enklare att lägga in kodbasad parsing för Hacker News och valideringskontroller när AI-output saknar viktiga delar. Om du bara gör en enkel ”ny rad → posta till LinkedIn”-sekvens kan Zapier eller Make gå snabbare att sätta upp. Men för att hämta från Hacker News, berika från GitHub och sedan publicera till två nätverk är n8n oftast ett renare val. Prata med en automationsexpert om du vill ha hjälp att välja.
När det här väl är live slutar din innehållsmotor att bygga på viljestyrka. Arbetsflödet gör det repetitiva jobbet, och du behåller omdömet.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.