← all projects

AI-Native Hiring Funnel

  • 2026 – Present
airecruitmentserverlessmcpawsmeta

The screening pipeline you're using right now. A single profile.json is the source of truth for this Gatsby site, an MCP server (8 tools incl. a semantic match_role engine), Schema.org + llms.txt + .well-known discovery, and a live serverless link-minter: paste a JD into a password-protected admin UI and get a short s.nishanttiwari.com link that returns a self-contained screening prompt — content-negotiated to serve a copy-and-paste page to browsers and raw text to AIs. No LLM in the request path, so it runs at ~$0. Surface propagation is regression-tracked in a custom agentic QA system (AQA).

Meta note: this is the system you're using to read this. Every claim here is checkable by interacting with the site itself.

The problem

"Let your AI screen me objectively" sounds great until you hit reality: most recruiter-facing AIs won't fetch a custom link (browsing off, or they refuse un-indexed personal domains), a hand-tuned profile reads as gamed, and anything that calls an LLM per screen costs money and leaks tokens. I wanted a screening funnel that is verifiable, works in any AI, and costs ~$0 to run — so a hiring manager can get an objective read in seconds without trusting my word or my web access.

The approach

One profile.json is the single source of truth. Everything else is generated from it, and a live serverless service mints short, shareable screening links on demand — each one a self-contained prompt that needs no retrieval and no LLM call.

Architecture

  • Single source of truth → many surfaces. profile.json drives this Gatsby site, an MCP server (8 tools, including a semantic match_role engine), Schema.org JSON-LD, an llms.txt, a .well-known/ai-profile.json discovery doc, and per-section JSON endpoints regenerated at build. A profile edit propagates everywhere from one place — enforced by a regression checklist (below).
  • Serverless link-minter. A password-protected admin UI takes a job description and returns a short s.nishanttiwari.com/<slug> link in seconds, no redeploy. It runs on AWS Lambda + DynamoDB (slug → JD), behind an API Gateway HTTP API with a Route 53 + ACM custom domain, all defined in CloudFormation. The Lambda fetches the live profile at request time (short-cached), so links never go stale.
  • Self-contained, zero-LLM prompt. A link returns the full screening prompt with the profile embedded inline + the role baked in. No LLM is called in the request path — it's string assembly — so each screen costs effectively nothing and doesn't depend on the recruiter's AI being able to browse.
  • Content negotiation. The same URL serves two ways: a browser gets a clean copy-and-paste page with a Copy button; an AI/curl gets raw text/plain. That's the fix for AIs that won't fetch links — the human opens it, clicks Copy, pastes into any model.
  • Agentic QA. Propagation across all ten surfaces (endpoints, discovery doc, /projects, /hire, live links, homepage, admin, MCP) is tracked as a standing test plan in AQA, a custom agentic test-management system — so a profile change isn't "done" until every surface reflects it.

Standout engineering

  • Credibility by construction. The prompt leads with independently verifiable signals (Upwork record, live products, public repos, a runnable MCP server) and explicitly tells the screener to weight those over self-description — turning "is this tailored?" into "here's what you can check."
  • The content-negotiation insight. The failure mode wasn't technical; it was that you can't make an arbitrary AI browse. Serving a browser-friendly copy page from the same link sidesteps it without changing what gets shared.
  • No-drift discovery. The page, the MCP server, and the live links all build from the same source module, so the machine-readable and human-readable views can't disagree.

Honest scope

This is a personal hiring funnel, not a product. The one friction no design removes: a non-browsing AI still needs a human to paste the text — so the goal was to make that paste a single click, not to pretend it isn't needed.

Outcomes

  • One profile.json drives every surface — site, MCP server, Schema.org JSON-LD, llms.txt, .well-known discovery doc, and per-section JSON endpoints — so a single edit propagates everywhere
  • Live serverless link-minter (AWS Lambda + DynamoDB + API Gateway HTTP API, Route 53 + ACM, CloudFormation IaC): a protected admin UI turns any JD into a short shareable screening link in seconds, no redeploy
  • Content-negotiated links: the same URL serves a one-click copy-and-paste page to a browser and raw text/plain to an AI, so screening works in any model whether or not it can browse
  • Self-contained screening prompt embeds the full profile inline and calls no LLM in the request path — zero token cost, no dependency on the recruiter's AI having web access
  • 5-dimension match_role engine with vendor-neutral skill aliasing and local MiniLM semantic matching (no API key); surface propagation regression-tracked in a custom agentic QA system (AQA)

Tech Stack

Lambda
DynamoDB
Node.js
React
API
back to projects

Copyright © 2026 Nishant Tiwari All Rights Reserved