# Crosswalk Mcp

> AI-native, MCP-first career copilot. Local-first. Zero API keys. Bring your own model.

- **Type:** MCP server
- **Install:** `agentstack add mcp-mohakgarg5-crosswalk-mcp`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [Mohakgarg5](https://agentstack.voostack.com/s/mohakgarg5)
- **Installs:** 0
- **Category:** [Search](https://agentstack.voostack.com/c/search)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [Mohakgarg5](https://github.com/Mohakgarg5)
- **Source:** https://github.com/Mohakgarg5/crosswalk-mcp

## Install

```sh
agentstack add mcp-mohakgarg5-crosswalk-mcp
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# Crosswalk 🧭

**A job-search assistant that runs on _your_ computer.** It finds jobs that fit you, writes a tailored résumé + cover letter for each, fills in the application form, and — if you let it — submits it for you. Hands-off.

Local-first · your data never leaves your machine · bring your own AI.

---

## Contents

- [What is this?](#what-is-this)
- [Two ways to use it](#two-ways-to-use-it)
- [Quick setup (3 steps)](#quick-setup-3-steps)
- [Add your AI key](#add-your-ai-key)
- [Connect your email inbox (Gmail app password)](#connect-your-email-inbox-gmail-app-password)
- [How to use the app](#how-to-use-the-app)
- [Tell it about yourself once (the questionnaire)](#tell-it-about-yourself-once-the-questionnaire)
- [What it can and can't auto-apply to](#what-it-can-and-cant-auto-apply-to)
- [Use it inside Claude or other AI tools](#use-it-inside-claude-or-other-ai-tools)
- [Run it automatically (hands-off)](#run-it-automatically-hands-off)
- [Try it safely first](#try-it-safely-first)
- [Troubleshooting](#troubleshooting)
- [Updating to a newer version](#updating-to-a-newer-version)
- [Your privacy](#your-privacy)
- [For developers](#for-developers)
- [Contributing](#contributing)
- [License](#license)

---

## What is this?

You tell it _"I'm looking for **Product Manager** jobs"_ and it:

1. 🔎 **Finds** matching jobs across thousands of companies.
2. ✍️ **Rewrites your résumé** to fit each job — using only true facts from your real résumé.
3. 📝 **Writes a cover letter** and **answers the application questions** (text, dropdowns, checkboxes, and all).
4. ✅ **Fills in the form** — including embedded (iframe) forms, searchable dropdowns, multi-page wizards, and the required consent boxes — and, if you allow it, clicks **Submit**.
5. 📧 **Gets past email verification** — if a site emails you a code or a "verify your email" link mid-application, it reads your inbox, enters the code (or opens the link), and finishes. (Optional — set it up under **Settings → Email inbox**.)
6. 👀 **Keeps watching**, so the moment a new matching job is posted, it grabs it.

Everything runs on **your own laptop**. Your résumé, jobs, and history live in one folder on your computer (`~/.crosswalk`). Nothing is uploaded to anyone.

---

## Two ways to use it

| | What it is | Best for |
|---|---|---|
| **🖥️ The App** | A website that runs on your own computer (`localhost:3000`) | Everyone — this guide is mostly about this. |
| **💬 Inside your AI** | Plugs into Claude Desktop / Cursor / Codex and you just chat | People who already use an AI assistant. |

You can use either, or both — they share the same data.

---

## Quick setup (3 steps)

> You only do this once. It takes about 5 minutes. No coding needed.

### Step 1 — Install Node.js (the engine that runs the app)

1. Go to **[nodejs.org](https://nodejs.org)**.
2. Click the big green **"LTS"** button (this needs to be **version 24 or newer** — the LTS button is the right one). It downloads a file.
3. Open the file and click **Next → Next → Install**, like installing any app.

### Step 2 — Download Crosswalk

1. Open **[the Crosswalk page on GitHub](https://github.com/Mohakgarg5/crosswalk-mcp)**.
2. Click the green **`<> Code`** button → **Download ZIP**.
3. Find the ZIP (usually in **Downloads**) and **double-click it to unzip**.
4. You'll get a folder named **`crosswalk-mcp-main`**. Move it somewhere easy, like your **Desktop**.

### Step 3 — Start it (just double-click)

Open the `crosswalk-mcp-main` folder, then:

- **Mac:** right-click **`start.command`** → **Open** → **Open**.
  _(Right-click only the first time. After that, a normal double-click works.)_
- **Windows:** double-click **`start.cmd`**.
  _(If you see "Windows protected your PC", click **More info → Run anyway**.)_

A window opens. The first time, it spends about a minute getting ready, then your **browser opens to the app automatically**. 🎉

> If the page shows an error at first, wait a few seconds and **refresh** — it's just warming up.
> To **stop** it, close that window. To start again, double-click the same file.

---

## Add your AI key

The app uses an AI ("the brain") to write your résumés and answers. Here's how to get a key:

1. Make a free account at **[console.anthropic.com](https://console.anthropic.com)**.
2. Go to **API Keys → Create Key** and **copy** the code (it starts with `sk-ant-`).
3. In the app, click **Settings**, paste it in the **API key** box, and click **Save**.

> 💡 You pay Anthropic directly — usually a few cents per résumé. **Finding and tracking jobs works without a key**; you only need it for writing résumés and answers.
>
> Don't want to set it up ahead of time? Fine — the first time an AI action needs a key, the app asks for it right there in a popup, saves it, and continues.

---

## Connect your email inbox (Gmail app password)

_Optional, but it lets the agent finish applications that email you a verification code or link._ There is **no "Sign in with Google" button** — Crosswalk reads your inbox locally over IMAP using an **app password**, which is a special 16-character password that only works for this one purpose and can be revoked anytime.

**Gmail — step by step:**

1. App passwords require 2-Step Verification. If you don't have it: [myaccount.google.com/security](https://myaccount.google.com/security) → **2-Step Verification** → turn it on.
2. Go to **[myaccount.google.com/apppasswords](https://myaccount.google.com/apppasswords)** (sign in if asked).
3. Under "App name" type `Crosswalk`, click **Create**, and **copy the 16-character password** it shows (spaces don't matter).
4. In the app: **Settings → Email inbox** → provider **gmail** → enter your Gmail address and paste the app password → **Test connection** → **Save**.

**iCloud Mail:** [appleid.apple.com](https://appleid.apple.com) → Sign-In and Security → **App-Specific Passwords** → generate one, then same as step 4 with provider **icloud**.

**Outlook/Hotmail:** works with your normal password in many cases; if not, create an app password at [account.microsoft.com/security](https://account.microsoft.com/security).

> 💡 **Privacy tip:** put a tagged alias like `you+apply@gmail.com` on your applications (set it in your Profile). It still lands in your inbox, Crosswalk only reads the verification mail, and your personal address stays off job-site mailing lists.
>
> 🔒 Read-only: Crosswalk never sends mail, never marks anything read, and the password never leaves `~/.crosswalk` on your machine.

---

## How to use the app

Use the left-hand menu, roughly in this order:

1. **Profile** — write a few sentences about yourself (e.g. _"PM, 3 years at Acme, want NYC or remote, need visa sponsorship"_). Save.
2. **Résumés** — paste your résumé, name it, click **Add**. (You can delete a résumé later too — it cleans up its applications and cached fit scores.)
3. **Settings → Answer bank** — click **"Load common defaults"** (safe answers for standard questions like work authorization and the optional EEO/diversity ones), then add your own, e.g. `salary → $130,000`.
4. **Jobs** — type a role (like `product manager`) and click **Search jobs**. You get real jobs from many companies.
5. **Apply** — click **draft →** on a job to review it first, or **Auto-apply** at the top of the results to handle them all.
6. **Settings → Email inbox** _(optional)_ — paste an **app password** for your email so the agent can read verification codes/links and finish those applications on its own. Step-by-step: [Connect your email inbox](#connect-your-email-inbox-gmail-app-password). Leave it blank to skip — you'll just complete those few by hand.
7. **Pipeline / Alerts / Inbox** — track every application, see new-match alerts, and route recruiter emails to the right application.

---

## Tell it about yourself once (the questionnaire)

The first time you open the app you get a short **setup wizard** — re-run it anytime at `localhost:3000/onboarding`. Besides your name and résumé, it asks the questions real applications repeat forever:

- **Work eligibility** — visa status, work authorization, sponsorship.
- **Education** — school, degree, discipline, years. (The school pickers on Greenhouse-style forms fill from this.)
- **Work preferences** — remote/hybrid/onsite, willingness to relocate, earliest start date, "how did you hear about us".
- **Voluntary self-identification (EEO)** — gender, ethnicity, veteran and disability status. Every question has a *"Prefer not to say"* option, and that is exactly what goes on forms if you pick it.

Your answers land in a local **answer bank** (plus your profile) in `~/.crosswalk`. When an application asks one of these questions — in any phrasing close enough to match — Crosswalk uses **your** saved answer instead of guessing. Anything the bank doesn't cover falls back to the AI, which only uses true facts from your résumé and profile.

See, add, and edit every saved answer under **Settings → Answer bank**. Saving an answer with the same question label **replaces** the old one, so re-running the wizard updates your answers rather than duplicating them. Every step is skippable.

---

## What it can and can't auto-apply to

Honesty section. An application is only marked **submitted** when there's real evidence (the page navigated to a confirmation, showed a "thank you", or passed an email-verification gate) — a mere button click is never trusted. When something can't be finished automatically, you get an **alert** with the link to finish it yourself instead of a fake green checkmark.

| Situation | What happens |
|---|---|
| Direct ATS forms (Greenhouse, Lever, Ashby, …) | ✅ Fills and submits end-to-end, including multi-page wizards and emailed verification codes. |
| Job-board listings (The Muse) | It resolves the **"Apply on company site"** link and fills the real form behind it. |
| Account-walled sites (Workday & friends) | ⚠️ It can't create accounts for you. You get a **"Form needs you"** alert with the direct link — finish it by hand. |
| Expired/removed listings | ⚠️ Told straight: _"This listing has expired."_ Job boards keep dead listings around; it's them, not you. |
| Submit clicked but nothing confirmed | ⚠️ Stays in your pipeline as a draft with a **"Submission not confirmed"** alert — check it manually. |

**The real proof an application landed is the confirmation email from the company.** If you connected your inbox, watch for it; no email after an hour usually means it needs your hand.

---

## Use it inside Claude or other AI tools

Crosswalk is also an **MCP server**, so it can plug straight into your AI assistant. Then you just **chat** with it, and it uses the AI you already pay for — **no separate API key needed**. It shares the **same data** as the app, so your profile, résumés, and answer bank carry over.

### First, build it once

In the `crosswalk-mcp-main` folder (in a terminal):
```bash
npm install
npm run build:core
```

Then you'll need the **full path** to `packages/core/dist/cli.js`.
_Tip: on Mac, right-click the `dist` folder → "Copy … as Pathname"; or drag the file into the terminal to print its path._ In the examples below, replace `CLI_PATH` with something like:
`/Users/you/Desktop/crosswalk-mcp-main/packages/core/dist/cli.js`

### Then connect your AI tool (pick yours)

**Claude Desktop** — edit `~/Library/Application Support/Claude/claude_desktop_config.json` (Mac) or `%APPDATA%\Claude\claude_desktop_config.json` (Windows):
```json
{ "mcpServers": { "crosswalk-mcp": { "command": "node", "args": ["CLI_PATH"] } } }
```

**Claude Code (CLI):**
```bash
claude mcp add crosswalk-mcp -- node CLI_PATH
```

**Cursor** — edit `~/.cursor/mcp.json`:
```json
{ "mcpServers": { "crosswalk-mcp": { "command": "node", "args": ["CLI_PATH"] } } }
```

**OpenAI Codex CLI** — edit `~/.codex/config.toml`:
```toml
[mcp_servers.crosswalk-mcp]
command = "node"
args = ["CLI_PATH"]
```

**Gemini CLI** — edit `~/.gemini/settings.json`:
```json
{ "mcpServers": { "crosswalk-mcp": { "command": "node", "args": ["CLI_PATH"] } } }
```

**opencode** — edit `~/.config/opencode/config.json`:
```json
{ "mcp": { "crosswalk-mcp": { "type": "local", "enabled": true, "command": ["node", "CLI_PATH"] } } }
```

**Any other MCP client:** point it at the command `node` with the argument `CLI_PATH` (it's a stdio MCP server).

Then **restart the app**. (These tools occasionally tweak their MCP config format — if it doesn't connect, check your tool's own "MCP servers" docs.)

> **Prefer the published version?** Replace `node CLI_PATH` with `npx -y crosswalk-mcp@latest`, or for Claude Desktop / Cursor / Windsurf just run `npx crosswalk-mcp install` to auto-configure it. ⚠️ The published npm version can be **behind** the newest features in this repo — the local build above is recommended.

### Then just talk to it

> _"Set up my profile: PM, 3 years at Acme, want NYC or remote, need visa sponsorship."_
> _"Add my résumé from ~/Documents/cv.pdf."_
> _"Find PM roles at H‑1B sponsors. Why am I a fit for the Stripe one?"_
> _"Tailor my résumé for it and draft an application."_ · _"Apply to it."_ · _"Show my pipeline."_

### What's available where

- **In chat (MCP):** the core loop — find jobs (your watched companies), score/explain fit, tailor résumés, draft + **apply** (with the smart form-filling: iframe-embedded forms, multi-page wizards, searchable dropdowns, checkboxes, required-consent boxes, emailed verification codes/links, answer bank), track your pipeline, schedule refreshes.
- **App + the watcher only (for now):** open-web role search across thousands of companies, batch auto-apply, the continuous watcher, and editing the answer bank.

---

## Run it automatically (hands-off)

Set this up **in the app first** (it stores your key, watches, and settings):

1. **Settings** → set **Submit policy = auto** and **Weekly cap = 0** (0 means unlimited).
2. **Jobs** → search a role → **Save as watch** → tick **auto-apply new matches**.

Then it applies automatically while the app (or the chat session) is open. To keep it going **even with the app closed**, run the watcher daemon from the folder (in a terminal):

```bash
npm run watch       # checks for new matching jobs every 15 minutes and applies to them
```

**Login-walled sites (Workday, etc.):** see the note inside **Settings → Autonomous apply** — it explains how to run with a browser that stays logged into your accounts.

---

## Try it safely first

Before letting it submit for real:

1. **Settings → Submit policy = review** (it fills the form but does **not** click Submit).
2. Find one job → **draft →** → check the tailored résumé and answers look right.

Once you trust it, switch to **auto**.

> ⚠️ **A friendly heads-up:** blasting out *thousands* of auto-written applications can hurt your chances and may break some sites' rules. Start with a few, check the quality, and turn up the volume only when you're happy. The more you fill in your **answer bank**, the better the answers.

---

## Troubleshooting

| Problem | Fix |
|---|---|
| Double-click does nothing / "can't be opened" (Mac) | Right-click `start.command` → **Open** → **Open**. |
| "Windows protected your PC" | Click **More info → Run anyway**. |
| It says **Node.js is not installed** | Do [Step 1](#quick-setup-3-steps), then start again. |
| The page shows an error at first | Wait a few seconds and **refresh** — it's still warming up. |
| Port `3000` is busy | Close other apps using it, or in a terminal run `PORT=3001 npm run gui` and open `localhost:3001`. |
| "No Anthropic API key set" | Add your key in **Settings** (see [Add your AI key](#add-your-ai-key)). |
| Auto-apply says "browser not installed" | In a terminal: `npx crosswalk-mcp install-browser`. |
| An application is flagged **"Email verification needed"** | The site emailed a code/link the agent couldn't read in time. Add your inbox under **Settings → Email inbox** (app password), or finish that one by hand — the form i

…

## Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [Mohakgarg5](https://github.com/Mohakgarg5)
- **Source:** [Mohakgarg5/crosswalk-mcp](https://github.com/Mohakgarg5/crosswalk-mcp)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/mcp-mohakgarg5-crosswalk-mcp
- Seller: https://agentstack.voostack.com/s/mohakgarg5
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
