Karya
Searches Accenture's career site via Workday for open jobs, with match scoring and application support.
Searches Amazon's job listings directly as part of find_jobs.
Searches Atlassian job listings directly as part of find_jobs.
Searches Barclays career site via Workday for open jobs.
Browser automation can play chess on chess.com, including canvas-based board interactions.
Searches Cisco career site via Workday for open jobs.
Reads funding news from Crunchbase News to find recently funded companies and their open roles.
Sends and reads email through Gmail using an App Password, for outreach and application communications.
Searches Google's career site for jobs as part of find_jobs.
Integrates with your own Chrome browser via the Karya Browser Link extension, allowing automation in your logged-in tabs and using real mouse clicks on canvas/game boards.
Reads funding news from Google News to find recently funded companies.
Searches Greenhouse job boards for open roles as part of find_jobs.
Browser automation can play chess on lichess, including canvas-based board interactions.
Searches Netflix job listings directly as part of find_jobs.
Searches Nvidia career site via Workday for open jobs.
Browser automation can post on Reddit, filling forms and submitting content.
Searches Salesforce career site via Workday for open jobs.
Reads funding news from TechCrunch to find recently funded companies and their open roles.
Builds, previews and publishes websites to Vercel using a Vercel token.
Searches Walmart career site via Workday for open jobs.
Reads Y Combinator's latest batches to find funded startups and their open roles.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Karyafind remote Python jobs in India and tailor my resume for the top match"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.

Karya (कार्य) means "work" in Hindi.
What you can ask
Ask in plain words, in Karya's chat, on WhatsApp, or from another AI app.
You ask | Karya |
Find product manager jobs in Bengaluru that fit my resume and apply to the best 3 | searches company career sites, ranks the jobs against your resume and lets you pick. For each pick it tailors your resume, fills in the form and submits once you approve |
What are traders saying about Nifty today? | reads StockTwits, Reddit, X, TradingView, forums, YouTube and the news, then reports the mood, the price levels people mention and real quotes with links |
Research the best budget laptops for coding | searches, reads a dozen pages and gives you a short answer with the sources |
Make a bot called Maya that checks new PM jobs every morning at 9 and applies | makes a bot that does it every day and reports to you on WhatsApp |
Email these 5 startups about my design services | finds their public addresses and writes each one a personal email. You approve every send |
Post this video on LinkedIn and X | uploads the video, writes the post and asks before it posts |
My PC is slow | checks what's using memory, disk and CPU, and fixes it with your OK |
Build me a portfolio website | builds it from your resume, shows a preview and can publish it on Vercel |
Related MCP server: ai-browser-bridge
Install
You need Windows 10 or 11, Python 3.11 or newer (tick "Add Python to PATH" in the installer) and Google Chrome.
Download Karya. On this page click Code > Download ZIP and unzip it, or run
git clone https://github.com/Muraligopalakrishna/karya.git.Double-click
start.bat. The first start installs what Karya needs, which takes a few minutes. Then Karya opens in its own window and adds itself to your Start menu.Follow the welcome guide. It asks three things and you can skip any of them:
your AI (see the next section)
about you: your name, email and city, and your resume, which Karya reads once and tailors for every job
extras: tasks from WhatsApp, your own Chrome, and starting Karya with Windows

