Your Intelligent Assistant for the Modern Job Search.
JoblyAI is a full-stack, AI-powered platform designed to revolutionize the way candidates find, apply for, and prepare for jobs. By leveraging advanced Large Language Models (LLMs) and asynchronous task processing, JoblyAI offers personalized resume tailoring, intelligent job matching, and comprehensive interview preparation.
- AI-Powered Job Search: Natural language querying to find jobs on LinkedIn and JSearch via RapidAPI, supported by LangChain agents.
- Smart Resume Matching: Upload your resume (PDF) and let the AI instantly analyze and match your skills against job listings.
- Automated Resume Tailoring: Automatically generate custom-tailored PDF resumes optimized for specific job descriptions. Uses Server-Sent Events (SSE) for real-time generation feedback.
- Employer Insights: Instantly gather insights about potential employers using intelligent web scraping and LLM analysis.
- Interview Preparation: Generate custom interview processes and potential questions based on the target job and employer.
- Asynchronous Processing: Heavy tasks like resume parsing and LLM matching are offloaded to Celery workers with a Redis message broker.
- Real-time Streaming: Utilizes Server-Sent Events (SSE) to stream LLM responses back to the client during resume tailoring.
- Scalable Storage: Secure document handling using AWS S3 with presigned URLs for temporary, safe access to PDFs.
- Caching Layer: Employs Redis to cache employer insights and external API responses, significantly reducing latency and API costs.
- Agentic AI: Built with LangChain and LangGraph to create autonomous agents capable of utilizing tools (like job search APIs) and maintaining user-specific memory.
- Framework: React Router v7 (Vite)
- Language: TypeScript
- Styling: Tailwind CSS, Radix UI Primitives,
clsx,tailwind-merge - State Management: Zustand, React Query (@tanstack/react-query)
- Forms & Validation: React Hook Form
- PDF Rendering:
react-pdf
- Framework: FastAPI (Python 3)
- Database: PostgreSQL with SQLAlchemy (Asyncpg) & Alembic (Migrations)
- Message Broker & Cache: Redis
- Background Tasks: Celery
- AI / LLMs: OpenAI GPT Models, LangChain, LangGraph
- Cloud & Storage: AWS S3 (Boto3)
- PDF Processing: PyMuPDF (
fitz), Playwright (for dynamic PDF generation/scraping), Firecrawl
- Client-Server Communication: The React frontend communicates with the FastAPI backend via RESTful APIs and SSE streams.
- Auth: JWT-based authentication securing endpoints and user-specific document access.
- Task Queueing: When a user requests job matching, the FastAPI server enqueues a Celery task and immediately returns a
task_id. The client polls or listens for completion. - Data Persistence: Asynchronous SQLAlchemy handles robust interactions with the PostgreSQL database, storing user preferences, saved jobs, and resume metadata.
- AI Tooling: LangChain agents hold conversational memory in
MemorySaverand utilize external tools (JSearch, LinkedIn APIs) to fetch real-time market data.
JoblyAI/
├── client/ # Frontend Application
│ ├── app/ # React Router Application Logic
│ ├── components/ # Reusable UI Components
│ ├── package.json # Node Dependencies
│ └── vite.config.ts # Vite Configuration
│
└── server/ # Backend Application
├── alembic/ # Database Migrations
├── src/ # Application Source Code
│ ├── auth/ # Authentication Logic
│ ├── celery/ # Background Tasks & Workers
│ ├── job/ # Job Search, Matching & Saving API
│ ├── resume/ # Resume Upload, Tailoring & S3 Integration
│ └── utils.py # Shared Utilities
├── requirements.txt # Python Dependencies
└── docker-compose.yml # Infrastructure (Postgres, Redis, Celery)
- Node.js (v18+)
- Python (3.11+)
- Docker & Docker Compose (for Redis and Postgres)
- AWS Account (S3 Buckets configured)
- OpenAI API Key
1. Clone the repository
git clone https://github.com/johnkristanf/JoblyAI.git
cd JoblyAI2. Start Infrastructure (Database & Redis)
cd server
docker-compose up -d3. Setup the Backend Server
cd server
# Create virtual environment and install dependencies via uv
uv sync
# Activate the virtual environment
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Run migrations
alembic upgrade head
# Start the FastAPI server
uv run uvicorn src.main:app --reload --host 0.0.0.04. Start the Celery Worker
(In a new terminal window within the /server directory)
cd server
uv run celery -A src.celery worker --loglevel=info5. Setup the Frontend Client
(In a new terminal window within the /client directory)
npm install
npm run devThe client will be available at http://localhost:5173.
- End-to-End Testing pipeline with Playwright or Cypress.
- Expanded AI mock-interview voice interactions (Deepgram & ElevenLabs).
Crafted with precision for the modern candidate.