Whether you are between roles or aiming for your next step up, a focused search beats a scattered one. The Job Search Command Center is a free, build-your-own AI agent that helps you stay organized, motivated, and moving forward, all from a single source of truth. Think of it as someone in your corner.

It is a template, not a service. You run everything in your own accounts, your pipeline lives in your own Google Sheet, and your data stays entirely under your control. FutureInSites builds AI agents like this for organizations; this one is free for anyone who is searching. The guide below walks you through every step.

Why it helps

No technical skills needed

If you can copy, paste, and follow steps, you can run it. There is nothing to code.

Your data, your accounts

Everything lives in your own Google Sheet and your own accounts. Nothing routes through anyone else.

Open it anytime, anywhere

Because your pipeline is a Google Sheet, you can review, sort, and edit it by hand whenever you like, from any device.

Auditable, with a fail-safe

A spreadsheet you can read means you can always check what the agent did, and you keep a durable backup if anything ever goes sideways.

A clear read on fit

The triage scores your real likelihood of an interview, how well your background matches, and whether the pay lines up, so you know which roles deserve your energy and how much to invest.

Cover letters that fit

It holds your resume, the full job details, and your past notes, so it drafts outreach and cover letters specific to the role instead of generic ones.

Effortless tracking

Give it a quick update in plain language and every role, application, and follow-up stays in order.

A plan that keeps you moving

It turns your pipeline into focused weekly and daily plans, so you always know the next step to take.

What it does

It operates in two modes and infers which one you need automatically. TRIAGE evaluates a new role: paste a job description or a link and it scores the opportunity on three dimensions, assigns a verdict, flags risks and gaps, and saves it. TRACK updates a role already in your pipeline: tell it "I applied today" or "recruiter replied, set to waiting on them" and it finds the right record and updates it without creating a duplicate.

Three more modes round it out. DRAFT writes a cover letter, follow-up email, or LinkedIn reach-out for a specific role, grounded in your resume and that opportunity's details instead of a generic template. DAILY PLAN builds today's job-search plan from the current state of your pipeline. REFRESH ALL runs diagnostics: stale follow-ups, applications with no response, and records missing key information.

The scoring methodology

Every role is scored 0 to 100 on three dimensions, then combined into one weighted number so roles are always comparable:

The weighted score maps to a verdict: Strong Yes (85+), Apply (70 to 84), Investigate (55 to 69), or Pass (below 55). Anything scoring 55 or above is automatically saved to your pipeline.

1 · Choose your AI
2 · Choose your surface

How it works

The Command Center is four small pieces wired together. Your custom GPT is the brain. It talks to a lightweight proxy on Vercel, which forwards requests to a Google Apps Script web app, which reads and writes your Google Sheet. The proxy exists so the key to your spreadsheet is never exposed to the GPT.

Custom GPT OpenAI Proxy Vercel Apps Script Google Google Sheet your data x-api-key api_key read / write
Four pieces. You own all of them. Each user deploys their own stack, so every pipeline is fully private.
What you'll need: a Google account, a Vercel account (the free Hobby tier is plenty), and a ChatGPT account that can create custom GPTs (Plus, Team, or Enterprise). No coding experience required, just careful copying and pasting.

Build your own

Five steps, about 30 minutes. Work top to bottom. Every file referenced here is in the kit at the bottom of the page, and the long ones are shown inline with a copy button.

1Create your Google Sheet

Create a new Google Sheet. Rename the first tab to exactly Job Search Command Center - Opportunities. Paste the header row below into row 1, starting in cell A1. These column names are the contract between the Sheet and everything else, so keep them exactly as written.

sheet-headers.txt — paste into row 1
Loading…

The header row is the single tab-separated line in the file. Columns are matched by name, not position.

2Deploy the Apps Script

In your Sheet, open Extensions → Apps Script. Delete any starter code, paste the script below, and save. Then open Project Settings (the gear) and under Script Properties add a property named API_KEY with a long random string as its value. Keep that value handy.

Finally, Deploy → New deployment → Web app. Set Execute as to Me and Who has access to Anyone, then deploy and copy the resulting web app URL (it ends in /exec). That URL is your APPS_SCRIPT_URL.

apps-script.gs
Loading…

3Deploy the Vercel proxy

The proxy is two small serverless functions plus a package.json. The simplest path: download the three files from the kit, put them in a folder with proxy.js and proxy-bulk.js inside an api/ subfolder and package.json at the top, push it to a new GitHub repo, and import that repo into Vercel as a new project. No build settings to change.

Before your first successful call, add three Environment Variables in Vercel → Project → Settings → Environment Variables, then redeploy:

NameValue
PROXY_TOKENA long random string you invent. Your GPT will send this as its API key.
APPS_SCRIPT_URLThe Apps Script web app URL from step 2 (ends in /exec).
APPS_SCRIPT_KEYThe API_KEY value you set on the Apps Script in step 2.

