Platforms
Made by log new platform linkedin. LinkedIn is a platform of its own: every command is log linkedin <command> …, and each one is an MCP tool named linkedin<Command>.
What is here
| Part | Where |
|---|---|
| The accounts | Twenty socialAccounts with platform LINKEDIN |
| The session (find the account, its gate, its engine, the answer back to Twenty) | src/linkedin/account/session, on the shared src/platformKit/session |
| The commands | src/cli/linkedin/index.ts: log linkedin session check (MCP linkedinSessionCheck) |
| The engine | python/linkedinApi/engine.py, on the shared python/platformKit/engine.py; each account's governor is under ~/.logCli/linkedin/<account> |
| The client | vendor/openLinkedinApi (open-linkedin-api, pinned in UPSTREAM) |
How it reaches LinkedIn (rule 102)
- Transport: one curl_cffi
Sessioninvendor/openLinkedinApi/open_linkedin_api/transport.py, pinned toIMPERSONATE(chrome150). LinkedIn sees Chrome's TLS and HTTP/2 fingerprint and Chrome's own user agent, never Pythonrequestsor the library's fixed user agent.bun run check:linkedinTransportrefuses anything else. - Pacing: every call goes through the account's governor (
python/platformKit/engine.py): at least 4 s between calls (12 s on average, never even), 120 an hour, 500 a day, and a 15-minute pause after LinkedIn throttles (HTTP 999 or 429). - Writes: at most 10 a day per account (
WRITES_PER_DAYinsrc/directApi/engine/types.ts). - Cookies:
li_atandJSESSIONID, from a browser signed in to linkedin.com, saved bylog linkedin cookies save. Cookies LinkedIn refreshes are written back to Twenty. - No proxy: the account calls LinkedIn from this machine, as the browser its cookies came from does.
Next
- Vendor LinkedIn's client under
vendor/<library>and setLIBRARYinpython/linkedinApi/engine.py. - Fill in
pingthere: call LinkedIn with the account's cookies and answerloginStatefrom LinkedIn's own answer. - Add each family as an action in the engine, a command in
src/cli/linkedinand its rules inCOMMAND_RULES, with a…Liveflag for anything that acts on LinkedIn.