✨ Auto-generate social posts from GitHub README/CHANGELOG updates with GPT-4o and OAuth
⚡ 548 views · ✨ AI & LLMs
💡 Pro Tip — If you’re pulling LinkedIn data through HTTP requests or dealing with API restrictions, there’s a community node called ScraperNode that handles this natively. It has dedicated scrapers for profiles, companies, jobs, and people search — you just pass a URL and get structured data back.
Description
Generate social posts from GitHub pushes to Twitter and LinkedIn
On each GitHub push, this workflow checks if the commit set includes README.md and CHANGELOG.md, fetches both files, lets an LLM generate a Twitter and LinkedIn post, then publishes to Twitter and LinkedIn (Person).
Apps & Nodes
- Trigger: Webhook
- Logic: IF, Merge, Aggregate
- GitHub: Get Repository File (×2)
- Files: Extract from File (text) (×2)
- AI: OpenAI Chat Model → LLM Chain (+ Structured Output Parser)
- Publish: Twitter, LinkedIn (Person)
Prerequisites
- GitHub: OAuth2 or PAT with repo read.
- OpenAI: API key.
- Twitter: OAuth2 app with Read and Write; scopes
tweet.read tweet.write users.read offline.access. - LinkedIn (Person): OAuth2 credentials; required scope:
w_member_social,openid.
Setup
-
GitHub Webhook: Repo → Settings → Webhooks
- Payload URL:
https://<your-n8n-domain>/webhook/github/push - Content type:
application/json• Event: Push • Secret (optional) • Branches as needed.
- Payload URL:
-
Credentials: Connect GitHub, OpenAI, Twitter, and LinkedIn (Person).
How it Works
- Webhook receives GitHub push payload.
- IF checks that
READMEandCHANGELOGappear in added/modified. - GitHub (Get Repository File) pulls
README.mdandCHANGELOG.md. - Extract from File (text) converts both binaries to text.
- Merge & Aggregate combines into one item with both contents.
- LLM (OpenAI + Parser) returns a JSON with
twitterandlinkedin. - Twitter posts the tweet.
- LinkedIn (Person) posts the LinkedIn text.
🔗 Nodes Used
GitHub, Webhook, X (Formerly Twitter), LinkedIn, Basic LLM Chain, OpenAI Chat Model
📥 Import
Download workflow.json and import into n8n:
Workflow menu → Import from File