From 7eb6390f8c6f6132c7fd2c2672e8f687def0489f Mon Sep 17 00:00:00 2001 From: David Kifer Date: Wed, 22 Jul 2026 19:52:22 -0400 Subject: [PATCH] Implement interactive Shoulder-Surfing Mode for live form fill review and manual overrides --- .app.pid | 2 +- .data.json | 23 +++- src/components/WalkthroughTailor.tsx | 183 ++++++++++++++++++++++++++- 3 files changed, 204 insertions(+), 4 deletions(-) diff --git a/.app.pid b/.app.pid index dbb6039..3b81341 100644 --- a/.app.pid +++ b/.app.pid @@ -1 +1 @@ -126644 +128554 diff --git a/.data.json b/.data.json index 5f2918f..5f88ebb 100644 --- a/.data.json +++ b/.data.json @@ -174,6 +174,27 @@ } }, "ai_job_portal_applications": { - "items": [] + "items": [ + { + "company": "Twilio: Principal Engineer", + "role": "Twilio: Principal Engineer", + "platform": "Greenhouse", + "location": "Remote US / Global", + "salaryRange": "$150,000 - $210,000", + "status": "Applied", + "matchScore": 85, + "appliedAt": "2026-07-22T23:52:07.115Z", + "jobUrl": "https://weworkremotely.com/remote-jobs/twilio-principal-engineer", + "jobDescription": "Remote software development opening.", + "autoApplied": true, + "timeline": [ + { + "date": "7/22/2026", + "action": "Quick AI Auto-Applied from feed" + } + ], + "id": "app_1784764327115_4a5x6" + } + ] } } \ No newline at end of file diff --git a/src/components/WalkthroughTailor.tsx b/src/components/WalkthroughTailor.tsx index d6523d5..e634ff8 100644 --- a/src/components/WalkthroughTailor.tsx +++ b/src/components/WalkthroughTailor.tsx @@ -14,7 +14,13 @@ import { Wand2, Bot, BrainCircuit, - ListCheck + ListCheck, + Eye, + Play, + Pause, + Edit3, + ExternalLink, + ShieldAlert } from 'lucide-react'; interface WalkthroughTailorProps { @@ -50,7 +56,21 @@ export const WalkthroughTailor: React.FC = ({ insights: string; } | null>(null); - const [copiedType, setCopiedType] = useState<'resume' | 'cover' | null>(null); + // Shoulder Surfing Mode State + const [isSurfingActive, setIsSurfingActive] = useState(false); + const [surfingStepIndex, setSurfingStepIndex] = useState(0); + const [isSurfingPaused, setIsSurfingPaused] = useState(false); + + const [surfingFormData, setSurfingFormData] = useState({ + fullName: userProfile.fullName || 'David Kifer', + email: userProfile.email || 'dkifer19@gmail.com', + phone: userProfile.phone || '(555) 019-2831', + linkedin: userProfile.linkedin || 'https://linkedin.com/in/david-kifer', + yearsExperience: '8+ Years', + workAuthorization: 'US Citizen / Authorized', + tailoredBulletsText: '', + customCoverLetterText: '' + }); // Step 1: Parse Job posting details using Gemini const handleParsePosting = async () => { @@ -254,6 +274,13 @@ export const WalkthroughTailor: React.FC = ({
+
)} + {/* Shoulder Surfing Mode Interactive Live Modal */} + {isSurfingActive && ( +
+
+ + {/* Modal Header */} +
+
+
+ +
+
+

+ Shoulder-Surfing Live Inspector Mode + Live Visualizer +

+

Watch the AI auto-fill the application step-by-step and modify any field before final submission.

+
+
+ +
+ + +
+
+ + {/* Simulated Live Web Browser Window Frame */} +
+ + {/* Browser Address Bar */} +
+
+ + + +
+
+ {jobUrl || `https://boards.greenhouse.io/${companyName.toLowerCase() || 'company'}/jobs/apply`} + + SSL Verified + +
+
+ + {/* Form Inspection & Field Editor Grid */} +
+ +
+

+ + Interactive Form Field Auto-Filler (Review & Edit Any Field) +

+ AI Assistant: Active +
+ +
+
+ + setSurfingFormData({ ...surfingFormData, fullName: e.target.value })} + className="w-full bg-slate-900 border border-slate-800 rounded-xl px-3 py-2 text-slate-100 focus:border-amber-400 focus:outline-none" + /> +
+ +
+ + setSurfingFormData({ ...surfingFormData, email: e.target.value })} + className="w-full bg-slate-900 border border-slate-800 rounded-xl px-3 py-2 text-slate-100 focus:border-amber-400 focus:outline-none" + /> +
+ +
+ + setSurfingFormData({ ...surfingFormData, phone: e.target.value })} + className="w-full bg-slate-900 border border-slate-800 rounded-xl px-3 py-2 text-slate-100 focus:border-amber-400 focus:outline-none" + /> +
+ +
+ + setSurfingFormData({ ...surfingFormData, linkedin: e.target.value })} + className="w-full bg-slate-900 border border-slate-800 rounded-xl px-3 py-2 text-slate-100 focus:border-amber-400 focus:outline-none" + /> +
+
+ +
+ +