Chrome Extension · MV3 · Free & Open Source

Know before
you apply.

Instant AI-powered job-fit scoring for international students and professionals in Germany. Score, analyse, and auto-fill — in under 3 seconds.

MV3 React 19 TypeScript 5.7 NVIDIA NIM 20+ Platforms
87
Match Score
Strong Apply
62
Match Score
Consider
41
Match Score
Stretch
18
Match Score
Skip

Everything you need to apply smarter

Open any job listing and get a complete fit analysis — no copy-pasting, no guessing.

🎯

Instant Match Scoring

Every job page gets a 0–100 score and a colour-coded verdict the moment you open it. Weighs skills, language, employment type, location, experience, and salary against your profile.

0–100 score Colour verdict <3 seconds
🔍

Skill Gap Analysis

See exactly which of your skills match the job requirements, which are missing, and which are nice-to-have bonuses — colour-coded at a glance so you know where you stand.

Matched skills Missing skills Bonus skills
🗣️

Language Requirement Detection

Detects explicit German and English requirements using a multi-layer approach (JSON-LD → regex → AI), then compares them against your CEFR levels. No more C1 surprises on page 3.

German levels CEFR matching AI fallback
📋

Feed Annotation

On listing pages, GreenApply injects quick-read tags directly onto job cards. See language requirements, job type, and cached match scores without opening every listing.

LinkedIn Stepstone Werkstudent
✉️

AI Cover Letter Generation

One click generates a tailored cover letter that references your actual skills and the specific role — streamed live. Uses a semantic vector index of your résumé to avoid inflating your experience.

Streamed Personalised Llama 3.3 70B
📝

Application Form Auto-Fill

Detects questions on SmartRecruiters, Greenhouse, Workday, and 15+ ATS platforms. Generates answers for motivation questions, enrollment status, work permit fields, and more.

15+ ATS Fill All Editable

What GreenApply looks like in use

A quick tour through the main extension screens, with the UI polished and framed for the website.

GreenApply skill gap view showing matched and missing skills
Skill gap
Matched and missing skills at a glance.
Analysis
GreenApply language requirement check for German and English
Language check
See requirement fit before applying.
Fit
GreenApply tags injected into LinkedIn job listings
Feed tags
Quick reads on job cards without opening them.
Browse
GreenApply application questions assistant with AI-filled answers
Application Q&A
Generate and refine answers in place.
Forms
GreenApply cover letter generator streaming a tailored letter
Cover letter
A tailored draft streamed live.
AI
GreenApply academic profile settings for transcript and degree information
Academic profile
Set your study background for better matching.
Profile

How the match score works

Every factor is weighted and explained. No black box.

Score =
  Skills            × 35%
  Language         × 25%
  Experience       × 15%
  Location         × 10%
  Employment Type  × 10%
  Salary           ×  5%
  + Academic Relevance modifier (±10 pts)
  + Job Freshness modifier        (±3 pts)
⚠️ Hard filters (visa blocking, wrong employment type, excluded company) cap the score at 34 and force a 🔴 Skip regardless of other factors.

20+ supported platforms

Dedicated extractors for major ATS systems plus all major German and global job boards.

ATS Platforms

  • SAP SuccessFactors
  • Oracle Taleo
  • Greenhouse
  • Lever
  • Workday
  • SmartRecruiters
  • BambooHR
  • Personio
  • Ashby
  • iCIMS
  • Recruitee
  • softgarden

Job Boards

  • LinkedIn
  • Indeed
  • Glassdoor
  • Monster
  • Stepstone
  • Xing
  • JobTeaser
  • Absolventa
  • Workwise
  • JOIN
  • Jobware
  • TU Berlin Jobs

Get up and running in minutes

Clone, build, and load in Chrome. No account required.

1

Prerequisites

Chrome / Chromium 120+, Node.js 20+, and an NVIDIA NIM API key (free tier available) for AI features.

2

Clone & Install

Clone the repository and install dependencies with npm.

3

Build & Load

Run npm run build, then load the dist/ folder as an unpacked extension.

4

Configure Profile

Upload your résumé, set your languages and CEFR levels, then paste your NVIDIA NIM API key in Settings.

Terminal
# 1. Clone the repo
git clone https://github.com/khaleel-git/GreenApply.git
cd GreenApply

