feder-cr/Jobs_Applier_AI_Agent_AIHawk

Open source AI job application toolkit in Python: generate a resume and cover letter tailored to each job posting, and drive a stealth browser from any AI client over MCP.

automationpythonscrapinganti-botanti-detect-browserantidetectbrowser-automationbrowser-fingerprintingfingerprintfingerprintjsfirefoxheadless-browser
Sterne-Wachstum
Sterne
30.3k
Forks
4.6k
Wochenwachstum
+0
Issues
22
10k20k30k
Aug. 2024Apr. 2025Dez. 2025Sept. 2026
README
AIHawk

Born as an AI web agent that applied to jobs in bulk. Becoming a general one: an agent you point at the web and tell what to do.

FEATURED IN
Business Insider · TechCrunch · Semafor · Dev.by · Wired · The Verge · Vanity Fair · 404 Media


Overview

AIHawk gives your AI client a real browser and lets you drive it in plain language. Open pages, read them, click, type, come back with the answer.

It installs as a package, invisible-playwright-mcp, and connects over MCP, the protocol AI clients use to attach external tools. Your client gets thirteen tools; you never call them yourself.

Requirements

Python 3.11 or newer, Windows or Linux, and uv, which provides the uvx command.

curl -LsSf https://astral.sh/uv/install.sh | sh              # macOS, Linux
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"   # Windows

If you use Claude Code, Claude Desktop, Cursor or anything similar, you already have the client half.

Installation

claude mcp add stealth --env STEALTHFOX_PROXY=http://user:pass@host:port -- uvx invisible-playwright-mcp

Drop the --env flag if you are not using a proxy. In any other client, the same thing as a config entry:

{
  "mcpServers": {
    "stealth": {
      "command": "uvx",
      "args": ["invisible-playwright-mcp"],
      "env": {
        "STEALTHFOX_PROXY": "http://user:pass@host:port",
        "STEALTHFOX_SEED": "12345",
        "STEALTHFOX_PROFILE_DIR": "/absolute/path/to/profile"
      }
    }
  }
}

Usage

Restart the client and list your MCP servers. stealth should be there with thirteen tools attached. Ask for one small thing first, like opening a page and taking a screenshot.

The first launch downloads the browser, about 700 MB, and looks like a hang. It is cached after that. If the server never appears at all, uvx is not on the PATH your client sees, which is not always the PATH your shell sees.

The server drives the browser and nothing else: it has no disk access. Reading and writing files is your client's own tooling.

Two things worth asking it:

Go to <paste the URL>. Filter to backend roles in Europe posted in the last two weeks. For each result, open the posting and pull out the title, the location, whether it says remote or hybrid, and anything about visa sponsorship. Give me the list as a table, and append a row to shortlist.csv for each one.

Go to <paste the URL>. One way, Milan to Lisbon, economy, one checked bag, one adult. Check every date from the 12th to the 16th of next month, one at a time, and read the cheapest fare for each day. The date field is a calendar widget, so click the days rather than typing them. If a date has no availability say so, do not guess a number. Write the five to flights.md sorted by price, and leave the cheapest open in a tab.

Those two share nothing but the machinery.

Configuration

Environment variables on the MCP server entry.

Variable What it does
STEALTHFOX_PROXY http://user:pass@host:port, or socks5://. Credentials go in the URL.
STEALTHFOX_SEED An integer. Same seed, same browser identity, every run. Set one for anything you run more than once.
STEALTHFOX_PROFILE_DIR Absolute path. Persistent profile, so logins and cookies survive restarts. Most clients pass env values through verbatim, so a leading ~ becomes a folder literally named ~.
STEALTHFOX_HEADLESS Headless by default. Set 0 to watch the window, worth doing the first few times.

Available tools

You never call these yourself. Your model does, from what you ask it.

Group Tools
Pages session_new_page, session_list_pages, session_select_page, session_close_page
Reading browser_navigate, browser_read_text, browser_snapshot, browser_take_screenshot
Acting browser_click, browser_click_at, browser_type, browser_press_key, browser_evaluate
Project What it is
invisible-playwright-mcp The MCP server installed above.
invisible_playwright The Python wrapper and the browser it pins and drives. Use it directly if you would rather script than prompt: the API is Playwright's.
invisible_core Seed to fingerprint to preferences, proxy and geolocation derivation.

Contributing

Issues and pull requests are welcome on whichever of those the problem lives in. If you are not sure, open it here.

When something fails on a page, say which step, what the page did, what the tool returned and which exit country you were on. "It got blocked" is not something anyone can act on.

This automates a browser under your control. Read the terms of the sites you point it at, respect their rate limits, and do not submit anything a human has not read.

License

AGPL-3.0.

Ähnliche Repositories
n8n-io/n8n

Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.

TypeScriptnpmcliOtherautomationipaas
n8n.io
203.8k60.6k
langgenius/dify

Build Agentic workflows, RAG pipelines, with rich AI model and tool support on one collaborative workspace. Deploy on cloud, VPC, or self-hosted, so teams move from prototype to production without rebuilding the stack.

TypeScriptnpmskillOtheraigpt
dify.ai
155.1k24.5k
microsoft/playwright

Playwright is a framework for Web Testing and Automation. It allows testing Chromium, Firefox and WebKit with a single API.

TypeScriptnpmappApache License 2.0playwrighttesting
playwright.dev
95.8k6.4k
puppeteer/puppeteer

JavaScript API for Chrome and Firefox

TypeScriptnpmApache License 2.0headless-chrometesting
pptr.dev
95.6k9.6k
D4Vinci/Scrapling

🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!

PythonPyPIlibraryBSD 3-Clause "New" or "Revised" Licensecrawlercrawling
scrapling.readthedocs.io/en/latest/
79.4k8k
Panniantong/Agent-Reach

Give your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.

PythonPyPIcliMIT Licenseagent-infrastructureai-agent
78.9k6.8k
ComposioHQ/awesome-claude-skills

A curated list of awesome Claude Skills, resources, and tools for customizing Claude AI workflows

PythonPyPIawesomeclaudeclaude-code
74.7k8.6k
career-ops-hq/career-ops

Open-source AI job search: scan job portals, evaluate listings into a structured A-H report with a global 1-5 score, tailor your CV, track applications — runs locally in your AI coding CLI (Claude Code, Codex, OpenCode, Antigravity…)

JavaScriptnpmcliMIT Licenseai-agentanthropic
career-ops.org
70.6k13.3k
santifer/career-ops

Open-source AI job search: scan job portals, evaluate listings into a structured A-H report with a global 1-5 score, tailor your CV, track applications — runs locally in your AI coding CLI (Claude Code, Codex, OpenCode, Antigravity…)

JavaScriptnpmcliMIT Licenseai-agentanthropic
career-ops.org
69.6k13.2k
huginn/huginn

Create agents that monitor and act on your behalf. Your agents are standing by!

RubyRubyGemsMIT Licenseautomationnotifications
49.9k4.3k
usebruno/bruno

Opensource IDE For Exploring and Testing API's (lightweight alternative to Postman/Insomnia)

JavaScriptnpmMIT Licenseapi-clientgit
usebruno.com
46.8k2.9k
apache/airflow

Apache Airflow - A platform to programmatically author, schedule, and monitor workflows

PythonPyPIApache License 2.0airflowapache
airflow.apache.org
46.8k17.8k