Your three endpoints become /api/proxy (GET to read, POST to write one) and /api/proxy-bulk (POST to write many). Here are both functions:

api/proxy.js
Loading…
api/proxy-bulk.js
Loading…
Quick test: once env vars are set and you've redeployed, run this in a terminal (swap in your values). A 200 with { "opportunities": [] } means the whole chain works.
terminal
curl -H "x-api-key: YOUR_PROXY_TOKEN" "https://YOUR-PROJECT.vercel.app/api/proxy?limit=1"

4Create the custom GPT

In ChatGPT, go to Explore GPTs → Create, then open the Configure tab. Fill it in:

gpt-instructions.txt — paste into Instructions
Loading…
conversation starters
TRIAGE: Evaluate and prioritize a new role (Paste a job description or link)
TRACK: Update the status of an existing opportunity (e.g., "I applied today" or "Recruiter replied, set to waiting on them")
DRAFT: Write a cover letter, follow-up email, or LinkedIn reach-out
DAILY PLAN: Create today's job-search plan (Assume follow-ups later today unless I say otherwise)
REFRESH ALL: Run diagnostics on my pipeline (Flag stale follow-ups, no-response applications, and missing info)

Add the Action

Scroll to Actions → Create new action. Set Authentication to API Key, auth type Custom, with custom header name x-api-key, and paste your PROXY_TOKEN as the key. Then paste the schema below into the Schema box and change the one servers URL near the top to your own Vercel project URL.

openapi-schema.json — paste into Schema
Loading…
Use the Test button next to each action in the builder to confirm the GPT can reach your proxy before you rely on it. If you later want to share your GPT beyond "Only me," OpenAI requires a valid privacy policy URL on any GPT that uses Actions.

5Personalize it, then test

The published instructions ship with a placeholder where your background goes, because OpenAI caps instructions at 8,000 characters and a full resume would not fit. The GPT solves this for you. Open your new GPT and type setup. It will ask for your resume, then return a tight CANDIDATE PROFILE block sized to fit. Copy that block, open Configure → Instructions, replace the placeholder block with it, and save.

Now test the real thing. Start a TRIAGE: paste any job description and confirm the GPT scores it and writes a row to your Sheet. Then test TRACK by updating that same role. If both land in the Sheet, you're done.

Once it's personalized, the workflow is simple: paste roles in, let it score and save, and ask for a daily plan. Your pipeline stays current without you maintaining a spreadsheet by hand.

The kit

Every file, ready to download. Right-click and save, or open and copy.

How it works

The Command Center is a chain of small pieces you own end to end. Claude is the brain. It reaches your pipeline through a custom connector, which talks to a tiny MCP server on Vercel, which forwards each request to a Google Apps Script web app that reads and writes your Google Sheet. The server holds the key to your spreadsheet, so it is never exposed to Claude.

Claude Cowork or Chat Connector in Claude MCP Server Vercel Apps Script Google Google Sheet your data tools MCP POST + key read / write
Five pieces. You own all of them. Each user deploys their own stack, so every pipeline is fully private.
What you'll need: a Google account, a GitHub account, a Vercel account (the free Hobby tier is plenty), and Claude Pro or Max (custom connectors require a paid plan). No coding experience required, just careful copying and pasting.

Two ways to use it on Claude

One thing to know up front. A custom GPT in ChatGPT gives you clickable starter buttons layered over your subscription chat, for free. Claude has no equivalent no-code button UI over its subscription chat. So this guide gives you two surfaces, both running on the same backend, and you pick the one that fits:

Cowork (a desktop panel)

A pinned panel with a real dashboard: live pipeline counts and buttons for the model-free actions (Daily Plan, Refresh, Track). Triage and Draft are typed into the Cowork chat, since those need the model. Lives on one desktop machine.

Claude Chat (a Project)

A Claude Project that works anywhere, including mobile, with the full-quality model for every mode. No buttons: you drive it by typing commands from a cheat-sheet that ships with the kit.

Same connector, same Google Sheet underneath, so the two stay in sync. Many people run Cowork at the desk and Chat on the go. Use the surface selector at the top of the page to switch the Part 2 steps below between the two. Cowork is the default.

Build your own

Part 1 builds the backend and is the same whichever surface you pick. Part 2 sets up your chosen surface. Every file referenced here is in the kit at the bottom of the page, and the long ones are shown inline with a copy button.

Part 1: the backend (both surfaces need this)

1Create your Google Sheet

Create a new Google Sheet. Rename the first tab to exactly Job Search Command Center - Opportunities. Paste the header row below into row 1, starting in cell A1. These column names are the contract between the Sheet and everything else, so keep them exactly as written.

sheet-headers.txt · paste into row 1
Loading…

The header row is the single tab-separated line in the file. Columns are matched by name, not position.

2Deploy the Apps Script

In your Sheet, open Extensions → Apps Script. Delete any starter code, paste the script below, and save. Then open Project Settings (the gear) and under Script Properties add a property named API_KEY with a long random string as its value. Keep that value handy.

Now Deploy → New deployment → Web app. Set Execute as to Me and Who has access to Anyone, then deploy and copy the resulting web app URL (it ends in /exec). That URL is your APPS_SCRIPT_URL. The first time, you will see an unverified-app warning on your own script: click Advanced → Go to project (unsafe) → Allow. That is expected.

apps-script.gs
Loading…

3Put the MCP server on GitHub

The MCP server is a tiny Next.js app: one route file plus three config files. Create a new GitHub repository (any name, public or private), then add the files so that package.json sits at the repo root and the route file sits at app/api/[transport]/route.ts, a folder literally named [transport], brackets and all. The easiest way to create the nested folders on GitHub is Add file → Create new file and type the full path app/api/[transport]/route.ts into the name box. Here is the route file:

app/api/[transport]/route.ts
Loading…

The line createMcpHandler(fn, {}, { basePath: "/api" }) is required. Without it the endpoint returns 404. The matching package.json, tsconfig.json, and next.config.mjs are in the kit.

4Deploy to Vercel

In Vercel, choose Add New → Project and import your repo. It auto-detects Next.js, so leave the build settings alone. Before you deploy, expand Environment Variables and add these two, then deploy:

NameValue
APPS_SCRIPT_URLThe Apps Script web app URL from step 2 (ends in /exec).
APPS_SCRIPT_KEYThe API_KEY value you set on the Apps Script in step 2.

When the deploy finishes, your MCP endpoint is your project URL plus /api/mcp, for example https://your-project.vercel.app/api/mcp.

If you test the Apps Script with curl: it 302-redirects, so use curl -L --data '...'. Do not use curl -X POST, which forces POST across the redirect and returns 405.

5Add the connector in Claude

In Claude, go to Customize → Connectors → the + → Add custom connector. Paste your /api/mcp URL, leave OAuth blank, and save. Open the connector and set its tools to Always allow. To confirm the whole chain works, ask in any chat: read my job pipeline. An empty list (or your rows) means you are wired up.

6Give it your background

The instructions below are the agent's brain. The profile section ships as a placeholder. Either fill in candidate-profile-template.txt yourself and paste it in place of the placeholder, or paste the whole instructions into your surface (next), type setup, and let the agent build a right-sized profile from your resume, then paste that back over the placeholder.

project-instructions-template.txt
Loading…

Part 2: set up your surface

You picked your surface with the selector at the top of the page. Switch it any time and the steps below swap to match.

Cowork: a dashboard panel

Cowork gives you a pinned panel with live pipeline counts and one-click Daily Plan, Refresh, and Track. Add the template below as a pinned live artifact in Cowork, then replace every YOUR_CONNECTOR_ID in it with your connector's id. You can read the id off your connector's tool names, which look like mcp__<id>__get_opportunities.

Triage and Draft are typed, not buttons. A pinned panel cannot run the model, so those two run in the Cowork chat: type triage this: then paste a job, or draft a cover letter for the Acme role. The three buttons on the panel are model-free and run instantly.
cowork-control-panel-template.html
Loading…

Claude Chat: works anywhere

The Chat option is a Claude Project, so it opens from any browser, the desktop app, or your phone, and every mode runs on the full-quality model. There are no buttons: you drive it by typing commands. Set it up in four steps:

  • Create a Claude Project named Job Search Command Center.
  • Paste your finished project-instructions-template.txt into the Project's instructions.
  • Enable the Job Search Command Center connector for the Project.
  • Add the cheat-sheet below as a Project file (or paste its commands at the top of the instructions) so the commands travel with the agent.

The five commands

Claude Chat has no buttons, so these are what you type. Keep the cheat-sheet just below in your Project, or type menu any time and the agent lists them for you.

Triage

Score and save a new role. Type Triage this role: then paste a job description or link.

Track

Update a role you already have. Type Track update: Acme - I applied today.

Draft

Write tailored outreach. Type Draft a cover letter for the Acme role.

Daily plan

Build today's prioritized actions. Type Build today's daily plan.

Refresh all

Run pipeline diagnostics. Type Refresh all: flag stale follow-ups and records missing info.

The full cheat-sheet is below. Add it as a file in your Project so the list is always one click away.

how-to-use-claude-chat.txt · the command cheat-sheet
Loading…

Troubleshooting

The kit

Every file, ready to download. Right-click and save, or open and copy.

Published by FutureInSites