Skip to content

Mo7j/JobPilot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

11 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

JobPilot

JobPilot

A crew of AI agents that runs your job search while you sleep.

Build status MIT license Live demo Powered by Claude PRs welcome

React 19 Vite 6 Tailwind 4 Firebase 11 Node 20+

Seven Claude agents hunt roles, score fit, draft tailored CVs, and fill applications, then stop and wait for your approval. Self-hosted on your Firebase and your Claude. Your data never leaves your project.

Try the live demo Visit the website Watch the explainer video

πŸ“– Setup guide Β· πŸš€ Deploy guide Β· πŸ€– The agents Β· πŸ—οΈ Architecture Β· ❓ FAQ

JobPilot dashboard

What is this?

Job searching is a full-time job: scanning boards daily, tailoring a CV per role, writing cover letters, tracking follow-ups. JobPilot turns that into a pipeline run by agents with you as the approver. The agents do the hours; you make the decisions. Nothing irreversible (submitting an application, sending a connection note) ever happens without your explicit tap in the dashboard.

The crew

Agent Cadence Job
🧭 Setup once Interviews you β†’ generates your profile, market playbook, and a CV design unique to you
πŸ” Job Search every 5h Finds fresh roles on your platforms, filters against your real profile
πŸ“Š Job Analysis every 5h Scores fit 0–100, researches the company, writes a PDF report
πŸ“„ CV Creation every 5h Drafts a tailored one-page CV, asks you questions instead of inventing facts
βœ‰οΈ Application Writer every 5h Fills the whole form, screenshots it, stops before Submit
🀝 Connection Builder 2-hourly Grows your LinkedIn network within strict limits; notes always approval-gated
πŸŽ“ Career Advisor daily Mines market data for the skill gaps actually costing you matches
🧠 Manager 8 AM + 8 PM Health checks, quality review, coaches the other agents

How it fits together

flowchart LR
    subgraph YC["Your Claude"]
      A[8 agents<br/>markdown skills]
    end
    subgraph YF["Your Firebase"]
      F[(Firestore)]
    end
    subgraph YB["Your browser"]
      W[React dashboard]
    end
    A -- "MCP server<br/>(service account)" --> F
    F -- "live snapshots" --> W
    W -- "approvals & instructions" --> F
    A -- "Claude in Chrome" --> J[Job boards & ATS forms]
    A -- "Google Drive" --> D[CVs, reports,<br/>screenshots on your phone]
Loading

The repo is a monorepo:

app/         the dashboard (React 19 + Vite + Tailwind 4 + Firebase), has a zero-config demo mode
agents/      the 8 Claude agents: SKILL.md + knowledge + shared _system contracts
mcp-server/  a tiny MCP server that bridges your Claude ↔ your Firestore
landing/     the marketing site you're probably coming from
docs/        setup guide, architecture, per-agent reference

Quickstart

git clone https://github.com/Mo7j/JobPilot.git
cd JobPilot
npm install
npm run dev:app     # β†’ http://localhost:5173 in demo mode (sample data, no Firebase needed)

That's the demo. To run it for real (your own Firebase, your own Claude, the crew on a schedule) follow docs/SETUP.md. It's eleven steps, each with a "you know it worked when…" checkpoint, and takes about an evening.

Design principles

  1. Approval-gated by design. Agents prepare; the owner presses the button. APPROVAL_NEXT_STATUS in the app and the approvalQueue contract in the agents are two halves of the same gate.
  2. Honesty is enforced, not hoped for. Your skills live in three tiers (strong / basic / never-claim). The never-claim tier can't appear on a CV or in an answer; any agent that's unsure has to ask you first.
  3. Your data is yours. No JobPilot server, no telemetry. The app and agents talk only to the Firebase project you create. See SECURITY.md.
  4. Unique per user. The setup agent generates your profile, your market playbook, and one of 1,000+ CV designs. No two users ship the same resume template.
  5. It learns. Every reject-with-reason teaches an agent. The manager coaches the crew nightly from your actual decisions.

A tour of the app

Overview β€” your morning glance: pending approvals, active cases, what the crew did overnight, and where the pipeline is stuck. Light and dark themes.

Light Dark
Overview light Overview dark

Approvals β€” the gate. Every drafted CV, filled application, and connection note waits here for an approve or a reject-with-reason (the reason is what the agents learn from). Applications β€” the pipeline as a kanban board, with a detail drawer per role.

Approvals Applications board Job detail
Approvals Applications board Job detail

Agents β€” your crew at a glance: status, cadence, run counts. Pause any agent or leave it standing orders. Insights β€” run reports, market trends, and the advisor's skill-gap advice. Tracker β€” a manual job tracker plus an offline ATS keyword checker.

Agents Insights Tracker Β· ATS check
Agents Insights Tracker ATS

Installable PWA with phone push. Add JobPilot to your home screen and turn on push, then your phone buzzes the moment an agent needs you (via Firebase Cloud Messaging, no third-party service). Setup in docs/SETUP.md Β§ 6a.

JobPilot on mobile

Status & contributing

Actively maintained. Issues and PRs welcome, see CONTRIBUTING.md (short version: npm run audit:secrets must pass, demo mode must still work).

Credits

Built by Mohammed Hijazi. It started as my own job-search automation and got rebuilt for everyone. Powered by Claude. Mascot illustrations are AI-generated for this project.

MIT, see LICENSE.

About

Self-hosted crew of Claude AI agents for your job search. Runs on your Firebase + Claude, no third-party server, your data stays yours.

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Contributors