diff --git a/.agents/skills/linkedin-search/cli/src/helpers.ts b/.agents/skills/linkedin-search/cli/src/helpers.ts index f4dc18a..1d6da1f 100644 --- a/.agents/skills/linkedin-search/cli/src/helpers.ts +++ b/.agents/skills/linkedin-search/cli/src/helpers.ts @@ -12,9 +12,7 @@ export function writeError(error: string, code: string): void { process.stderr.write(JSON.stringify({ error, code }) + "\n") } -const UA = - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 " + - "(KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36" +const UA = "Mozilla/5.0 (compatible; linkedin-search-cli/1.0)" /** Fetch HTML with exponential backoff on 429/5xx. Returns "" on a 404. */ export async function htmlFetch(url: string): Promise { diff --git a/CHANGELOG.md b/CHANGELOG.md index c8aae20..bdafb83 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -51,6 +51,12 @@ per-file diff commands. ### Fixed +- **The linkedin-search CLI identifies honestly** - its `User-Agent` was a full Chrome + browser string, the last portal CLI still spoofing after #283 and the jobbank/jobdanmark + fix. It now sends `Mozilla/5.0 (compatible; linkedin-search-cli/1.0)`, the same token + format as every other portal. Verified live on both the search and detail endpoints: + identical 200 responses with full content under the honest token. + - **A `.env` was committable** (`.gitignore`, `tools/security_guards.py`). `/add-portal` can generate a skill for a portal that only returns usable content through a paid fetching service, and such a skill reads an API token from the environment - but