Maya Workflow Kit
The whole Maya workflow in Blender, in one install. Free and open source, Blender 4.5 – 5.2.
AI job-application assistant: Chrome extension + Claude Code server that fills forms, scores fit, finds contacts and drafts outreach
PluginsHTML · TypeScriptGitHub @kuldeepsaini23OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗An AI job-application assistant: a Chrome extension plus a small local server that uses Claude Code to answer application questions, score job fit, find the right people to contact and draft outreach. It never submits anything. You review and press Submit.
Built in October 2026 with Claude Code.
context.md and leaves a question blank if it can't answer it honestly.hunter_api_key (checks guessed emails, 50 a month free) and github_token (higher GitHub rate limit). Results are cached per company and a credit counter keeps you inside free allowances. Phone chips open a call or WhatsApp, emails open Gmail compose; you always send yourself.TRACKER.md beside your packs) are hidden. Auto mode (off by default) finds people for the newest jobs in the background, up to a daily cap.Connections.csv and see who you know at each company, with a drafted referral ask.localhost:4777): your pipeline of prepared applications, an applications funnel (applied, replied, interview, offer) with reply rate per channel, and an outreach log.docs in server/config.json at your markdown notes (project write-ups, past achievements). Every Claude call retrieves the most relevant facts with hybrid search and adds them to the prompt, so answers use the right details instead of one fixed profile.tools/scan-boards.py): pulls live roles from Ashby, Greenhouse and Lever job boards, Wellfound (public role pages) and Himalayas, and filters them to your profile.The dashboard can also run as a static site (bun run build:site in server/, then deploy site/ to Vercel or any static host). It holds no data and runs no AI. In the browser, it talks to the Apply Kit extension, which forwards each request to the helper (server/server.ts) on your own computer, which runs Claude Code on your own login. Your profile, resume and tracker stay on your machine. The extension only accepts these requests from the sites listed in background.js (DASHBOARDS) and manifest.json.
New users set up from the dashboard's Setup tab: it checks the extension, the helper and Claude Code, and takes the profile, resume (PDF), the facts Claude may use, and saved answers. Those are saved in server/data/ (or APPLYKIT_DATA), so nobody needs to edit profile.js or context.md by hand.
Requirements: Chrome, Bun, and Claude Code logged in (the server calls claude -p, so it runs on your Claude plan, no API key needed).
git clone https://github.com/kuldeepsaini23/apply-kit
cd apply-kit
cp profile.example.js profile.js # your details (gitignored)
cp server/context.example.md server/context.md # facts + rules Claude may use (gitignored)
cp server/config.example.json server/config.json # name/email/deadline + "docs" paths for RAG (gitignored)
cd server && bun install && cd .. # local embedding model for RAG
# put your resume at ./resume.pdf (gitignored)
chrome://extensions → Developer mode → Load unpacked → this folder.bun server/server.ts (Windows: double-click start-server.cmd). The dashboard opens at http://localhost:4777.ApplyKit.exe is the same server built into one file (cd server && bun build-exe.ts), so users need neither Bun nor a terminal. It runs in the background with an icon by the clock: click it for the dashboard, right-click for the hosted site, the log, Start with Windows, Restart and Quit. It keeps its data in a data folder next to the exe, and starting it again replaces a copy that is already running. Claude Code still has to be installed and logged in. The optional notes search (RAG) is left out of the exe.
Optional: put prepared application notes as markdown files in packs/ (or set APPLYKIT_PACKS) and they show up in the dashboard pipeline.
Extension (MV3): fill.js is injected into every frame on demand. It matches each field's label to a rule (regex on label, name and placeholder), sets values with native setters plus input/change events, attaches the resume via DataTransfer, and tags open questions for Claude. background.js handles the shortcuts and messages from the dashboard; bridge.js connects the dashboard page to the extension.
Server (Bun): server/server.ts binds to 127.0.0.1 only and rejects requests from other origins. Each AI endpoint spawns claude -p with your context.md as the system prompt (no tools for answers and drafts; WebSearch/WebFetch only for people research) and parses the JSON reply.
RAG (server/rag.ts): markdown is split by heading into ~600-character chunks with overlap. Each chunk gets a BM25 keyword score and a vector embedding from all-MiniLM-L6-v2, run locally on CPU via transformers.js (no embedding API). Queries use reciprocal rank fusion of both rankings; vectors are cached until the notes change.
Retrieval eval (server/rag-eval.ts, bun run eval:rag): checks whether the right fact lands in the top 5 for a set of questions, half in the notes' own words and half paraphrased. On my notes (428 chunks, 16 questions):
| mode | recall@5 | MRR |
|---|---|---|
| BM25 only | 94% | 0.80 |
| vector only | 100% | 0.92 |
| hybrid (RRF) | 94% | 0.94 |
Smaller chunks helped: 600 characters beat 900 and 400. Hybrid ranks the right fact first most often, so it's the default.
Dashboard: plain HTML/JS, served by the same server.
MIT