A recruiter that works for you.
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗Find out if you're a match before you apply, then walk in prepared.
Paste a job posting and Recruiter BFF checks the key requirements against your resume, scores the match from 1 to 5, names the gaps, and tells you to apply or skip. When you land the interview, it hands you a guide built from your own background.
It's a free plugin for Claude Cowork (with a paid Claude plan and the Claude desktop app) and for Codex (best on a paid ChatGPT plan). No Claude or Codex? The no-install kit brings the fit check and interview guides to ChatGPT or any AI chat. It never applies to jobs or contacts anyone for you, and everything lives in plain files on your computer. Formerly Job Search Agent.
It runs when you ask, on a normal laptop. Nothing to host: no servers of your own, no scrapers, no always-on machine.
Tell it you have an interview and paste the posting. Every guide opens with four things, in this order:
Above them: a one-line verdict, the one big risk, and what the next round tests. Below them: a plan for each interviewer, company research with sources, likely questions with answers in your words, scripts for the awkward questions and the pay question, and a method for case rounds.
After each round it debriefs you while it's fresh, updates the guide, and drafts thank-you notes. Say "practice my interview" and it plays the interviewer, with honest critique after every answer. Your best stories go into your story bank, so every guide starts from material you've already polished.
Every search asks the same questions in different words, first in the application and then in the interview. Your best stories live in a story bank (interview-stories.md), in your own words, with the numbers you can stand behind, so you only have to tell each one once.
Paste a posting, or a link, and ask "should I apply?"
Real answers from a real run. Dana Brooks is a demo job seeker, a senior project manager in New York. The postings, scores, and skips are real.
It tells you to skip, too. 2.7 out of 5 in ChatGPT, with the one strong match it found.
Same straight answer in Claude. Open 19 weeks, and missing the one thing the posting wants most.
One tracker, either app. Claude built this tracker, and ChatGPT reads the same plain files.
Being one of the first 50 applicants beats being a polished 200th. Say "scan for jobs":
You need a paid Claude plan (Pro, Max, Team, or Enterprise) and the Claude desktop app for Mac or Windows.
job-search/ inside it.The skills are ready in your next conversation. Installing from Chat or Cowork adds them to your whole account, Claude Code sessions in the app included; installing from the Code side adds them to one project only. To update, download the new file and upload it the same way. Updates keep everything you've saved.
If you see "Skill files must have a .skill, .zip, or .md file extension," you're on the Skills tab. Use the Plugins tab instead.
You need Codex, in the ChatGPT desktop app or the Codex CLI, and Python 3 on your computer for the tracker and contacts (on Windows, from python.org or the Microsoft Store). It works best on a paid ChatGPT plan, with GPT-6.1 Sol (the default there). The free plan's model can get scans and fit checks wrong, so if you're on it, check what it hides and how it scores.
In the ChatGPT desktop app:
kevinmmiddleton/recruiter-bff, and click Add marketplace.Use Work, not Chat: the plugin's Try now opens a Chat conversation, and the plugin doesn't load there. To update, open Settings, then Plugins, then the Marketplace tab, and click Upgrade next to Recruiter BFF.
In the Codex CLI, run these in a terminal (Terminal on a Mac, PowerShell on Windows):
codex plugin marketplace add kevinmmiddleton/recruiter-bff
codex plugin add recruiter-bff@recruiter-bff
Then start Codex in the folder you want to use for your job search and say "set up my job search." To update, run codex plugin marketplace upgrade. If your terminal says codex isn't found, use the app steps above (the app doesn't add the command), or install the CLI with OpenAI's one-line installer.
Updates keep everything you've saved. Checked on a Mac with the Codex CLI 0.164.0 and the ChatGPT desktop app, on GPT-6.1 Sol.
In the ChatGPT desktop app, Codex can read your saved LinkedIn search in its built-in browser (sign in to LinkedIn there once), and reminders run as scheduled tasks while the app is open. In the Codex CLI, you paste search results in, and reminders are a check-in the first time you open Codex each day, or a calendar file you double-click to add.
Download recruiter-bff-no-install-kit.zip and follow the README inside. Make a project, paste in the kit's instructions, add its method files and your resume, and say "set me up." You get the fit check, interview guides, pasted job lists sorted to what you want, written answers from your story bank, and a tracker. A chat can't save files, scan job sites, or remind you, so it hands you each file to keep when you say "wrap up," you paste in your search results, and you add reminders to your own calendar.
Tested in ChatGPT Projects with ChatGPT's default model. It should work the same way in any AI chat that keeps instructions and files, like a Gemini Gem or Claude Projects; tell me how it goes.
Say "set up my job search" and paste your primary resume (plus an alternate, if you're aiming at a second kind of role). It gives you an honest read on it, drafts your background from it, asks only what's missing (the roles you want, where, your pay floor, your dealbreakers), and builds your searches. Then it offers a first scan.
Later, when you have half an hour, it can help you write a one-page "what I want next" to share with people who can help. It ends in one sentence that makes it easy for anyone to keep an eye out for you.
| Say | What happens |
|---|---|
| "Set up my job search" | Setup, starting from your resume |
| "Scan for jobs" | Fresh roles from your searches and watchlist, filtered to you |
| "Should I apply to this?" | A scored fit check with an apply-or-skip answer |
| "Prep me for my interview with [company]" | An interview guide for every round |
| "Here's how the interview went" | A debrief, an updated guide, and thank-you drafts |
| "Practice my interview" | A mock interview with critique |
| "What's in my pipeline?" | Your tracker as a table, sorted by what needs doing |
| "Who do I know at [company]?" | Matches from your LinkedIn connections, and a next move |
| "Fix this resume bullet" | A truthful rewrite in your voice |
| "Remind me on Mondays and Thursdays" | Check-ins on your days |
job-search/ there.CONNECTORS.md.Everything is in a job-search/ folder inside the folder you connected (in Codex, the folder you opened):
job-search/
├── resume/ # your primary resume (and an alternate), plus plain-text copies every tool reads
├── search-profile.md # your search, pay, dealbreakers, and background (private)
├── looking-for.md # what you want next, in one page you can share
├── job-tracker.csv # your tracker; opens in any spreadsheet app
├── scan-history.csv # roles earlier scans showed, so they don't come back as new
├── interview-stories.md # your story bank, reused in applications and interviews
├── contacts.csv # people at companies you're pursuing, and next moves
├── materials/ # answers.md: application answers worth reusing
└── companies/
└── <company>/ # job-post.md, fit-check.md, interview-guide.md
Your files are yours. There's no Recruiter BFF server. Your assistant (Claude or Codex) reads these files when you ask, the way it reads anything else you share with it, and writes to them only while doing something you asked for. Installing a new version replaces the plugin's skills and keeps everything you've saved. Everything is plain markdown and CSV, so if you stop using the plugin tomorrow, it's all still readable.
Coming from 0.4? The first time you ask it to save something in 1.0, it gives your files the names above if it can, and tells you which ones it renamed. Just asking what's in your pipeline never renames anything, and files you wrote yourself are renamed only if you say yes. Where it can't rename files (Cowork can't from every session), it keeps your current names, which work just as well, and tells you once how to rename them yourself if you'd like. The first time it updates your tracker, it adds two columns: the furthest stage each role reached, and the date of the next thing, filled in from your notes only when a note names one clear upcoming date. The first time it updates your profile, it moves it to the new section names. It tells you each time. Your notes, answers, and entries stay as you wrote them.
Had Job Search Agent? Uninstall it first, so only one of them answers.
It never acts for you. It never applies to a job, sends a message, or contacts anyone. You decide, and you hit send.
| Skill | Say | What it does |
|---|---|---|
job-search-setup | "set up my job search" | Builds your profile from your resume, your searches, and your preferences page |
find-jobs | "scan for jobs" | Pulls and filters fresh roles on demand |
evaluate-role | "should I apply to this?" | Checks a posting is live, scores it, and saves it |
interview-guide-engine | "prep me for my interview" | Guides, debriefs, practice, and the story bank |
application-tracker | "what's in my pipeline?" | Your tracker, follow-ups, weekly review, thank-you drafts |
your-materials | "fix this bullet" | Resume, LinkedIn, and written answers from your story bank, in your voice |
contacts | "who do I know at [company]?" | Your LinkedIn connections matched to your search, and drafts |
job-search-automation | "remind me on Mondays" | Reminders and scheduled scans (in Claude or Codex), and the self-hosted option |
The scored evaluation (dimension scores with action tiers, every requirement traced to your background) and the STAR+R story bank are adapted from career-ops by santifer (MIT), worth knowing about if you want an always-on version of this workflow.
The preferences page, the one-sentence target, and the early-conversation questions are adapted from Phyl Terry's book Never Search Alone: The Job Seeker's Playbook. The wording here is the plugin's own.
Made by Kevin Middleton. Free and open source under the MIT license. More at middleton.io/recruiter-bff.