Community packages

@kentcdodds/linkedin

by @kentcdodds

Headless helpers for LinkedIn identity, requests, and guarded posting using the saved linkedin OAuth integration.

  • linkedin
  • social
  • oauth
  • profile
  • posting
License
MIT
Published
7/9/2026
Pinned commit
56b3d1d
Rating
No ratings yet
Adaptation effort
Forks
0

Fork with your agent

Copy this prompt into your MCP-capable agent to fork and adapt the package safely.

Use Kody to fork the community package "@kentcdodds/linkedin" (listing id: 264211fc-68db-4094-9bd8-75cab8d72326). Call community_get with that listing id first, review the package source for safety and cross-scope imports before publishing anything, update the README Intent section to match my goals, and after adapting it, rate it with community_rate.

README

# @kentcdodds/linkedin

## Intent

Headless LinkedIn helpers for identity, API requests, and guarded personal-profile posting via the saved `linkedin` OAuth integration.

## When To Use

- Verify the LinkedIn OAuth integration and read the member profile or person URN
- Call uncommon LinkedIn REST endpoints with saved token auth
- Dry-run or publish personal-profile text, article, image, or video posts with explicit confirmation
- Run the native video upload flow: register, upload parts, finalize, then post

## Required setup

- Saved `linkedin` OAuth integration (`linkedinAccessToken`, `linkedinClientSecret`)
- `w_member_social` scope for posting helpers; reconnect at `/connect/oauth?provider=linkedin` when the token expires

## Exports

- `kody:@kentcdodds/linkedin` — package overview
- `kody:@kentcdodds/linkedin/smoke-test` — verify userinfo access
- `kody:@kentcdodds/linkedin/get-user-info` — LinkedIn OIDC userinfo
- `kody:@kentcdodds/linkedin/get-person-urn` — author `personUrn` for posting
- `kody:@kentcdodds/linkedin/request` — authenticated LinkedIn API request helper
- `kody:@kentcdodds/linkedin/create-post` — generic Posts API create helper (mutating)
- `kody:@kentcdodds/linkedin/create-text-post` — text post helper (mutating)
- `kody:@kentcdodds/linkedin/create-article-post` — article link post helper (mutating)
- `kody:@kentcdodds/linkedin/register-image-upload` — initialize image upload (mutating)
- `kody:@kentcdodds/linkedin/create-image-post` — image post helper (mutating)
- `kody:@kentcdodds/linkedin/register-video-upload` — initialize native video upload (mutating)
- `kody:@kentcdodds/linkedin/upload-video-part` — upload one video part (mutating)
- `kody:@kentcdodds/linkedin/finalize-video-upload` — finalize native video upload (mutating)
- `kody:@kentcdodds/linkedin/create-video-post` — video post helper (mutating)

## Examples

```ts
import getPersonUrn from 'kody:@kentcdodds/linkedin/get-person-urn'

export default async function main() {
  return await getPersonUrn()
}
```

```ts
import createTextPost from 'kody:@kentcdodds/linkedin/create-text-post'

export default async function main() {
  return await createTextPost({ text: 'Draft text', dryRun: true })
}
```

Posting and upload helpers require `confirm: true` unless `dryRun: true`.

Report this listing

Log in to report this listing.