Everything stays on your PC. Your settings live in .env and your data in data/, and git leaves both out. There is no Karya server and no Karya account. Setup is the button at the top right, and Setup > Safety & more shows the welcome guide again.
Opening Karya
After the first start you open Karya like any other app: press the Windows key, type Karya and press Enter. Setup > Safety & more can also put an icon on your desktop and start Karya when you sign in to Windows.
Closing Karya's window doesn't stop it, so WhatsApp tasks and your bots keep working in the background. To stop everything, use Quit Karya in Setup > Safety & more.
Why does Karya look like a web page?
Karya is a program on your PC. Its screen is a page that Karya itself serves from your PC (the address 127.0.0.1 means "this computer"), and it shows that page in a window of its own. Teams, Slack and VS Code draw their screens the same way, with a built-in browser engine. The page doesn't come from the internet: Karya goes online only for your tasks and to reach the AI you chose. The window uses Chrome or Edge in app mode, with a profile of its own, so your own browser tabs and settings aren't touched, and links you click in it open in your normal browser.
Connect an AI
Karya needs an AI to think with. One is enough. If you add more, Karya moves to the next one when one is busy or out of credits. Open Setup > AI and pick one:
Choose | What you do | What it costs |
Paste a key | Paste a key from OpenAI, Claude, Gemini, Groq, OpenRouter, DeepSeek, Mistral, xAI or Kiro. Karya works out which service it's from and checks it. | Free keys: Gemini, Groq, OpenRouter |
Kiro | Click Google, GitHub or AWS Builder ID and sign in. Needs the Kiro CLI. | Your Kiro plan |
Claude | Click Sign in with Claude. Needs Claude Code. If Claude Code is already signed in on your PC, click Use Claude. | Your Claude plan |
ChatGPT | Click Sign in with ChatGPT. Needs the Codex CLI: install Node.js, then run | Your ChatGPT plan |
Free, on this PC | Install Ollama, then click Download the free model (about 3 GB). | Free and private, but slow without a graphics card |
Then pick the model from the list your key or plan offers, and choose which AI goes first. Karya learns each key's limits, so small free plans get small requests and big paid plans run at full speed.
Karya runs Claude Code and Codex with their own tools switched off, so they only think and Karya does the work. Your plan's usage limits apply as usual.

Use Karya inside your AI apps
There are two ways to use Karya with Cursor, Claude Code, Codex, Kiro, VS Code and similar apps.
As Karya's brain (the section above). You chat in Karya, and your Claude, ChatGPT or Kiro plan does the thinking.
Inside the app. You chat in Cursor, Claude Code, Codex, Kiro, VS Code, Claude Desktop, Gemini CLI, Windsurf or Qwen Code, and its AI uses Karya's tools: a real Chrome with your logins, email, job search, tailored resumes and applications.
For the second way, open Setup > Other AI apps. It lists the AI apps on your PC with an Add Karya button each. Karya adds itself to that app's settings, keeps your other servers, and saves the old file next to it as .before-karya. Restart the app, then ask it something like "use Karya to find PM jobs and apply".
Karya still runs every check when another app is in charge, and asks you before it sends, posts, submits or pays (inside the app when it supports that, otherwise in Karya's window, which opens by itself).
Apps with a config file take this (use your own Karya folder):
{ "mcpServers": { "karya": { "command": "C:\\Karya\\.venv\\Scripts\\python.exe", "args": ["C:\\Karya\\karya_mcp.py"] } } }For CLIs it's one command, for example claude mcp add --scope user karya -- "C:\Karya\.venv\Scripts\python.exe" "C:\Karya\karya_mcp.py". Setup > Other AI apps shows the exact config and commands for Codex, Gemini CLI, Qwen Code, Kiro CLI and VS Code, with copy buttons.
The app starts Karya by itself if it isn't running.
Karya needs no AI of its own here: the app's model does the thinking, including writing tailored resumes. Karya checks every fact against your real resume and makes the PDF.
40 tools are shared by default (Cursor allows about 40 in total). Pick others with
KARYA_MCP_TOOLS, for examplebrowser,email, orall.Submits, posts and bids come back as
RESULT: SUBMITTED,NOT SUBMITTEDorUNCONFIRMED.karya_activitylists what really happened today.Some apps stop a tool call after a minute. Give them a longer timeout so there's time to approve (Codex:
tool_timeout_sec = 900).Passwords never reach the other app's AI, and Setup can switch MCP access off.
Your phone and your bots
Tasks from WhatsApp
Setup > Phone & bots > Connect WhatsApp opens WhatsApp Web in its own window. Link it once from your phone (WhatsApp > Settings > Linked devices > Link a device). After that you give Karya tasks in your own "Message yourself" chat:
Karya answers "On it", does the task and sends you the result there.
Before it sends, posts or submits, it asks you in that chat. Reply YES or NO, or with the numbers of the jobs to apply to.
STATUS, STOP, BOTS and HELP work too.
@Maya find 3 PM jobsgives the task to your bot Maya, andSTOP Mayastops her.
Karya reads only that one chat, and passwords never go over WhatsApp. If nobody answers an approval within 30 minutes, Karya doesn't do it.
Karya reads WhatsApp only while it's running and its WhatsApp window is open. That window doesn't open by itself: click Open WhatsApp in Setup, or ask Karya (or your AI app, through MCP) to connect WhatsApp. Closing the window turns phone tasks off until you open it again.
To take tasks from your phone all the time, turn on Open WhatsApp when Karya starts and Start Karya when I sign in to Windows (both in the same tab). Karya then starts minimized every time you sign in, with WhatsApp open. If you send a message while Karya is off, it does the task when it starts, as long as the message is less than 6 hours old.
Bots
Bots are named helpers, like Grok Bots or OpenAI's Dots, that work in the background while you keep chatting. A bot can do anything Karya can. Make one in Setup or just ask ("make a bot called Maya that finds PM jobs in India and applies"), then give it tasks with @Maya ... in the chat or on WhatsApp, or put it on a schedule ("every morning at 9", "every 4 hours").
Each bot keeps its own history and notes, so it knows what it already covered. Two bots work at the same time. They take turns with you on the browser, and your own chat always goes first. Setup can keep the PC from sleeping so scheduled bots run on time.

