AiSaasAutomationAwsTypescript

UpMatch

Multi-tenant SaaS that scores every new Upwork job in real time and auto-bids for 90 paying freelancers. A client's product doing $40-50K MRR; I built it from an empty repository and I'm the only engineer on it.

$40-50K
Platform MRR
90
Paying freelancers
1
Engineers on it
~5 min
Job → bid

Overview

UpMatch wins Upwork jobs while freelancers sleep. It watches the job feed, scores every new posting against each freelancer's profile, and submits a personalized, AI-written proposal within about 5 minutes of the job going live, which is the window where proposals actually get read.

Live in production. 90 paying freelancers, $40-50K MRR, one engineer. It's a client's product.

Where it started

Before the app, the founder's team was bidding by hand. The customers were already there; the bottleneck was hours in the day. I built the platform from an empty repository, and they brought the whole operation onto it, same team, same customer book, now spending their time on the work the software can't do. Getting a live business to actually move onto new software is the part that usually fails, and it's the part I'd point at first.

How it works

  • Ingestion: polls Upwork every minute, per tenant, around the clock.
  • Scoring: each job is rated against the freelancer's profile (skill match, budget, location, client history). Threshold crossed → bid triggered.
  • Bidding bot: secure session handling for customer Upwork accounts, headless browser automation, AI-generated personalized proposals.
  • Dashboard: React + TypeScript client portal with the proposal pipeline, response analytics, and account configuration. Multi-tenant by design.

Owning the engineering

I architected and run the platform: front-end, Node.js back-end, PostgreSQL on RDS, AWS serverless infrastructure (Lambda, API Gateway, CloudFront, S3) managed with Terraform, GitHub Actions CI/CD, and CloudWatch monitoring and alerting. LLM orchestration uses Claude and ChatGPT for proposal generation.

Tech stack

TypeScriptReactNode.jsPostgreSQL (RDS)AWS LambdaAPI GatewayCloudFrontTerraformGitHub ActionsBrowser automationClaude / ChatGPT