Skip to content

JohnGabie/claudia-rh

Repository files navigation

Claudia RH logo

Claudia RH

Automated job-application agent powered by Claude + Chrome.

GitHub stars License: MIT Tauri v2 React 19 Rust Windows 11


If this project inspired or helped you, please consider leaving a star — it really matters!


What is this?

Claudia RH is a Windows desktop app that automates job searching and application. Instead of spending hours copy-pasting your CV across job sites, it launches an AI session that browses, analyses, and submits applications on your behalf — while you do something else.


How it works

  1. Conversational profile — tell Claude who you are, paste your CV, define search variants (e.g. "senior remote dev" vs "hybrid tech lead")
  2. Automatic triggering — the app detects when you're idle and launches a Claude Code session connected to Chrome
  3. Job analysis — the agent reads each listing, cross-references your profile, and decides whether to apply
  4. Document generation — CV and cover letter tailored to each job, with honesty enforced
  5. Pending actions & notifications — captchas, required fields, and other blockers appear as Windows notifications for manual resolution
  6. Feedback — periodic analysis of results with improvement suggestions

Features

Feature
🤖 Claude Code agent with Chrome access
📄 AI-generated CV and cover letter per job
🔍 Multiple simultaneous search variants
🔔 Windows notifications for captchas / blockers
💤 Automatic triggering on user inactivity
🔐 Credentials stored in Windows Credential Manager
📊 Dashboard with real-time statistics
💬 Profile managed via conversational chat
📈 Feedback tab with trend charts
🖥️ Integrated PTY terminal

Architecture

┌──────────────────────────────────────────────────────────┐
│                    Claudia RH (Tauri)                     │
│                                                          │
│  ┌──────────┐  ┌────────┐  ┌──────────┐  ┌──────────┐  │
│  │Dashboard │  │Profile │  │ Pending  │  │ Feedback │  │
│  │          │  │ (chat) │  │ actions  │  │ (graphs) │  │
│  └──────────┘  └────────┘  └──────────┘  └──────────┘  │
│                                                          │
│       React 19 + TypeScript + xterm.js                   │
│  ─────────────────────────────────────────────────────   │
│       Rust (Tauri v2) + SQLite + keyring                 │
│                                                          │
│  ┌─────────────────────────────────────────────────┐    │
│  │  PTY Manager  →  claude --chrome  →  Chrome     │    │
│  │                   (Claude Code CLI)   Extension  │    │
│  └─────────────────────────────────────────────────┘    │
└──────────────────────────────────────────────────────────┘
         ↕ Tauri events (SQLite watcher, idle watcher)
    SQLite DB: jobs · applications · pending actions · sessions

Tech stack

Layer Technology Version Purpose
Desktop shell v2 Native Windows app without Electron
Frontend 19.1 Reactive UI
UI language 5.8 Type-safety on the frontend
Backend 2021 edition System logic, PTY, SQLite, credentials
Database via rusqlite Jobs, applications, sessions, pending actions
Terminal xterm.js + portable-pty 6.x Real PTY embedded inside the app
AI latest Application agent with Chrome access
Credentials keyring v3 3.x Windows Credential Manager — never plain text

Prerequisites

Required

  • Windows 11 (build ≥ 26200)
  • Claude Code CLI installed and authenticated
  • Claude in Chrome extension installed in Chrome
  • Rust toolchain (rustup)
  • Node.js 20+

Recommended

  • Claude Pro or Team account (for session volume)
  • Chrome as your primary browser
  • 8 GB RAM+

Claude in Chrome extension setup — critical step

Without this step the agent cannot control the browser and will do nothing.

Install the extension

  1. Open Chrome and go to the Chrome Web Store
  2. Search for "Claude" (official Anthropic extension)
  3. Install the Claude extension in Chrome

⚠️ The Google/Claude account used in Chrome must be exactly the same one authenticated in the Claude Code CLI. If they differ, the connection fails silently.

Enable Chrome mode

After installing the extension, open a terminal and run Claude Code:

claude

Inside the session, type:

/chrome

When the "Enable by default" option appears, select Yes.

Close Claude, reopen it — from then on Chrome connects automatically in every session.


Installation

# 1. Clone
git clone https://github.com/JohnGabie/claudia-rh.git
cd claudia-rh

# 2. Install dependencies
npm install

# 3. Dev mode
npm run tauri dev

# 4. Production build
npm run tauri build

The .msi installer will be at src-tauri/target/release/bundle/msi/.


Project structure

claudia-rh/
├── src/                        # React frontend
│   ├── components/
│   │   ├── Dashboard.tsx       # Statistics and session control
│   │   ├── Perfil.tsx          # Conversational profile chat
│   │   ├── Vagas.tsx           # Job history and applications
│   │   ├── Pendencias.tsx      # Pending blockers (captcha, etc.)
│   │   ├── Feedback.tsx        # Results analysis + charts
│   │   ├── Configuracoes.tsx   # Credentials, triggering, strategy
│   │   ├── Terminal.tsx        # Integrated PTY terminal
│   │   └── Sidebar.tsx         # Navigation + badges
│   └── styles/tokens.css       # Design tokens (colours, typography)
│
└── src-tauri/src/              # Rust backend
    ├── commands/
    │   ├── perfil.rs           # candidate_base.yaml + search_variants.yaml
    │   ├── sessao.rs           # Session triggering and management
    │   ├── curriculos.rs       # CV generation
    │   ├── cover_letter.rs     # Cover letter generation
    │   ├── feedback.rs         # Feedback analysis
    │   ├── credenciais.rs      # Keyring (Windows Credential Manager)
    │   └── estado.rs           # Statistics queries
    ├── db/schema.sql           # Full SQLite schema
    ├── pty_manager.rs          # PTY process management + session signals
    ├── idle_watcher.rs         # Inactivity detection (Win32 GetLastInputInfo)
    └── notificacoes.rs         # Windows notifications (Tauri plugin)

Disclaimer

This tool automates browser actions on your behalf. Ensure the terms of service of the job platforms you use allow automation. The author is not responsible for account bans or other effects resulting from using this tool.


Contributing

Issues and PRs are welcome. Before opening a large PR, open an issue to discuss the approach.

Read the contributing guide for dev setup, commit conventions, and PR process. This project follows the Contributor Covenant Code of Conduct. To report security vulnerabilities, see the security policy.


Built with ☕ and way too many rejected applications.


If you made it this far and found it useful — a star makes a difference! ⭐

Star on GitHub

About

No description, website, or topics provided.

Resources

License

Code of conduct

Contributing

Security policy

Stars

52 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages