Give ApplyCue your CV and a capable agent such as Codex or Claude. It searches approved job sources and connected job-alert email sources, reads full job descriptions, shortlists the most relevant roles, creates truthful role-specific CVs, and applies only after you approve each named application.
ApplyCue is local and agent-led. It is not an unattended mass-apply bot, and it cannot promise an interview, offer, or faster hire.
The MVP uses the coding agent's existing intelligence and connectors. There is no required AI API key and no second embedded model runtime.
ApplyCue has one launch runtime. Deterministic code handles sources, exact identity/history, document rendering, full-JD and decision-input receipts, application receipts, and integrity. The external agent handles fuzzy title/intent/CV-to-JD judgment and writing.
Competing control planes and the old terminal dashboard were retired after their useful features were re-homed behind the root runtime. See Product decision and Removal record.
Repository:
https://github.com/eyeinthesky6/applycue
Suggested prompt:
Install the latest stable ApplyCue release from this repository on my machine.
Read AGENTS.md and skills/applycue/SKILL.md, run the doctor check, then greet me
and start from my CV. Confirm my preferences and source access, search only
approved job sources and email connections, read full job descriptions, create
truthful role-specific CVs, and ask before each named application. Do not ask
for details already present in my CV.
The agent should perform the installation and explain only useful outcomes.
Requirements: Git, Node.js 22.5 or newer, and a supported agent such as Codex or Claude.
For normal use, install a named stable tag from the
GitHub Releases page. A tag
keeps the source version fixed until you deliberately update it. Replace
<stable-tag> below with a tag such as ApplyCue-v0.1.0:
git clone https://github.com/eyeinthesky6/applycue.git
cd applycue
git checkout --detach <stable-tag>
corepack pnpm install --frozen-lockfile
node doctor.mjs --jsonmain is the rolling development channel. Clone it only when you want the
newest unreleased changes and accept that its behavior can move between pulls.
Contributors can stay on main; normal users should prefer a stable tag.
Use Git rather than GitHub's generated source ZIP. A ZIP is a fixed source
snapshot without .git history, so the documented update and rollback commands
cannot verify or switch its release tag. If a ZIP is unavoidable, download it
from a named release, keep the archive name, tag, and release URL together, and
replace the whole extracted directory when changing versions.
If pnpm is already installed, pnpm install is equivalent. Direct corepack pnpm
avoids the administrator permission that corepack enable can require on Windows.
Installation adds the repository's Node.js dependencies and a Playwright-managed Chromium build used for page checks and document rendering. It does not install Docker, Go, Python, or a second AI runtime, and it does not require an AI API key. The normal install stays inside the cloned repository plus Playwright's per-user browser cache.
Then start your agent in the repository:
codex
# or: claudeSay: Set up ApplyCue and start with my CV. Slash commands are optional; plain language is the reliable interface.
Codex can also start non-interactively and return when setup needs user input:
codex exec "Read AGENTS.md and skills/applycue/SKILL.md, run doctor, and begin ApplyCue setup."CODEX.md is a thin repo pointer; AGENTS.md and the canonical skill remain the source of truth.
- The agent preserves the supplied CV as the exact baseline and extracts details already present.
- It asks whether you want selected project folders, GitHub, LinkedIn, your website, blogs, portfolios, or other evidence scanned.
- It builds a coherent profile, shows additions/conflicts, and asks for confirmation.
- It records and confirms target roles, acceptable adjacent roles, location/relocation, compensation, availability, employer restrictions, and application pace before searching.
- It runs a baseline search and shows fetched, blocked, reviewed, shortlisted, skipped, CV, attempted, and applied counts.
- Before each full-JD review, the agent re-reads those preferences, chooses
apply,watch, orskip, records confidence and reasons, and ranks the apply queue. New reviews do not use a semantic fit score. - Before writing each role CV, it builds a light employer success brief, chooses the primary role family, and asks focused questions when useful work may simply be missing from the old CV. A confirmed recollection can be used without an old document or exact metric; the agent must not invent precision. When useful, it saves a confirmed reusable career spine in local
candidate-positioning.md. - It prepares the first five genuine matches (or fewer), creates a verified Markdown/HTML/PDF/DOCX bundle tied to the current JD and decision, and shows the exact upload file.
- It inspects the live form without filling, reuses only explicitly approved answers, binds the active form and selected CV hash to the attempt, asks for approval for each named application, reconciles confirmed outcomes with the exact tracker row, and never silently retries an uncertain submit.
Any job link you give the agent directly defaults to high stakes unless you say it is standard. You can also use Mark high stakes or Return to standard on the dashboard. The agent starts that review ahead of standard queued work. If it genuinely earns apply, it moves to the top of application preparation and the apply ranks are updated; high stakes never forces a weak role into the apply queue. Agent/scanner-discovered roles stay standard unless you upgrade them. High-stakes treatment adds deeper company/team context, a small public success-pattern review when available, targeted evidence recovery, an adaptive saved campaign pack, and optional draft LinkedIn/website/GitHub/portfolio recommendations. It never publishes profile changes without separate approval.
Current employer is always skipped. Past employers require confirmation. Similar titles at one company are not automatic duplicates.
The agent can open the local browser dashboard:
npm run dashboardIt reads the canonical Markdown tracker and shows stored scan volume plus current agent-reviewed, shortlisted, applied, rejected, and skipped counts with agent rank/confidence and links to the original posting, saved full JD, agent review, tailored PDF/DOCX, and any recorded high-stakes campaign files. Stage-aware buttons let the user mark a role high stakes or standard, ask the agent to prepare or ignore it, request a CV change in a local text box, inspect the application form, or approve one exact application after preflight. The buttons append local receipts; they never change preferences, mutate the tracker, or submit by themselves. An unresolved CV-change request blocks application start until a different verified bundle is recorded and the agent resolves the request.
If the full JD, confirmed preferences, candidate evidence, report, or review metadata changed after the decision, the role appears as pending re-review and is excluded from the active shortlist. Imported tracker history is labelled and excluded from the current success counts; a new user with no imported history sees no origin badge. Per-run scan attribution is a later integration item.
For a read-only shareable snapshot:
npm run build:dashboardAfter every five confirmed applications, the agent offers this as an optional step with a fresh message. The reminders stop when you tell the agent that you posted a review. You can also leave honest product feedback, a review, or a sanitized outcome at any time in the ApplyCue Telegram community: open the public channel and choose its linked discussion group. Positive, mixed, and critical feedback are all useful.
Keep the post public-safe. Do not include CV content, names, contact details, application answers or history, employer correspondence, credentials, browser receipts, or generated candidate files.
Feedback about one of your own roles, CVs, application answers, or saved preferences belongs in your private ApplyCue chat or local dashboard instead. Those receipts stay on your machine and are not sent to Telegram.
Normal users should not need these; the agent runs them.
npm run doctor
npm run scan
node verify-pipeline.mjs
node review-evidence.mjs check --job=N
node cv-bundle.mjs check --job=N --cv="output/path/to/selected-cv.pdf"
node job-feedback.mjs pending
npm run tracker -- query --limit 20
npm run dashboard
npm run checkCandidate data stays local and is gitignored: cv.md, config/profile.yml, modes/_profile.md, portals.yml, data/, reports/, output/, and other user assets. ApplyCue does not store mailbox tokens. Agents use only connectors/accounts the user approves.
See Data contract and Configuration.
The launch MVP ends at a confirmed application, tracking, and feedback. Interview scheduling, proactive alerts, deep interview preparation, offer comparison, and negotiation are future phases. See Roadmap.
ApplyCue 0.1 is an early local-first release. It is suitable for careful local evaluation, but public-MVP readiness still depends on the real-use evidence in the launch-readiness gate. It needs a capable external agent such as Codex or Claude, public job sources or a user-approved browser, and explicit user approval before any application is submitted. Source coverage varies by country and job board. ApplyCue can improve discovery and application quality, but it cannot promise an interview or job offer. Hosted accounts, billing, calendar automation, proactive alerts, and the post-interview workflow are not part of 0.1.
- Architecture
- ApplyCue/Career-Ops integration plan
- Agent workflow
- Development guide
- Launch readiness
- Live usage runbook
- Pivot history
ApplyCue is derived from and inspired by Career-Ops, created by Santiago Fernández de Valderrama. Career-Ops supplied the MIT-licensed foundation for much of ApplyCue's job discovery, reports, CV generation, tracking, dashboard, plugins, follow-up workflow, and regression suite. See NOTICE and LICENSE for attribution and license terms.
For user help, feedback, and community conversation, join the ApplyCue Telegram community; the channel carries official updates and its linked discussion group is the ordinary-user conversation space. Contributions are welcome through CONTRIBUTING.md. Contributors can use GitHub Discussions for technical design questions, while GitHub Issues remain for reproducible bugs and scoped engineering work. Follow SECURITY.md for private security reporting and SUPPORT.md for the complete route map. Never put a real CV, contact details, credentials, application history, browser receipt, or generated candidate artifact in a public post.