An AI-powered job search platform that uses resume parsing and deep research to match tech professionals with relevant job opportunities.
Watch the Build Process: π₯ Building Deep Job Search with Windsurf
This entire project was built using Windsurf, demonstrating the power of AI-assisted development. Every aspect of the application - from architecture to implementation - was created through structured prompts and specifications found in the /docs
directory.
Each file in the /docs
directory serves a specific purpose in guiding Windsurf to build the application:
File | Purpose | Description |
---|---|---|
deep_job_search_prompt.md |
π Initial Project Specification | The foundational prompt that defines the project's goals, features, and requirements. This document guided Windsurf in understanding what we wanted to build: a resume-parsing job search platform with AI-powered recommendations. |
tech_stack_document.md |
ποΈ Technology Decisions | Specifies our technical choices (Next.js, FastAPI, Celery, etc.) and explains why each technology was chosen. This helped Windsurf understand our technical constraints and preferences. |
implementation_plan.md |
π Development Roadmap | A step-by-step guide for building the application, breaking down complex features into manageable tasks. This document helped Windsurf prioritize work and maintain a clear development path. |
File | Purpose | Description |
---|---|---|
app_flow_document.md |
π User Journey Design | Maps out the complete user experience, from uploading a resume to receiving job recommendations. This guided Windsurf in creating intuitive user flows and interfaces. |
backend_structure_document.md |
βοΈ Backend Architecture | Details the API design, database schema, and service architecture. This document helped Windsurf implement a clean, maintainable backend with proper separation of concerns. |
frontend_guidelines_document.md |
π¨ Frontend Architecture | Defines component structure, styling guidelines, and state management approaches. This ensured Windsurf created a consistent, modern UI with reusable components. |
File | Purpose | Description |
---|---|---|
file_structure_document.md |
π Project Layout | Defines the organization of code, assets, and configuration files. This helped Windsurf maintain a clean, scalable project structure. |
cursorrules_file.md |
β¨οΈ IDE Configuration | Contains IDE-specific settings for code formatting, linting, and editor behavior. This ensured consistent code style across the project. |
windsurf_file.md |
π οΈ Windsurf Settings | Configures Windsurf's behavior, including AI model preferences and development workflow settings. This optimized Windsurf's assistance for our specific needs. |
-
Project Definition Phase
deep_job_search_prompt.md
sets the overall visiontech_stack_document.md
defines our technical approachimplementation_plan.md
creates our roadmap
-
Architecture Phase
backend_structure_document.md
designs our server architecturefrontend_guidelines_document.md
establishes our UI/UX patternsapp_flow_document.md
connects frontend and backend through user journeys
-
Implementation Phase
file_structure_document.md
organizes our codebasecursorrules_file.md
maintains code qualitywindsurf_file.md
optimizes the development experience
This structured approach to AI-assisted development demonstrates how Windsurf can transform high-level requirements into a fully functional application through well-defined prompts and specifications.
- Resume Upload & Parsing: Support for PDF and image formats with OCR capabilities
- AI-Powered Analysis: Leverages OpenAI's API for resume summarization and job matching
- Customizable Job Preferences: Filter by location, company size, and role type
- Curated Job Listings: AI-generated deep research for personalized job recommendations
- Clone the repository:
git clone https://github.com/yourusername/deep-job-search.git
cd deep-job-search
- Create a
.env
file in the root directory:
cp .env.example .env
# Edit .env with your API keys and configuration
- Build and run with Docker Compose:
docker-compose up --build
The application will be available at:
- Frontend: http://localhost:3000
- Backend API: http://localhost:8000
- API Documentation: http://localhost:8000/docs
- Python 3.9+
- Node.js 18+
- AWS Account (for S3 storage)
- OpenAI API Key
- Create and activate a virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: .\venv\Scripts\activate
- Install dependencies:
pip install -r requirements.txt
- Run the backend:
cd backend
uvicorn main:app --reload
- Install dependencies:
cd frontend
npm install
- Run the development server:
npm run dev
# OpenAI Configuration
OPENAI_API_KEY=your_api_key_here
# AWS Configuration
AWS_ACCESS_KEY_ID=your_access_key
AWS_SECRET_ACCESS_KEY=your_secret_key
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET_NAME=your_bucket_name
# Backend Configuration
BACKEND_URL=http://localhost:8000
ALLOWED_ORIGINS=http://localhost:3000
# Frontend Configuration
NEXT_PUBLIC_API_URL=http://localhost:8000
# Backend tests
cd backend
pytest
# Frontend tests
cd frontend
npm test
# E2E tests
cd e2e
pytest
A sample resume (docs/artifacts/Nick_Krzemienski_072024_cv.pdf
) is included for testing. To run the functional test:
cd e2e
pytest test_deep_research.py
.
βββ frontend/ # Next.js frontend application
β βββ pages/ # Page components
β βββ components/ # Reusable React components
β βββ styles/ # CSS and styling
β βββ tests/ # Frontend tests
βββ backend/ # FastAPI backend
β βββ main.py # Main application entry
β βββ utils/ # Utility functions
β βββ config/ # Configuration
β βββ tests/ # Backend tests
βββ e2e/ # End-to-end tests
βββ docs/ # Documentation
β βββ artifacts/ # Test artifacts
βββ docker/ # Docker configuration
- Swagger UI: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc
- Backend: Black formatter, isort for imports
- Frontend: Prettier, ESLint
For support, please open an issue in the GitHub repository.
This project is licensed under the MIT License - see the LICENSE file for details.