Completed case study
CakeOrFakeAI-Powered Upwork Applicant Screening Chrome Extension
AI-powered Chrome Extension that turns hours of Upwork applicant screening into minutes
- Role
Lead Full-Stack Developer & Product Engineer
- Stack
- Chrome Extension (Manifest V3)
- JavaScript
- Firebase Cloud Functions (Node.js 20, 2nd Gen)
- Firebase Authentication
- Cloud Firestore
- Firebase Hosting
- Client
Ayana
HR Tech / Recruitment Automation
Oct 2025 – Feb 2026- Team
Solo developer

01The challenge
Upwork recruiters posting jobs receive dozens to hundreds of freelancer applications per listing. Manually reading each proposal, evaluating portfolios, checking for red flags, and comparing candidates is an exhausting, time-consuming process that often leads to poor hiring decisions due to reviewer fatigue. Recruiters needed a way to quickly identify the best candidates without sacrificing evaluation quality. The solution also had to work seamlessly within Upwork's existing interface — recruiters shouldn't have to leave their workflow or copy-paste data into external tools.
Scope: Chrome Extension (Manifest V3), 35 Firebase Cloud Functions, 3 OAuth integrations, Stripe/RevenueCat payment system, Klaviyo email automation, affiliate tracking system, Firebase Hosting for purchase pages
Key features
- AI Applicant Analysis with GPT-4 scoring
- Red Flag & Green Flag detection system
- Score Injection directly into Upwork dashboard
- Sherlock Deep Research — deep-dive candidate profiling
- Personalized interview/outreach message generator
- Professional rejection message generator
- Multi-provider authentication (Google, Facebook, Apple)
- Credit-based billing with RevenueCat + Stripe
- Real-time credit balance management with deficit protection
- Intelligent result caching to reduce API costs
- Analysis history and report management
- Candidate tagging and rating system
- Affiliate referral system with conversion tracking
- Klaviyo email automation (welcome, purchase, re-engagement)
- Push notification support via FCM
- Custom red/green flag configuration per user
- Report deduplication and cleanup
- Issue reporting system




Overview
Designed and built a full-stack Chrome Extension that integrates directly into Upwork's recruiter interface to automate applicant screening using AI. The extension analyzes freelancer proposals, assigns risk scores, detects red and green flags, and injects AI-generated scores directly into the Upwork dashboard — eliminating hours of manual review per job post. Built with a Firebase backend handling authentication (Google, Facebook, Apple), real-time credit management, RevenueCat/Stripe payment processing, Klaviyo email marketing automation, and an affiliate referral system. The product is live on the Chrome Web Store and serving paying customers.
- 35 endpoints
- Cloud Functions
- 3 (Google, Facebook, Apple)
- Auth Providers
- GPT-4
- AI Model
- RevenueCat + Stripe
- Payment Processing
- 5 Klaviyo triggers
- Email Automation Events
- 1.5 MB
- Extension Size
- 9 min (analysis)
- Function Timeout
02The approach
Built a Chrome Extension using Manifest V3 that injects directly into Upwork's recruiter dashboard. The extension scrapes applicant proposal data from the page, sends it to Firebase Cloud Functions for AI analysis using GPT-4, and receives back scored results with detailed red/green flag breakdowns. Scores are injected back into the Upwork DOM so recruiters can see AI ratings alongside native Upwork data. Implemented a credit-based monetization model with RevenueCat/Stripe for payments, Firebase Auth supporting Google, Facebook, and Apple sign-in, and Klaviyo for automated email marketing flows. Added advanced features like Sherlock Deep Research for in-depth candidate profiling, personalized message generators for outreach and rejections, and an intelligent caching layer to minimize API costs.
Built to a standard
- Live on Chrome Web Store
- Production Firebase Backend
- HMAC-SHA256 Webhook Security
- Timing-Safe Auth Verification
- Atomic Credit Transactions
- 5s Timeout on All External Calls
- Fire-and-Forget Non-Critical Paths
- High performance
- Accessible
- TypeScript
- Tested
- Responsive
- SEO optimised
- Secure
03Problems solved
Problem
Chrome Extension + Firebase Auth integration across 3 OAuth providers
Solution
Built a dual-method auth flow using chrome.identity.getAuthToken with launchWebAuthFlow fallback, supporting Google, Facebook, and Apple sign-in with custom token generation on the backend
Problem
Injecting AI scores into Upwork's dynamically-loaded DOM
Solution
Developed a content script with MutationObserver that detects applicant cards as they load, matches them to cached analysis results, and injects score badges without breaking Upwork's UI
Problem
Managing credit-based billing with atomic transactions
Solution
Implemented Firestore atomic transactions for credit deduction and addition, with deficit protection, idempotency checks on purchases, and a RevenueCat webhook with HMAC-SHA256 verification
Problem
Stripe price immutability when updating product pricing
Solution
Created versioned product identifiers (v2) in both RevenueCat and Stripe, updated offering configurations, and maintained backward compatibility in webhook handlers
Problem
Non-blocking third-party integrations (Klaviyo, affiliates) in critical paths
Solution
Implemented fire-and-forget pattern with 5-second AbortController timeouts, email guards, and 24-hour cooldowns to prevent event spam while ensuring core operations never fail due to third-party outages
Need something like this?
I build products like CakeOrFake for clients worldwide
The closest package is AI Integration & Automation: fixed price, fixed scope, delivered remotely. Tell me what you are building and I will say which tier fits.