Amistad is a terminal-native job search agent. It stores a local search profile, drives LinkedIn Jobs through Playwright MCP, applies a recent-posting filter, extracts job cards, and returns structured output for both humans and automation.
- stores a reusable job search profile
- opens LinkedIn Jobs through a logged-in Brave session
- searches by role
- applies the
Past 24 hoursfilter - extracts live LinkedIn job cards
- prints readable terminal output or machine-readable
json/toon - saves results locally for later listing and export
- Node.js 18 or newer
- pnpm
- Brave Browser
- Playwright MCP browser extension installed in Brave
pnpm install
pnpm build
pnpm link --globalAfter linking, the command is available as:
amistadAmistad uses Playwright MCP extension mode by default so it can work with your existing Brave session, including cookies and LinkedIn login state.
Create a local .env file:
cp .env.example .envSet the extension token:
PLAYWRIGHT_MCP_EXTENSION_TOKEN=Optional overrides:
PLAYWRIGHT_MCP_COMMAND=
PLAYWRIGHT_MCP_EXECUTABLE_PATH=/Applications/Brave Browser.app/Contents/MacOS/Brave Browser
PLAYWRIGHT_MCP_USER_DATA_DIR=/Users/you/Library/Application Support/BraveSoftware/Brave-BrowserCreate a search profile:
amistad profileRun a live LinkedIn search:
amistad linkedin searchThe extracted jobs are saved automatically. List saved jobs later:
amistad jobsamistad profile
amistad profile show
amistad jobs
amistad report
amistad export
amistad linkedin search
amistad config
amistad doctoramistad linkedin search
amistad linkedin search --json
amistad linkedin search --format toonUseful options:
--extension-token <token> Playwright MCP extension token
--managed-browser Launch a separate Brave profile instead of extension mode
--new-tab Open LinkedIn Jobs in a new MCP browser tab
--debug Print MCP diagnostics
--keep-open Keep the browser session open after the searchHuman-readable:
amistad linkedin search
amistad jobs
amistad reportJSON:
amistad linkedin search --json
amistad jobs --format jsonTOON:
amistad linkedin search --format toon
amistad jobs --format toonReports:
amistad report
amistad report --format markdown --output .amistad/report.md
amistad report --format jsonAmistad stores local runtime files in .amistad/:
.amistad/
config.json
search-profile.json
jobs.jsonGenerated exports such as jobs.md or jobs.toon may also be written there.
Run directly from TypeScript:
pnpm devBuild:
pnpm buildType-check:
pnpm exec tsc --noEmitStart the built CLI:
pnpm startsrc/
commands/
core/
providers/
linkedin/
schemas/commands/contains CLI command wiringcore/contains storage, output, and MCP infrastructureproviders/linkedin/contains live LinkedIn browser automation and normalizationschemas/contains validated data contracts