How paing-tech/nextoffer_job-search-intelligence-agent works
NextOffer is a job-search intelligence agent: users analyze job links or pasted descriptions, track applications through chat and application views, and connect Google to scan Gmail updates and synchronize a Sheet. The browser-facing Next.js app proxies authenticated requests to FastAPI; backend workflows use an async PostgreSQL store and a Foundry-hosted LLM. The graph includes documented Gmail scanning and scheduled scans despite incomplete excerpts; unsampled UI and integration internals are represented conservatively.
Main entry points: routers API routes · scans.py Gmail scan pipeline · applications.py Application tracking · jobs.py Job-link analysis
Components 23
Web experience
- Next.js experience
frontend/src/components/chat.tsx - Session proxy
frontend/src/app/api/backend/[...path]/route.ts
API and agent
- FastAPI app
backend/app/main.py - Token verification
backend/app/auth/deps.py - API routes
backend/app/routers - Chat agent loop
backend/app/agent/loop.py - Agent tools
backend/app/agent/tools.py - Foundry client
backend/app/llm/client.py
Job tracking
- Job-link analysis
backend/app/services/jobs.py - Posting fetcher
backend/app/integrations/jobfetch.py - Structured extraction
backend/app/llm/extraction.py - Application tracking
backend/app/services/applications.py - Tracker formatting
backend/app/services/formatting.py - PostgreSQL data
backend/app/db/models.py
Google workflows
- Gmail scan pipeline
backend/app/services/scans.py - Scheduled scans
backend/app/services/auto_scan.py - Gmail integration
backend/app/integrations/gmail.py - Google OAuth
backend/app/integrations/google_oauth.py - Sheet synchronization
backend/app/services/sheets_sync.py - Sheets integration
backend/app/integrations/sheets.py
Other components
- Job seeker
- Microsoft Foundry
- Google APIs
Connections 33
- Job seeker → Next.js experience: uses
README.md - Next.js experience → Session proxy: requests
- Session proxy → FastAPI app: proxies requests
README.md - Session proxy → Token verification: mints bearer token
README.md - FastAPI app → API routes: registers routes
backend/app/main.py - API routes → Token verification: verifies users
backend/app/routers/chat.py - API routes → Chat agent loop: dispatches chat
backend/app/routers/chat.py - Chat agent loop → Foundry client: requests completions
backend/app/agent/loop.py - Chat agent loop → Agent tools: dispatches tool calls
backend/app/agent/loop.py - Agent tools → Job-link analysis: analyzes links
backend/app/agent/tools.py - Agent tools → Application tracking: tracks applications
backend/app/agent/tools.py - Job-link analysis → Posting fetcher: fetches postings
backend/app/services/jobs.py - Job-link analysis → Structured extraction: extracts details
backend/app/services/jobs.py - Job-link analysis → PostgreSQL data: persists postings
backend/app/services/jobs.py - Foundry client → Microsoft Foundry: calls model
backend/app/llm/client.py - API routes → Application tracking: serves tracking
backend/app/routers/applications.py - Application tracking → Tracker formatting: formats requirements
backend/app/services/applications.py - Application tracking → PostgreSQL data: reads and writes
backend/app/services/applications.py - FastAPI app → Scheduled scans: starts poller
backend/app/main.py - Scheduled scans → Gmail scan pipeline: runs due scans
backend/app/services/auto_scan.py - API routes → Gmail scan pipeline: starts scans
backend/app/routers/scans.py - Gmail scan pipeline → Gmail integration: reads messages
backend/app/services/scans.py - Gmail scan pipeline → Google OAuth: gets access token
backend/app/services/scans.py - Gmail scan pipeline → Application tracking: records updates
backend/app/services/scans.py - Gmail scan pipeline → PostgreSQL data: records scan state
backend/app/services/scans.py - API routes → Google OAuth: handles consent
backend/app/routers/google.py - API routes → Sheet synchronization: triggers sync
backend/app/routers/google.py - Sheet synchronization → Sheets integration: writes tracker
backend/app/services/sheets_sync.py - Google OAuth → Google APIs: exchanges tokens
backend/app/integrations/google_oauth.py - Gmail integration → Google APIs: reads email
- Sheets integration → Google APIs: updates Sheet
- Google OAuth → PostgreSQL data: stores credentials
backend/app/integrations/google_oauth.py - Sheet synchronization → Application tracking: syncs application
backend/app/services/sheets_sync.py