Skip to main content
Back to projects

linkedin-chrome-copilot — per-locale LinkedIn form automation

Materializes and saves per-locale (PT/EN/ES) profile slots behind isTrusted-gated Save buttons, with a two-phase confirm on any send.

BashAppleScriptTypeScriptclaude-mac-chrome
Locale slots
PT · EN · ES per position
Safety
per-action audit log · two-phase send confirm

The problem

LinkedIn's 2026 profile editor stores 3 locale slots per position (PT/EN/ES) behind separate URLs. The Save button discriminates isTrusted=true events, breaking synthetic dispatches; the Algolia typeahead in the skills section ignores synthetic input.

The solution

A Bash 3.2 plugin sibling to claude-mac-chrome. Reads positions via owner-view DOM scrape, drives per-locale /edit/forms/<id>/?language=<lang>&country=<cc> saves via AppleScript JS-injection. cliclick fallback for paths gated on real OS pointer events. Audit log per action; two-phase confirm on any Send equivalent.

Overview

Per-locale profile-edit forms (PT/EN/ES) gated behind separate URLs with isTrusted=true Save buttons. The plugin enumerates positions, materializes drafts, and saves each locale slot via execCommand('insertText') + a Save-button event-chain click — Chrome stays in the background, browser session intact.