Compared with Muse, Dots and Grok Bot
Meta Muse, OpenAI Dots and Grok Bot run on the companies' cloud computers, so they keep working when your PC is off. Karya runs on your PC instead. It costs nothing, works in any country, lets you choose the AI, and keeps your logins and files on your machine, but your PC has to be on.
How fast it is
Everything Karya can do
Jobs straight from the companies, in any country.
find_jobssearches Workday (Salesforce, Adobe, Nvidia, Cisco, Accenture, PwC, Walmart, Citi, Barclays and about 50 more), the Greenhouse, Lever, Ashby and SmartRecruiters boards of about 170 companies, Amazon, Microsoft, Google, Netflix and Atlassian, YC startups, Hacker News "Who is hiring", Indian boards (Instahyre, Cutshort, foundit), The Muse, Arbeitnow and remote boards. A web search finds more company job pages for your role and place. LinkedIn is a fallback when few jobs turn up, or when you ask for it.Recently funded startups.
find_funded_companiesreads funding news from any country and Y Combinator's latest batches, ranks the companies for you and lists their open roles.Applying. Karya reads the posting and the form, builds a resume tailored to that job (PDF), fills in everything it already knows in one step and asks you only what it can't know (notice period, salary, job dates). It never adds a skill you haven't confirmed, and it submits after you approve.
It remembers what you applied to. New searches leave out jobs you already applied to and companies you applied to in the last 60 days, and Karya never submits the same job twice.
Login codes. When a site sends a one-time code, Karya finds it in that site's newest email and types it in. A code that arrives by text message is asked for in the chat or on WhatsApp.
Pop-ups. Nags like "Are you still looking for a job?", "Turn on notifications" and cookie banners are closed by themselves; dialogs that are part of your task stay open.
Research. Web and news search,
deep_research(a dozen pages read in one step) andcrawl_sitefor a whole website, including sites you're logged into such as LinkedIn and X (it only reads there).Markets. Prices, history and news for NSE, BSE, US stocks and more, and
market_sentimentfor what traders say about any stock, coin, forex pair or index. It reports opinions, not advice.Email and outreach.
find_contactslists the public emails and social links of a website, and Karya writes personal emails that you approve one by one.Social posts on LinkedIn, X, Reddit, Instagram and more. With a video or photo it attaches the file first and posts only with it.
Accounts. Karya can sign up on job portals for you with strong generated passwords, kept encrypted on your PC.
PC help. Diagnose and fix problems, manage files, run commands (it asks first).
Websites. Build, preview and publish to Vercel.
Learn a site once, call it like an API
Driving a web page with the AI is slow and costs tokens on every step. For a site you use again and again, Karya can learn the site's own request once and then call it directly over HTTP, with no browser and no AI in the loop.
It works the way a browser's own page does. Karya watches the page make a request, finds the part that was your input, and saves it as an operation. After that, "search Goodreads for Dune" or "get the next page of jobs" is one fast call that returns clean data, not a dozen clicks.
Ask for it in plain words: "learn Hacker News search so it's fast", or just use a site a lot and Karya will offer. Under the hood it uses
site_api_scout(look at what the page sends),site_api_learn(save a read operation from two examples) andsite_api_call(run it).site_api_listshows what's learned.Reads run on their own and are cheap. A learned search or listing answers in a second or two and reads about half the tokens of driving the browser.
Logged-in sites work through your own Chrome (the extension), so your session is used and nothing is exported. The saved operation keeps only references to your cookies and tokens, never their values.
It heals itself. If the site moves an endpoint or renames a field, Karya learns it again and keeps the new version only after a fresh call works, so a call never returns stale or wrong data.
Writes (applying, posting, sending) are different. Karya records the action once while it does it in the browser, then asks you before every replay, and reports it done only when the site confirms it, never from an HTTP 200 alone. CAPTCHAs and logins still need you.
Everything stays on your PC: learned operations in data/site_apis, your sessions alongside them, both left out of git. It only knows the operations you taught it, and you should read each site's terms before automating it.
Use your own Chrome
Karya browses in its own Chrome window by default. To let it work in your everyday Chrome, with the logins you already have, add the Karya Browser Link extension once:
Open
chrome://extensionsin Chrome and turn on Developer mode (top right).Click Load unpacked and choose the
karya\extensionfolder inside your Karya folder. Setup > Browser & logins shows the exact path with a copy button.
Whenever Karya runs, the extension connects by itself. Karya works only in its own tabs, in a purple "Karya" tab group, and can't see your other tabs. On game boards and maps Chrome may show a "started debugging this browser" bar for a few seconds while Karya clicks; that's the extension sending real mouse clicks.
Safety
Karya asks before it sends an email, posts, submits an application, pays, deletes or publishes. Commands and file changes ask too, unless you choose "Ask only for big actions".
Full access (autopilot) is off by default. When you turn it on in Setup, Karya stops asking but every check still runs, and payments and account deletion still ask unless you turn that off too.
Before a Submit, Karya checks for empty required fields. Afterwards it reads the page and says SUBMITTED only when the site confirms it.
Form questions are answered from your resume and your own earlier answers. Anything else, Karya asks; it never guesses.
CAPTCHAs are left for you to solve.
Passwords are encrypted with Windows (DPAPI), typed only into the site they belong to, and never sent to the AI. Karya hides keys, tokens and passwords from anything the AI, the chat or the logs see.
Web pages and emails are treated as data, never as instructions.
The chat listens only on
127.0.0.1, behind a private link. Every action is logged indata/logs/actions.jsonl.Daily limits (40 emails, 10 posts, 30 applications by default, changeable in Setup) keep your accounts from looking like spam. Sites like LinkedIn and X limit automated activity, so don't mass-apply or mass-post.
Development
.venv\Scripts\python.exe -m pytest tests -qKARYA_SKIP_LIVE=1 skips the tests that need the internet, and KARYA_RUN_OLLAMA=1 adds the slow offline-model test.
Path | What's there |
| the agent loop |
| the AI client (keys, Kiro, Claude Code, Codex, Ollama) |
| all tools |
| bots and WhatsApp |
| the chat page and Setup |
| logo, charts and screenshots |
To add a tool, write a function with the @tool(...) decorator and give it a risk level. The agent picks it up by itself.
License
MIT, see LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
Browser MCP for logged-in tasks. Uses your Chrome — credentials stay local. Zero-token replay.
- PomeradoOAuthai.pomerado
MCPs that do tasks on any website. Search flights, book, shop, check accounts and fill in forms.
Control a real browser from AI agents: navigate, click, type, screenshot, read the page.
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to control your existing Chrome browser via MCP, using your logged-in sessions for automation on authenticated sites. Provides high-level browser tools plus raw CDP and Chrome API access.MIT
- AlicenseNot gradedqualityAmaintenanceEnables local Chrome control for AI clients over MCP stdio, HTTP, or CLI, exposing 20 tools to extract page text, number and click elements, type text, scroll, manage tabs, capture screenshots, and bind uploaded files to file inputs. Operations run entirely on the local machine with origin allowlists and refusal of untrusted URLs, without calling a cloud model or consuming model tokens.28 npmMIT
- AlicenseNot gradedqualityAmaintenanceEnables any MCP-capable AI client to drive the user's own Chrome or Edge browser through a set of browse_* tools — navigating, clicking, typing, extracting, and managing tabs with their existing logins on their own machine. Runs locally and self-hosted with a live viewport and pause/approve controls so every verified step stays under user watch.3MIT
- AlicenseNot gradedqualityAmaintenanceLets AI coding tools directly control the user's already-open, logged-in Chrome to read pages, navigate, click, type, screenshot, inspect network/storage, and automate browser tasks through local MCP tools.1 npmISC