AWS-Native Candidate Matching System
An event-driven AI platform combining pgvector hybrid search, evidence-based project scoring, and Bedrock multi-agent pipelines to match consulting profiles against incoming RFP assignments in real time.
Problem
Consulting delivery managers and sales leaders receive dense technical RFPs daily. Manually parsing requirement specifications, searching external consultant skill databases, evaluating project experience recency, and assessing security clearances takes hours per assignment, slowing response times for competitive bids.
Role
Lead Cloud Architect & Full-Stack Engineer. Designed and implemented the complete serverless architecture, AWS CDK IaC definitions, Drizzle ORM schemas with pgvector, third-party CV database ingestion pipeline, Bedrock extraction prompts, LangGraph multi-agent StateGraphs, and automated test suites.
Approach
Built an event-driven serverless pipeline on AWS. Ingests RFPs via Outlook forwarding to Amazon SES and S3, extracting structured requirements using Amazon Bedrock. Syncs consultant profiles from external CV and ERP databases into PostgreSQL RDS. Evaluates candidates using an evidence-based scorer with recency decay (<2 yrs 1.0, 2-5 yrs 0.70, >5 yrs 0.55) and hybrid pgvector retrieval (RRF). Executes a 5-step LangGraph StateGraph to produce zero-hallucination project citations, ATS objection mitigations, and client pitch snippets delivered via SES email reports.
Outcome
Compressed end-to-end candidate shortlisting and pitch generation from several hours to under 3 minutes. Successfully verified in live production against real Ericsson 5G/6G RAN Baseband L1 requirements, shortlisting 10 senior telecom consultants with 71–83 pt scores. Backed by 51 test suites and 476 automated unit tests.
System Architecture & Data Flow
The AWS-Native Candidate Matching System is an enterprise-grade AI matching platform built with AWS CDK (TypeScript) and Fastify running on serverless infrastructure. It bridges commercial consulting intake with deep technical candidate evaluation.
Outlook Forward ──▶ Amazon SES (MIME) ──▶ Amazon S3 (Raw Inbox)
│
▼
Lambda (email-ingest)
│
▼
Step Functions State Machine
│
┌─────────────────────────┴─────────────────────────┐
▼ ▼
Bedrock Requirement Parser Third-Party CV DB Ingestion Pipeline
(Extracts Must/Nice-Haves, (EventBridge Scheduler ──▶ S3 Snapshots
Security Clearance, Domains) ──▶ SQS + DLQ ──▶ PostgreSQL RDS)
│ │
└─────────────────────────┬─────────────────────────┘
▼
Hybrid Retrieval Engine
(Deterministic SQL + pgvector Embeddings + RRF)
│
▼
Evidence-Based Scorer
(Recency Decay: <2yr=1.0, 2-5yr=0.70, >5yr=0.55;
Unverified skill tags discounted to 0.35x; 50pt floor)
│
▼
LangGraph Multi-Agent Evaluation
(Grounded Project Citations, ATS Objection Defense,
Interview Questions & Custom Client Pitch Snippets)
│
▼
Amazon SES Notification
(Decision-ready HTML/Text email with fit badges)
Core Engineering Innovations
1. Multi-Channel Ingestion & Automated Extraction
- Email RFP Ingestion: Captures forwarded client emails via Amazon SES in
eu-north-1with S3 raw MIME storage and Cloudflare MX routing. Enforces a fail-closed sender allowlist (EMAIL_INGEST_ALLOWED_SENDERS) and duplicate-suppression mechanisms. - Structured Schema Extraction: Employs Amazon Bedrock (Claude 3.5 Sonnet / LLMs) to parse unstructured RFP text and attachments into typed JSON schemas isolating must-have competencies, nice-to-have skills, years of experience, telecom domain tags, and security clearance requirements (
Säkerhetsprövning).
2. Evidence-Based Recency Scorer
Traditional ATS systems match on static skill tags, which are prone to keyword stuffing and inflation. This platform implements a mathematical scoring model that validates claims against written project histories:
- Verified Evidence: Skills documented within project narrative descriptions receive full scoring weight.
- Recency Decay: Multiplies verified evidence by time-based decay coefficients:
< 2 years ago: 1.00x2 – 5 years ago: 0.70x> 5 years ago: 0.55x
- Unverified Tags: Skills listed only in a profile header without supporting project evidence are discounted to 0.35x.
- Coverage Smoothing: Implements a non-linear coverage curve ($\text{coverageFactor} = 0.40 + 0.60 \times \text{mustHave}$) preventing artificial mathematical collapse on long requirement lists.
- 50-Point Floor: Enforces a hard qualification floor, routing low-match requests immediately to an automated fast-no-fit notification with broker decline blurbs.
3. Hybrid Search & Vector Embeddings
- Integrates Amazon Titan Text Embeddings with RDS PostgreSQL (
pgvector). - Uses Reciprocal Rank Fusion (RRF) to blend exact keyword/Boolean matches with dense semantic vector similarity, finding non-obvious candidate fits who used alternative terminology for the same underlying engineering competencies.
4. LangGraph Multi-Agent Synthesis
A 5-step LangGraph StateGraph pipeline executes with fail-open circuit breakers:
- Candidate Verification: Validates top-3 candidate project citations with exact start/end dates.
- ATS Objection Mitigations: Identifies potential client objections (e.g. missing niche tooling) and crafts proactive counter-arguments based on adjacent demonstrated competencies.
- Interview Preparation: Generates 3 targeted technical questions for Consultant Managers to verify depth before client submission.
- Client Pitch Snippets: Synthesizes an executive summary highlighting why this specific engineer will succeed on the assignment.
5. Automated Decision Notifications
- Automatically formats and dispatches comprehensive decision emails via Amazon SES containing:
- Visual match badges (🟢 Direct Match 80+, 🟡 Viable with Gaps 65–79, 🟠 Stretch 50–64).
- Explicit security vetting indicators.
- Formatted client pitch text ready to copy-paste into broker portals.
Production Verification & Test Coverage
- Live Production Validation: Successfully tested against real-world client requests, including a complex Ericsson 5G/6G RAN Baseband L1 engagement—shortlisting 10 senior telecom consultants with verified scores of 71–83 points in under 3 minutes.
- Automated Test Suite: Engineered with strict Red/Green TDD, featuring 51 canonical test suites and 476 automated tests executing in ~7.9 seconds.