Powered by LangGraph + Gemini 2.0 Flash

Your Job Search,
Fully Automated.

Cold email automation. Google Form auto-fill. Multi-board job scraping. One agentic AI platform with a LangGraph pipeline and RAG system that turns your resume into personalised applications.

Built With
FastAPI FastAPI
Next.js Next.js 16
Python Python
TypeScript TypeScript
MongoDB MongoDB
🧠 LangGraph
⚡ Gemini 2.0
🔮 ChromaDB

Three Modules. One Platform.

Every repetitive step of your job search — automated, personalised, and intelligent.

✉️

Cold Email Automation

Provide HR email + job description (text, screenshots, or PDFs). The LangGraph pipeline extracts details, retrieves your resume context via RAG, and drafts a personalised cover email — delivered via Resend API through your own verified domain (e.g., hi@yourdomain.com) with your resume PDF attached.

📝

Google Form Filler

A Chrome Extension that scrapes Google Form questions, sends them to the Gemini backend, and auto-fills every field using your profile context — handling text, MCQ, checkboxes, and dropdowns intelligently.

🔍

Job Scraping Engine

Scrapes Indeed, LinkedIn, and ZipRecruiter in parallel. Two-layer deduplication (MD5 + MongoDB) ensures no duplicate listings. Results normalised into a unified schema with salary, location, and apply links.

🧠

RAG Profile System

Upload your resume, cover letters, and project documents. They're chunked, embedded with Gemini, and stored in ChromaDB. Every email and form answer is enriched with your most relevant experience — automatically.

🔄

Bulk Re-Apply

Select a date range, fetch all past applications, and re-draft fresh cover emails with updated profile context. Concurrency-limited to 5 simultaneous LLM calls with exponential backoff retry.

📊

Dashboard & Analytics

Track every sent application, monitor delivery status, search by company/role, and view aggregate stats — all backed by MongoDB with real-time aggregation queries.

Cold Email Automation

A 4-node LangGraph pipeline that transforms raw job postings into personalised, ready-to-send cover emails — delivered through your own custom domain via the Resend API, with your resume attached.

  • Multimodal input: paste text, drop screenshots, upload PDFs, or Ctrl+V from clipboard
  • Multi-job segmentation: Upload 5 screenshots and the AI identifies each job automatically
  • Two-phase HITL: AI drafts, you edit & approve, then bulk-send with one click
  • Smart duplicate detection: ChromaDB cosine similarity + LLM cross-validation
  • Agent feedback loop: Give natural language instructions to regenerate all drafts
  • Emails sent via Resend API through your own DNS-verified domain (e.g., aryan@yourdomain.com) — not a generic sender. Resume PDF auto-attached
LangGraph Pipeline
🔍

Extract Job Info

Gemini Vision processes text + images → structured JSON with company, role, HR email, requirements

🔄

Check Duplicates

ChromaDB cosine similarity (0.93 threshold) + LLM cross-validation to flag recent duplicates

🧠

Fetch Profile Context

RAG retrieval: top-5 most relevant resume/project chunks from ChromaDB user_profile collection

✉️

Generate Cover Email

Job info + profile context → Gemini drafts a compelling, personalised subject + body

📤

Send via Resend API

Delivered through your own domain (e.g., aryan@yourdomain.com) — with resume PDF attached. Not a generic sender.

4
Graph Nodes
0.93
Dedup Threshold
15
RPM Limit
Chrome Extension Pipeline
🌐

Content Script Scrapes Form

Injected into docs.google.com/forms/* — extracts questions, types, options, and form title

📦

Background Worker Relays

Service worker (MV3) sends structured question data to FastAPI backend

🧠

RAG + Batch LLM Generation

Extracts metadata, retrieves top-8 profile chunks, then single LLM call answers all questions

📝

Auto-Fill + Validate

Extension fills each field. AnswerValidator ensures MCQ/checkbox answers match available options

5
Question Types
8
RAG Chunks
1
LLM Call

Google Form Filler

A Manifest V3 Chrome Extension that scrapes Google Forms and auto-fills answers using your resume context — handling every question type intelligently.

  • Supports text, paragraph, multiple choice, checkbox, and dropdown fields
  • Metadata extraction: LLM identifies company name + role from form title and questions
  • Batch answer generation: single LLM call processes all questions at once (no per-field calls)
  • Answer validation: case-insensitive matching ensures MCQ selections are exact
  • Session persistence: every fill is saved to MongoDB with full Q&A pairs
  • History browsable via frontend dashboard at /forms

Job Scraping Engine

Automated job discovery across three major job boards — scraped in parallel with robust deduplication and a unified listing dashboard.

  • Parallel scraping: Indeed, LinkedIn, ZipRecruiter via asyncio.gather()
  • Fault-tolerant: A 403 from one board doesn't block results from others
  • Two-layer dedup: Internal MD5 hash + cross-run MongoDB lookup
  • Gemini-powered extraction for custom URLs: HTML → BeautifulSoup → structured JSON
  • Unified JobListing schema: company, salary, location, experience, apply link, HR contact
  • Full CRUD API: trigger scrapes, browse listings, delete entries
Scraping Pipeline
🎯

Target Roles Input

User provides roles (e.g., "React Developer") + max results per role

Parallel Site Scraping

python-jobspy queries Indeed, LinkedIn, ZipRecruiter simultaneously via asyncio.gather()

🧹

Two-Layer Deduplication

Internal MD5 hash dedup within run, then cross-run check against MongoDB scraped_jobs

💾

Save & Display

New jobs inserted into MongoDB. All unique results returned to frontend with badges

3
Job Boards
2
Dedup Layers
Roles

Full-Stack Architecture

A FastAPI modular monorepo with shared services, async MongoDB, and a React dashboard.

Frontend
  • Next.js 16 + React 19
  • TailwindCSS 4
  • TypeScript
  • 6 pages / routes
  • 9 components
AI / LLM
  • Gemini 2.0 Flash Lite
  • LangGraph 0.2.60
  • Gemini Embedding 001
  • Vision + Text Gen
  • Token-bucket rate limiter
Data Layer
  • ChromaDB (Vector DB)
  • MongoDB (Motor async)
  • 6 collections
  • 20+ DB operations
  • Cosine HNSW index
Integrations
  • Resend Email API
  • python-jobspy 1.1.x
  • Chrome Extension MV3
  • PyMuPDF + python-docx
  • BeautifulSoup + LXML
# Start the entire platform with two commands:

# Backend (FastAPI + LangGraph + ChromaDB + MongoDB)
cd backend && uvicorn main:app --reload --port 8000

# Frontend (Next.js Dashboard)
cd frontend && npm run dev

# Chrome Extension: Load /frontend/neural-mailer-extension/ as unpacked extension

Ready to automate your job search?

Clone the repo, add your Gemini + Resend API keys, upload your resume, and start sending personalised applications in minutes.