# 2. Install dependencies
npm install

# 3. Build the extension
npm run build
# → outputs to dist/

# 4. Load in Chrome
#    chrome://extensions → Enable Developer mode → Load unpacked → select dist/
Chrome → Settings → AI Features
# After loading the extension:
1. Click the GreenApply icon  Settings
2. Resume tab         Upload PDF or DOCX (parsed locally)
3. Languages tab      Set your CEFR levels (A1–C2)
4. Academic tab       Upload transcript (optional)
5. Preferences tab    Job types, remote, minimum salary
6. AI Features tab    Paste your NVIDIA NIM API key

NVIDIA NIM API Key Setup

Cover letter generation, score explanations, and application Q&A require a free NVIDIA NIM API key.

1

Create a free NVIDIA account

Visit the NVIDIA Build portal and sign in or register for a free account.

build.nvidia.com →
2

Navigate to API Key section

After logging in, click your profile icon (top-right) → API KeysGenerate Personal Key.

Free tier includes 1,000 API calls/month for NIM-hosted models including Llama 3.1 8B and Llama 3.3 70B — more than enough for daily job searching.
3

Copy your API key

Your key starts with nvapi-. Copy it immediately — it will not be shown again.

⚠️ Store your key securely. Do not share it or commit it to version control. GreenApply stores it only in Chrome's local extension storage — it never leaves your browser except in NVIDIA API calls.
4

Paste into GreenApply Settings

Click the GreenApply icon in your toolbar → SettingsAI Features tab → paste the key in the NVIDIA NIM API Key field → Save.

Extension → Settings → AI Features
NVIDIA NIM API Key:  nvapi-xxxxxxxxxxxxxxxxxxxx

# Models used automatically:
# - meta/llama-3.1-8b-instruct   → job data extraction
# - meta/llama-3.3-70b-instruct  → cover letters & Q&A
# - baai/bge-m3                  → résumé embeddings
5

Verify it's working

Open any job listing on LinkedIn or Stepstone. If you see the GreenApply overlay with a match score, the extension is running. To test AI features specifically, open a job detail page and click Generate Cover Letter — you should see text start streaming within a few seconds.

No key? The extension still works for scoring and skill-gap analysis using local heuristics. Only cover letter generation, Q&A auto-fill, and score explanations require the API key.

Build locally and load it in Chrome

This project is meant to be used directly by developers and power users as an unpacked extension.

⚙️

npm run build

Compiles TypeScript, bundles React components, and outputs a production-ready extension to dist/.

Terminal
# Install dependencies first
npm install

# Production build
npm run build
# → dist/ contains the packaged extension

# Development (hot-reload)
npm run dev
# → rebuild on save, reload extension manually

# Type-check only
npm run type-check
After npm run build, load the dist/ folder from chrome://extensions using Load unpacked.
🧩

Unpacked extension workflow

Use the local build for development, review, and private installs without any store submission step.

  • 1 Run npm run build to generate the production extension.
  • 2 Open chrome://extensions and enable Developer mode.
  • 3 Click Load unpacked and select the dist/ folder.
  • 4 Set your profile, add the NVIDIA NIM key, and try the extension on a job listing.
  • 5 Share the repository if you want others to build it locally too.

Tech stack

Built with modern web standards on a lightweight, privacy-first architecture.

Layer Technology
Extension frameworkChrome MV3, CRXJS + Vite
UIReact 19, inline styles (no external CSS deps)
LanguageTypeScript 5.7
AI inferenceNVIDIA NIM — Llama 3.1 8B (extraction) · Llama 3.3 70B (cover letters)
Embeddingsbaai/bge-m3 via NIM
StorageIndexedDB via idb (local only)
PDF parsingpdfjs-dist (local)
DOCX parsingmammoth (local)

Your data stays on your machine

No accounts, no tracking, no servers. Just your browser and NVIDIA's inference API.

🔒

Local résumé parsing

All PDF and DOCX parsing happens in your browser. Your résumé is never uploaded anywhere.

💾

Local-only storage

Your profile and job data live in IndexedDB — never sent to any server.

🌐

Minimal external calls

Only the NVIDIA NIM API is called — carrying only the job description text and anonymised profile signals.

🚫

Zero tracking

No analytics, no event tracking, no accounts required. Ever.