Personal AI job search and opportunity tracker built around LangChain, LangGraph, LangSmith, FastAPI, Postgres, and a custom Agent Chat UI workspace.
The app lets you chat with an agent while keeping a structured opportunities table as the source of truth for roles, links, fit scores, application status, interview state, and notes.
- Chat-based job intake from pasted links, job descriptions, CSVs, and tables.
- Opportunity table with search, score/status/applied filters, sorting, modal details, and quick status updates.
- 25-point fit scoring rubric with sub-scores stored in metadata.
- Resume/profile context tools so the agent can score roles against your background.
- URL extraction and optional Tavily web search for job/company research.
- Local Docker Compose stack for Postgres, migrations, FastAPI, LangGraph, and the UI.
- Backend: FastAPI, SQLModel, Alembic, PostgreSQL
- Agent: LangChain, Deep Agents, LangGraph, LangSmith, OpenAI, Tavily
- UI: Agent Chat UI, Next.js, Tailwind CSS, TanStack Query, TanStack Table
Start the full local app:
cp backend/.env.example backend/.env
docker compose upOpen http://localhost:13000.
If that port is already in use, run for example:
UI_PORT=13001 docker compose upOr start services manually:
docker compose up -d postgres
cd backend
uv sync --extra dev
cp .env.example .env
uv run alembic upgrade head
uv run apiStart the agent server:
uv run langgraph dev --port 12024Start the UI:
cd ui
nvm use
corepack enable
cp .env.example .env.local
pnpm dev --filter=webMore details: Development guide.
