Inspiration

Recruitment is broken on both sides. Recruiters receive hundreds of CVs claiming "5 years React experience" — but have no time to verify by checking GitHub, LinkedIn, portfolios, and blogs for each candidate. Meanwhile, candidates apply to dozens of jobs, get rejected, and never learn what skills they're missing or how to improve.

We asked: what if AI agents could browse the internet like a human recruiter — but at scale? And what if candidates could get the same transparency?

What it does

TalentLens is a two-sided AI career platform:

For Recruiters: Upload a CV → AI parses it → TinyFish crawls LinkedIn (stealth mode), portfolios, blogs, deployed apps, and company websites to verify claims → AI scores the candidate with all evidence combined → recruiter sees an explainable 0-100 score with strengths, gaps, and per-skill breakdown.

For Candidates: Upload your CV → select any job description → AI gap analysis shows exactly what matches and what doesn't, with per-skill scores → click any skill gap → TinyFish crawls dev.to and GitHub to find specific tutorials and repos → OpenAI synthesizes mentor-style advice with key takeaways for each resource. Results are persisted — revisit anytime.

How we built it

  • TinyFish powers 7 web crawling use cases: LinkedIn enrichment (stealth), portfolio/blog/project analysis, company verification, GitHub repo discovery via Google, and learning resource discovery (dev.to + GitHub)
  • OpenAI GPT-4o-mini handles CV parsing (PDF → structured data), candidate-job scoring, gap analysis, search query generation, and mentor advice synthesis
  • 3-step learning flow: OpenAI analyzes the skill gap → generates targeted search keywords → TinyFish crawls with those keywords → OpenAI extracts individual resources from raw crawl data and synthesizes advice — all in one pass
  • NestJS + TypeORM + PostgreSQL backend with BullMQ for async CV processing
  • React 19 + Vite + Tailwind + shadcn/ui frontend with SSE streaming for real-time progress
  • All TinyFish calls use SSE streaming so users watch agents browse the web in real-time

Challenges we ran into

  • LinkedIn's auth walls — TinyFish stealth mode with 3-method fallback (direct public view → Google cache → Yandex Translate) was essential
  • GitHub search is hard to crawl — switched to Google with site:github.com which gave much better results
  • TinyFish returns unstructured data — instead of brittle JSON parsing, we send raw crawl text directly to OpenAI for extraction + synthesis in one pass. OpenAI handles messy text far better than regex
  • Making learning resources actually useful — generic "learn Kubernetes" advice is useless. The 3-step flow (OpenAI → TinyFish → OpenAI) ensures search queries are targeted and each resource gets specific, actionable takeaways

Accomplishments that we're proud of

  • 7 TinyFish use cases in one product, all SSE-streamed with live progress
  • Explainable AI scoring — every score shows exactly what data it's based on, with per-skill evidence
  • The learning mentor flow — candidates go from "rejected, don't know why" to "here's exactly what to improve and here are specific blog posts and repos to learn from"
  • Full persistence — gap analysis and learning resources are cached in DB, survive page refreshes, and build a learning history

What we learned

  • TinyFish's SSE streaming API is incredibly powerful for building real-time UIs — users love watching the agent browse
  • Stealth browser profiles are essential for sites like LinkedIn that aggressively block bots
  • Letting OpenAI handle unstructured text extraction is far more reliable than trying to force TinyFish to return perfect JSON
  • The best UX for AI-heavy features is progressive disclosure: show progress logs while processing, then reveal structured results

What's next for TalentLens — AI Career Platform

  • Interview prep — generate practice questions based on your specific gaps and the target role
  • Learning progress tracking — mark resources as completed, track skill improvement over time
  • More platforms — expand TinyFish crawling to Udemy, Coursera, YouTube tutorials, and LeetCode
  • Candidate-recruiter matching — let candidates opt-in to be discoverable by recruiters, with verified skill profiles

Social

Built With

Share this project:

Updates