MCPcopy Index your code
hub / github.com/MNBoy/remote-job-assistant

github.com/MNBoy/remote-job-assistant @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
37 symbols 69 edges 19 files 0 documented · 0%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Remote Job Application Assistant

A Chrome extension that automates filling out remote job application forms using AI and your resume.

Video Tutorial

Check out the demo and explanation on LinkedIn: Remote Job Application Assistant Demo

Features

  • Analyzes forms on job application pages
  • Uses Google Gemini AI to generate appropriate responses based on your resume
  • Automatically fills out form fields
  • Works with various input types (text, select, checkbox, etc.)
  • Modern UI with React and Tailwind CSS
  • Resume-aware responses that pull from your experience and qualifications
  • Built-in resume editor - no need to manage external files
  • User-provided API keys - no server configuration needed

Tech Stack

  • Frontend: React, TypeScript, Tailwind CSS
  • Backend: Node.js, Express
  • AI: Google Gemini API (configurable to use other models like OpenAI)
  • Extension: Chrome Extension Manifest V3

Installation

Prerequisites

  • Node.js (v14 or later)
  • npm or yarn
  • Chrome browser
  • Google Gemini API key (obtain from https://ai.google.dev/)

Setup

  1. Clone this repository:

git clone https://github.com/yourusername/remote-extension.git cd remote-extension

  1. Install dependencies:

npm install

  1. Build the extension:

npm run build

  1. Start the backend server:

npm run start:server

  1. Load the extension in Chrome:
  2. Open Chrome and go to chrome://extensions/
  3. Enable "Developer mode" (top right)
  4. Click "Load unpacked"
  5. Select the dist folder from this project

Usage

  1. Click the extension icon in your browser toolbar
  2. Add your Gemini API key (you only need to do this once)
  3. Add your resume in the text area (you only need to do this once)
  4. Navigate to a remote job application form
  5. Click "Capture Form" to analyze the current form
  6. Once analysis is complete, click "Fill Form" to populate the fields with AI-generated responses based on your resume
  7. Review the information before submitting the form

Both your resume and API key are saved in your browser's local storage, so you only need to enter them once. You can edit either at any time by clicking their respective "Edit" buttons in the extension popup.

Development

To run in development mode with hot reloading:

npm run dev

This will start both the webpack watcher for the extension and the backend server.

API Key Management

The extension uses client-side API key management for several benefits:

  1. No API keys stored on the server
  2. Each user can use their own API key
  3. More transparent and secure - you control your own API key
  4. No hard-coded API keys in source code

To get a Google Gemini API key, visit: https://ai.google.dev/

Resume Storage

The extension stores your resume directly in the browser's local storage for convenience:

  • No need to manage external files
  • Resume data is sent with each form processing request
  • Edit your resume directly in the extension popup
  • Your data stays on your device for privacy

Extension points exported contracts — how you extend this code

FormField (Interface)
(no doc)
src/types/index.ts
Window (Interface)
(no doc)
src/popup/index.tsx
FormField (Interface)
(no doc)
server/types.ts
FormData (Interface)
(no doc)
src/types/index.ts
FormData (Interface)
(no doc)
server/types.ts
AIResponse (Interface)
(no doc)
src/types/index.ts
AIResponse (Interface)
(no doc)
server/types.ts
Message (Interface)
(no doc)
src/types/index.ts

Core symbols most depended-on inside this repo

sendStatusUpdate
called by 22
src/content/index.tsx
endContainerSelection
called by 2
src/content/index.tsx
cancelContainerSelection
called by 2
src/content/index.tsx
processFormWithAI
called by 1
src/background/index.ts
startContainerSelection
called by 1
src/content/index.tsx
captureFormDataFromContainer
called by 1
src/content/index.tsx
captureFormData
called by 1
src/content/index.tsx
fillFormWithData
called by 1
src/content/index.tsx

Shape

Function 27
Interface 10

Languages

TypeScript100%

Modules by API surface

src/popup/Popup.tsx12 symbols
src/content/index.tsx10 symbols
src/types/index.ts4 symbols
server/types.ts4 symbols
src/types/chrome.d.ts1 symbols
src/popup/index.tsx1 symbols
src/content/__tests__/utils.test.ts1 symbols
src/background/index.ts1 symbols
src/background/__tests__/api.test.ts1 symbols
server/index.ts1 symbols
scripts/create-icons.js1 symbols

For agents

$ claude mcp add remote-job-assistant \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact