ApplyAI is a cloud-native, AI-powered assistant that helps streamline the job search. The MVP focuses on shortening application time, increasing application volume, and improving the quality of each submission by providing AI-driven resume tailoring and conversational career guidance.
- Production Web App: https://apply-ai-ny.vercel.app
- Overview & Goals
- Architecture & Tech Stack
- Core Features
- Data Model (Firestore)
- Getting Started (Local Development)
- Testing Suite
- Roadmap
- License
ApplyAI helps job seekers automate and improve their job applications. The MVP aims to:
- Reduce application time by automating tailored materials.
- Increase application throughput by making it easy to generate high-quality applications.
- Maximize job-fit relevance by emphasizing the most relevant skills in tailored resumes using state-of-the-art LLMs.
This project is a full-stack, decoupled application following a modern serverless-first architecture.
graph TD;
User((User)) -->|Next.js/React| FE[Frontend Client];
FE -->|Auth| FB_Auth[Firebase Auth];
FE -->|JSON/REST| BE[FastAPI Backend];
BE -->|Query/Write| FS[(Cloud Firestore)];
BE -->|Prompt/Text| Gemini[Google Gemini AI];
- Frontend: Next.js 15 (Node v24.2)
- Rationale: Leveraging the latest App Router for high-performance React patterns and Tailwind CSS for a modular design system.
- Backend: FastAPI 0.119 (Python 3.13.11)
- Rationale: An asynchronous-first framework providing high-speed execution for AI orchestration and strict data validation via Pydantic v2.
- AI Orchestration: Google Gemini 2.5 Flash
- Rationale: Selected for its industry-leading context window and low-latency response times for complex resume-tailoring tasks.
- Database & Auth: Google Firebase / Cloud Firestore
- Rationale: Unified identity management and real-time NoSQL document storage for chat history persistence.
- Infrastructure: Docker + Google Cloud Run
- Rationale: Auto-scaling containerized backend that scales to zero when not in use, optimizing for performance and cost.
- Authentication & Security
- Secure Google Sign-In with persistent session management.
- Environment-driven configuration for API keys and Cloud credentials.
- Persistent AI Chat History
POST /chatandGET /chats/{user_id}endpoints.- Career guidance that persists across sessions, allowing users to pick up where they left off.
- Resume Tailoring Engine
POST /resumesandGET /resumes/{user_id}endpoints.- Intelligent rewriting of resumes based on job descriptions, saved to the cloud for future reference.
-
chats (collection)
doc_id(auto-generated)user_id(string)messages(array of{ role: 'user'|'ai', content: string })timestamp(serverTimestamp)
-
tailored_resumes (collection)
doc_id(auto-generated)user_id(string)jobDescription(string)originalResume(string)tailoredResume(string - Markdown)createdAt(timestamp)
- Python 3.13.11+ / Node.js 24+
- Google Cloud Service Account with Firestore and Gemini API access.
cd server && python3 -m venv .venv && source .venv/bin/activatepip install -r requirements.txt- Create
.envwithGEMINI_API_KEYandGOOGLE_APPLICATION_CREDENTIALS. - Run:
uvicorn main:app --reload --port 8000
cd client && npm install- Create
.env.localwith your Firebase config andNEXT_PUBLIC_API_URL. - Run:
npm run dev
The backend includes a robust unit testing suite using Pytest and mocker. To maintain speed and zero-cost CI, all external calls to Gemini and Firestore are fully mocked to prevent network dependency and unnecessary API costs.
To run tests:
cd server
pytestThe backend is deployed to Google Cloud Run. The frontend is currently local but configured for deployment to Vercel or Firebase Hosting.
- CORS: The FastAPI app allows requests from
http://localhost:3000. For production, updateserver/main.pywith the deployed frontend domain.
- Phase 1: Core AI Tailoring Logic & Form UI.
- Phase 2: Firebase Authentication & Global Context.
- Phase 3: Backend Persistence (Firestore) & Naming Convention Alignment.
- Phase 4: Mocked Test Infrastructure & History API Endpoints.
- Phase 5: Frontend Hydration (Displaying historical chats/resumes in the UI).
- Phase 6: Production Deployment (Cloud Run & Vercel).
See the LICENSE file for details.


