SlopScore
00 crowd

linkedin-campaign-bot

🤖 A bot that publishes my LinkedIn content series on schedule — built with Claude, runs free on GitHub Actions, uses the official LinkedIn API.
Open repo on GitHub Open the demogithub.com/Hazem2911/linkedin-campaign-bot
Python · ★ 1 · 0 forks · MIT · paperwork by the Cap'mmostly ai (inferred)light human (inferred)works-on-my-machine (inferred)automation🤖 claude
listed 2 hours ago by Hazem2911 · last checked 12 minutes ago
The owner didn't write this. This repo never submitted itself. The Cap'm found it on a truffle trawl and wrote its paperwork from what GitHub already shows. Picked by hand by the Cap'm on 2026-09-14: 🤖 A bot that publishes my LinkedIn content series on schedule — built with Claude, runs free on GitHub Action; its own README says "🤖 A bot that publishes my LinkedIn content series on schedule — built with Claude, runs free on GitHub Actions, uses the official LinkedIn ". 1 stars; MIT license. The owner did not submit this. Votes count; awards don't until the owner claims it.

I'm not calling your project slop! Geeze, it's a joke... Do you own this repo?

Log in with GitHub as Hazem2911. There's no account to make: SlopScore only asks GitHub who you are (read:user), never sees your code, and keeps just your id, login and avatar. Then you can:

  • Keep it, on your terms. Commit your own slopscore.md (spec) and press Refresh. Your paperwork replaces the Cap'm's, and you can submit it for Slop of the Day.
  • Take it down. One click on Remove. It stays gone; the trawl never brings it back.

Log in with GitHub

Can't log in as the owner? Request a takedown. No login needed, and a trawled listing comes down right away.

GitHub says
🤖 A bot that publishes my LinkedIn content series on schedule — built with Claude, runs free on GitHub Actions, uses the official LinkedIn API.
website
https://www.linkedin.com/in/hazem-ahmed2911/
topics
automationclaudecontent-marketinggithub-actionslinkedin-apipython
created
2026-07-13 · pushed 1 month ago · 8 commits · 2 contributors
languages
Python 100%
paperwork
licensereadme 42% health
dependencies
no dependency graph (no manifest, or disabled) · OSV.dev, checked 2 hours ago

Disclosures, inferred by the Cap'm

slopbucket
vibe-coded
category
automation
ai_generated
mostly
human_touch
light
status
works-on-my-machine
built_with
claude
language (detected)
python
topic (detected)
automationclaudecontent-marketinggithub-actionslinkedin-apipython
license (detected)
mit

The Cap'm's log

The Cap'm wrote this paperwork, not the owner. This repo never submitted itself to SlopScore. The Cap'm picked it by hand: 🤖 A bot that publishes my LinkedIn content series on schedule — built with Claude, runs free on GitHub Action; its own README says "🤖 A bot that publishes my LinkedIn content series on schedule — built with Claude, runs free on GitHub Actions, uses the official LinkedIn ". It carries the MIT license. The disclosures above are his best guess from what GitHub shows.

Is this yours? Commit a real slopscore.md and press Refresh to replace this, or remove the listing in one click. There's no account to make: you log in with GitHub.

README — the repo's own words, folded up so the grading fits on one screen

LinkedIn Campaign Bot 🤖

A small bot that publishes my LinkedIn content series — "My Claude Diaries" — automatically, on schedule, with images and captions. Built with Claude, runs free on GitHub Actions, and uses the official LinkedIn API (no scraping, no fake browsers, account-safe).

The twist: this bot is part of the campaign it publishes. The series is about working with AI — and AI wrote the posts, designed the images, and built this bot. I directed.

How it works

schedule.json          GitHub Actions (cron, Sun+Wed 09:05 Cairo)
     │                        │
     ▼                        ▼
 "what is due today?"  ──►  post_to_linkedin.py
                              │  1. upload image  (LinkedIn Assets API)
                              │  2. publish post  (LinkedIn UGC API)
                              │  3. save state    (never double-posts)
                              ▼
                        your LinkedIn profile ✨

Everything lives in the repo: captions in posts/, images in images/, dates in schedule.json, published-state in state/.

Setup (10 minutes, once)

1. Create a LinkedIn app (free) at linkedin.com/developers/apps

  • Products tab → request "Share on LinkedIn" and "Sign In with LinkedIn using OpenID Connect" (instant approval)
  • Auth tab → add redirect URL: http://localhost:8914/callback

2. Get your token (locally):

pip install -r requirements.txt
export LINKEDIN_CLIENT_ID=your_client_id
export LINKEDIN_CLIENT_SECRET=your_client_secret
python get_token.py

Your browser opens, you approve once, and it prints LINKEDIN_ACCESS_TOKEN and LINKEDIN_PERSON_URN.

3. Add GitHub secrets: repo → Settings → Secrets and variables → Actions → add both values as secrets.

4. Push and forget. The workflow wakes up Sunday and Wednesday at 09:05 Cairo time, checks schedule.json, and posts whatever is due. Done.

Useful commands

python post_to_linkedin.py --due --dry-run   # what would post today?
python post_to_linkedin.py --post 3 --dry-run # preview post 3
python post_to_linkedin.py --post 3           # force-post post 3 right now

You can also trigger a post manually from the Actions tab (workflow_dispatch → enter a post id).

Edit the campaign

Change dates in schedule.json, captions in posts/*.txt, images in images/. That's the whole CMS.

Notes

  • The access token lives ~60 days — longer than the campaign. Re-run get_token.py if it expires.
  • Posting time is 05 6 * * 0,3 UTC = 09:05 Cairo during Egypt's summer time (UTC+3). If your campaign runs November–April (UTC+2), change it to 05 7 * * 0,3.
  • Uses LinkedIn's official /v2/assets + /v2/ugcPosts endpoints with the w_member_social scope. One profile, your own content — exactly what the API is for.

Built with

Claude (planning, copy, image generation pipeline, and this code) · Python · GitHub Actions · the LinkedIn API


If this repo helps you run your own content series, a ⭐ makes my day.

Read the rest on GitHub

Scan report · 2026-09-14
  • Prohibited terms or links
  • Repository eligibility
  • slopscore.md paperwork
  • Content policy
  • Risk review

0 comments

log in to comment.

report this listinglog in to report