Checking server status...
Step 01

Extension Required

The upload process has been moved! Please use the WorkFill Chrome Extension popup to upload your resume.

Important
Your Gemini API key must now be set via the .env file in your Flask app folder!
Step 02

Install Extension

Load the Chrome extension to detect and auto-fill fields on any Workday job application page.

  1. Download the project ZIP and extract it
  2. Open Chrome → chrome://extensions
  3. Enable Developer Mode toggle (top right)
  4. Click Load unpacked → select the extension/ folder
  5. Pin the ⚡ WorkFill icon to your toolbar
  6. Go to any Workday job page → click ⚡ → Scan → Autofill
How It Works

Architecture Overview

CONTENT SCRIPT
Injected into Workday pages. Scans all input, select, and combobox elements with label extraction via ARIA attributes.
FLASK API
Receives field descriptors from the extension, calls Gemini 1.5 Flash with your resume context, returns a field→value mapping JSON.
GEMINI AI
Intelligently maps field labels (even vague ones) to the correct resume data using context understanding, not just keyword matching.
DOM FILLER
Uses simulateInput() to trigger React/Angular synthetic events so Workday's frontend actually registers the values.
Parsed Resume

No Resume Loaded

Upload your resume in the Setup tab first.

Extension Usage

Using WorkFill on Workday

Step-by-step guide for filling out Workday job applications automatically.

  1. Make sure the Flask server is running: python app.py
  2. Upload your resume at http://localhost:8000 and click Parse Resume
  3. Navigate to a Workday job posting and click Apply
  4. Click the ⚡ WorkFill icon in your Chrome toolbar
  5. Click 🔍 Scan Page — it will detect all visible form fields
  6. Click 🎯 Highlight to see which fields were detected (purple glow for 3 seconds)
  7. Click ⚡ Autofill with AI — Gemini fills all fields automatically
  8. Review filled fields and correct any mistakes before submitting
  9. Navigate to next page of the form and repeat steps 5-8
API Endpoints

Flask API Reference

GET / Dashboard UI
POST /api/upload-resume Parse resume (called by extension)
POST /api/autofill Map fields → values
GET /api/resume-status Check status
GET /api/resume-data Get parsed data
POST /api/clear Clear resume
Troubleshooting

Common Issues

Fields not detected?
Workday loads forms dynamically. Wait for the page to fully load, then scan again.

Flask not running error?
Start Flask with python app.py and ensure port 8000 is free.

Values not sticking?
Some Workday fields need manual interaction after autofill. Click on the field and press Tab.