A Mac app that turns the AI CLI you already have into a personal recruiter.
Download for Mac · Docs · GitHub
CareerRat itself costs nothing. Your AI provider may have its own plan or usage costs.
CareerRat reads the full job posting against your location and compensation floor, fit, and dealbreakers before it recommends anything. It builds resumes, cover letters, and screening answers from your real experience, then fills supported application forms for your review. It never presses the final Submit button.
Pay rules work for salaried, hourly, tipped, and commissioned jobs. You can set a guaranteed base floor, a minimum for annual cash earnings that includes wages, tips, commission, and cash bonuses, or both. Equity and benefits never count as cash earnings.
The search stays together in one local workspace: conversations, jobs, recruiter threads, missions, files, follow-ups, interviews, and outcomes. You can leave a thread, come back later, and CareerRat restores the relevant state without depending on one AI vendor's session history. CareerRat owns those workflows and threads, so the execution layer stays provider-neutral.
The current macOS release is a signed and notarized Apple Silicon app for macOS 12 or newer.
- Download the latest
.dmg. - Open CareerRat.
- Choose Claude Code or Codex if it is ready. If neither is installed, CareerRat offers in-app Claude Code setup and the official OpenAI Codex setup guide.
Claude Code and
OpenAI Codex are CareerRat's only
supported product runtime choices. Both use the same CareerRat-owned workflows,
skills, and durable state. The packaged app invokes the selected installed CLI
directly and never falls back to or silently switches providers. A runtime
becomes Ready only after local availability, authentication, and its readiness
check pass.
The AI controls use the same product language for either runtime. Automatic chooses by task, keeping Paul on the strongest coaching path while routine search and extraction work stays efficient. Faster, Balanced, and Best let you choose the overall quality level, while Thinking depth controls how long the selected runtime reasons. The setting never ranks Claude Code against OpenAI Codex or silently changes providers.
CareerRat gives Claude Code and Codex the same complete workflow, keeps long searches and application missions durable across navigation and restart, and turns finite questions into normal clickable choices that can also be answered in text. Search combines built-in boards with AI open-web discovery, keeps AI leads clearly unverified, then checks readable full postings against location, office-day, compensation, seniority, eligibility, and fit rules before treating them as verified.
Application questions now stay with the exact job thread. CareerRat can prepare a reviewed form through the final safe step, but CAPTCHA, sensitive attestations, uncertainty, and the final Submit control always stay with the candidate. The Mac app checks for signed updates, downloads them in place, and waits for an explicit Restart and install.
The Windows x64 installer passed build, install, launch, export, and uninstall QA. A public Windows installer will ship only after SignPath Foundation signing is available; SignPath requires project reputation CareerRat does not yet have. See Windows status.
CareerRat opens at a designed desktop size of 1280 by 860. The window is resizable, maximizable, and supports full screen, with a minimum working size of 1100 by 680. There is no mobile app or Intel Mac build.
If CareerRat does not find Claude Code or Codex, it shows both supported choices in plain English. CareerRat can install Claude Code inside the app. Claude Code needs a paid Claude plan. Pro is enough; Max provides more usage. You can get Claude through Scott's referral, then click Install inside CareerRat. The app runs Anthropic's official installer, shows its progress in the CareerRat window, and reports a clear retry if it fails. Click Sign in, finish in the browser, and return to CareerRat. The app checks for Claude in the background and also keeps a visible Check setup button. To use Codex, expand Set up OpenAI Codex instead and follow its official install guide.
Choose the available AI engine, then drop a PDF, DOCX, image, or text resume into the conversation, or just start talking. Paul fills in “What Paul knows” beside the chat as it learns your target roles, location rules, compensation floor, dealbreakers, evidence, and honesty boundaries.
Most profile sections are editable as a whole. You can open an editor or ask Paul to change them in the conversation. Application defaults is the exception: it stays local on this computer and never goes through Paul. Paul speaks in plain English. When it needs an abstract choice, it gives concrete examples instead of making you decode job-search jargon. For example: “What would make one job worth applying to before another? The kind of work, a schedule and pay that fit, or room to grow?” Progress saves continuously. Once the minimum search profile is ready, CareerRat starts the first location-aware search while the rest of onboarding continues. When setup finishes, the app opens Search and says clearly whether that search is running, found matches, needs a retry, or is ready to start.
From there, ask it to find roles, evaluate a posting, tailor an application, prepare an interview, or pick up a saved thread. Tool work appears as compact activity rows in the conversation, so you can see what it is reading, searching, and writing without a wall of approval prompts.
CareerRat combines built-in public job-board and ATS sources with broad AI open-web discovery. Source setup selects the applicable built-in sources from the candidate's saved roles. CareerRat then discovers additional specialist boards and employer pages for that search. AI search can also keep a credible role from a board, employer page, or aggregator when automated fetching cannot read the whole job description.
When a saved site is added or first used and login is needed, CareerRat asks “Do you want to log into LinkedIn so I can use it?” with Yes and No buttons. Yes opens that exact saved search in CareerRat's visible browser. No skips the site and keeps searching everywhere else. There is no separate search permission or Settings checklist.
Those partial discoveries are not presented as proven jobs. Search labels them AI · unverified and preserves the visible title, company, location, pay, date, link, and search evidence. Evaluate then verifies liveness, captures the full posting through the public or supervised browser path, and applies the candidate's real location, compensation, eligibility, and fit rules before any tailoring or application work begins.
The app uses one desktop shell with three working areas:
- The left rail holds the main conversation, job and recruiter threads, research, Deep ingest, mock interviews, and the current view.
- The conversation stays in the center. Job-search actions and skill results return here instead of opening a second product.
- The right panel shows structured profile or job facts as the conversation discovers them. Whole sections open in focused editors when needed.
Search, Pipeline, Files, People, and Schedule are alternate views of the same local state. Missions turn longer work into resumable, ordered steps with clear user gates. Deep ingest gets its own durable thread. Mock interviews preserve the session and debrief. “Needs You” groups actions such as reviewing several prepared applications into one focused handoff.
Searches and intake continue in the background when you navigate to another view. Returning to the view or reloading restores the durable run status. If the app or computer stops mid-run, CareerRat marks the interrupted work for a clear retry instead of reporting a false success.
CareerRat stores canonical candidate state, conversations, missions, mock sessions, and pipeline records in local SQLite. Job descriptions, research, interview dossiers, resumes, and exports remain readable Markdown, PDF, or other normal files. A conversation is not just a Markdown transcript. Returning to a thread rehydrates the selected engine from CareerRat's own bounded context. See the chat-first runtime.
- Every job is read in full before tailoring or application work begins.
- Generated claims must trace back to candidate evidence. Missing facts are asked for or left out, never invented.
- A saved job site asks the plain Yes/No login question above when it is added or first used and login is needed. Other private-account browser, mail, calendar, and message actions keep their own contextual controls.
- Application automation fills safe, confirmed fields and can attach the generated résumé. When an application needs a candidate answer, the job thread shows that question in its review panel and saves the response against the exact form question before preparation resumes. Voluntary demographic and self-identification questions stay blank by default. In Profile > Application defaults, you can leave them blank or choose the form's decline option when one is available. CareerRat never infers an answer. Exact sensitive answers stay hidden in this editor, and the setting never goes through Paul.
- CAPTCHA, two-factor authentication, sensitive attestations, uncertainty, and final submission stop for the user. CareerRat never presses Submit.
- Durable state changes go through the same local domain layer whether they came from chat, a mission, or a focused view.
CareerRat has no product account, hosted candidate database, or app telemetry. Your workspace stays on your machine and can be exported.
Outbound connections are limited to the work you ask for and a few explicit product boundaries:
- The selected AI CLI connects to its own provider under that provider's account and privacy terms.
- Search, research, and browser skills fetch the public or authenticated pages needed for the task you started.
- The Mac app checks GitHub's
latest-mac.ymlSHA-512 checksum metadata at most once a day. It sends no candidate data and no unique installation or device identifier. When a newer version exists, it downloads the signed and notarized app update. Nothing installs until you choose Restart and install. Automatic checks can be disabled in Settings, and “Check for Updates…” still works as a manual check-and-download action. Windows self-update stays off until its installed app and final installer share a complete signing chain. - The public website uses cookieless, privacy-limited aggregate analytics. The local app does not load that website analytics client.
Read the full privacy documentation, data contract, and Code signing policy.
The app and terminal flow share the same public skill definitions.
Setup and intake
ingest-profile: conversational candidate setup and resume intakeresume-extract: structured facts from PDF, image, or DOCX resumesintake-extract: verbatim extraction from general dropped filesconfigure: inspect and change validated CareerRat settings
Find and research
setup-searches: turn targeting into a reviewed source configurationsearch-jobs: search configured sources, dedupe, check liveness, and triagediscover-companies: find likely employers and resolve their career boardsresearch-boards: find and validate additional job boardsresearch-company: build a cited company briefresearch-comp: benchmark compensation for a role and locationcompany-health: assess role-specific company stability and momentumrelationship-sourcing: find recruiters, hiring teams, and warm contacts
Evaluate and apply
evaluate-job: full-posting fit, compensation, location, and action gatecoach-gaps: turn review-worthy fit gaps into an honest plantailor-application: produce evidence-backed resumes and application artifactsanswer-question: answer screening questions from saved evidence and defaultsapply-job: orchestrate evaluation, artifacts, form filling, and user reviewoptimize-linkedin: propose evidence-backed LinkedIn profile improvements
Pipeline and communication
email-comms: draft and track recruiter and hiring-team messagesschedule-meeting: handle scheduling threads and availability repliescalendar-sync: write approved search events to supported calendarsingest-mail: fold recruiter and application email into the workspaceingest-messages: capture LinkedIn and Wellfound message threadssync-status: read ATS dashboards and normalize application statustrack-outcomes: record transitions, rejections, advances, and learnings
Interview, strategy, and support
interview-prep: create interview packets, practice, and debriefsreevaluate-strategy: tune the search from accumulated funnel outcomesreport-issue: diagnose CareerRat failures and prepare redacted reports
Terminal mode requires Node.js 24 or newer and launches Claude Code or Codex. Both use the same canonical skills and local data.
npm install -g careerrat
careerrat start claude
# or
careerrat start codexUseful terminal commands:
careerrat next # show the next useful agent-led workflow
careerrat doctor # verify setup, data, skills, and runtime health
careerrat update # update an npm installation without touching user data
careerrat tracker # write a recovery snapshot and summary
careerrat tracker-dev # serve the local browser workspace at localhost:7777To contribute from source:
git clone https://github.com/CodesWhat/careerrat
cd careerrat
npm install
npm run hooks:install
npm link
careerrat start claudeThe repository convention is in AGENTS.md. Public architecture and
release documentation live in docs/ARCHITECTURE.md and
docs/RELEASE.md. Working product planning stays local in
.planning/.
- Issues for bugs and feature requests
- Discussions for questions and ideas
- CodesWhat Discord for chat
- Security policy for private vulnerability reporting
- MIT License