Skip to content

afnx/dream-job

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Dream Job

AI-Powered Job Search Tool

Intelligently analyzes user preferences and scrapes job listings to find the perfect career opportunities

License Node.js Next.js PostgreSQL Docker

✨ Features β€’ πŸš€ Quick Start β€’ πŸ“– Configuration β€’ 🀝 Contributing


Dream Job is an AI-powered job search tool that helps users quickly find relevant employment opportunities. Built mostly with JavaScript and TypeScript, it uses intelligent matching to streamline the job hunt.

Features

AI-Powered Analysis Uses any AI service (OpenAI, Gemini) to extract job preferences from natural language
Smart Job Scraping Automated scraping from popular job boards (ZipRecruiter, Indeed, and more)
Intelligent Ranking AI-driven job ranking based on user preferences and requirements
Modern Interface Built with Next.js and React for a seamless user experience
Database Integration PostgreSQL with Prisma ORM for efficient data management

Tech Stack

Backend

Node.js Express.js Prisma PostgreSQL Playwright

Frontend

Next.js TypeScript Tailwind CSS Framer Motion

DevOps

Docker Docker Compose

Prerequisites

Before you begin, ensure you have the following installed:

  • Docker and Docker Compose
  • AI Provider API key
  • Auth Provider (Optional)
  • Proxy Provider (Optional but recommended)

Quick Start

1. Clone the Repository

git clone https://github.com/afnx/dream-job.git
cd dream-job

2. Environment Configuration

Copy the environment template and configure your settings:

cp .env.example .env

Edit the .env file with your configuration:

# Project Configuration
ENV=dev
DOMAIN=localhost

# Backend Configuration
NODE_PORT=5000
NODE_HOST=localhost
NODE_API_PREFIX=/api
NODE_API_VERSION=v1

# Database Configuration
DATABASE_HOST=db
DATABASE_PORT=5432
DATABASE_USER=postgres_user
DATABASE_PASSWORD=postgres_password
DATABASE_NAME=dream_job_db

# AI Configuration
AI_PROVIDER=openai
AI_API_KEY=your_openai_api_key_here
AI_MODEL=gpt-3.5-turbo

# Frontend Configuration
NEXT_JS_PORT=3000
NEXT_JS_HOST=localhost

# Auth Configuration
AUTH_PROVIDER=cognito
COGNITO_AUTH_USER_POOL_ID=your_user_pool_id
COGNITO_AUTH_CLIENT_ID=your_client_id
COGNITO_AUTH_CLIENT_SECRET=your_client_secret
COGNITO_AUTH_REGION=your_region

# Proxy Configuration
PROXY_ENABLED=true
PROXY_HOST=localhost
PROXY_PORT=8080
PROXY_USERNAME=your_proxy_username
PROXY_PASSWORD=your_proxy_password
PROXY_BYPASS=localhost,127.0.0.1

3. Docker Setup

Start all services with Docker Compose:

# Start all services
docker compose up -d

# View logs
docker compose logs -f

# Stop services
docker compose down

πŸŽ‰ That's it! Your Dream Job application should now be running at http://localhost:3000

Configuration

AI Provider Setup

OpenAI Setup
  1. Visit OpenAI Platform
  2. Create an API key
  3. Add your API key to the .env file:
    AI_PROVIDER=openai
    AI_API_KEY=your-api-key-here
    AI_MODEL=gpt-3.5-turbo

Database Configuration

The project uses PostgreSQL with Prisma ORM. Database schema is located in backend/prisma/schema.prisma.

cd backend

# Generate Prisma client
npx prisma generate

# Run migrations
npx prisma migrate dev

# View database in browser
npx prisma studio

Testing

Component Command Description
Backend npm test Run all backend tests
Frontend npm test Run all frontend tests
Coverage npm run test:coverage Generate coverage report
Watch npm run test:watch Run tests in watch mode

Supported Platforms

Job Boards

Platform Status Notes
ZipRecruiter βœ… Active Full scraping support
Indeed 🚧 In Development

AI Services

Service Status Models
OpenAI βœ… Active GPT-3.5, GPT-4
Gemini πŸ”œ Coming Soon Pro, Ultra

Contributing

We welcome contributions from developers of all skill levels!

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Code Style

Troubleshooting

AI Provider API Errors
  • βœ… Verify your API key is correct
  • βœ… Check your AI provider account has sufficient credits
  • βœ… Ensure the model name is correct
Database Connection Issues
  • βœ… Verify PostgreSQL is running
  • βœ… Check database credentials in .env
  • βœ… Run npx prisma generate after schema changes
Scraping Issues
  • βœ… Some sites may block requests (rate limiting)
  • βœ… Playwright may need browser installation: npx playwright install

View Logs

# View backend logs
docker compose logs backend

# View frontend logs  
docker compose logs frontend

# View all logs
docker compose logs -f

License

This project is licensed under the Business Source License 1.1 - see the LICENSE file for details.

Authors

  • Ali Fuat Numanoglu - Initial work - @afnx

Support


Made with ❀️ by Ali Fuat Numanoglu