Paste
Job description enters from the Upwork page
An AI-powered Chrome extension that automates job analysis and experience matching. Vector embeddings, semantic search and continuous feedback learning turn a raw Upwork posting into a proposal grounded in work you have actually delivered.

The pipeline
Job description enters from the Upwork page
Keywords, context and constraints via NLP
Text becomes vectors in the experience index
Five-stage similarity search over past work
One proposal grounded in retrieved evidence
Won / lost / no-reply feedback re-tunes matching
Architecture
Reads the Upwork posting directly in the browser, pulls requirement-based keywords and project context with NLP, then converts the result into vector embeddings for downstream retrieval.
Signal contract
IN · raw job description
OUT · keywords + embedding vector
stage 1 of 3
Retrieval layer
Job text and experience records live in the same embedding space, so a posting asking for "onboarding billing flows" reaches a past project filed under subscription checkout — no shared keyword required. Each match returns with a similarity score, and every scored proposal is logged against its outcome.
Those outcomes — won, lost, interview, no reply, withdrawn, pending — are the training signal. Agent 3 reads them back into ranking so the retrieval layer keeps drifting toward the work that actually converts.
Sample match set
cosineCosine similarity between the job embedding and stored experience vectors, re-weighted by recorded feedback.
Impact
Requirement analysis that used to be a read-and-highlight exercise happens the moment the job loads.
Every proposal cites retrieved past projects instead of generic claims, so response speed and fit both improve.
Each recorded outcome sharpens retrieval, so the matching layer gets measurably better the more it is used.
Technologies & concepts