Skip to content

champi-dev/devjobscolombia

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

95 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Colombia Dev Jobs Aggregator Platform πŸ‡¨πŸ‡΄

A modern fullstack web application that aggregates developer job listings from Colombia, automatically updates them every 5 minutes, enriches them with company information, and provides AI-powered job evaluation using GPT-4 Mini.

πŸš€ Features

  • Automated Job Scraping: Collects jobs from multiple platforms every 5 minutes
  • AI-Powered Evaluation: Each job is evaluated with GPT-4 Mini for quality scoring
  • Real-time Updates: Jobs are updated in real-time with WebSocket support
  • Smart Filtering: Filter by location, technology, salary, experience level
  • Dark Mode: Full dark mode support for better developer experience
  • Responsive Design: Works perfectly on mobile, tablet, and desktop

πŸ› οΈ Tech Stack

Frontend

  • Next.js 14 with App Router
  • TypeScript for type safety
  • Tailwind CSS for styling
  • shadcn/ui component library
  • React Query for data fetching
  • Zustand for state management

Backend

  • Node.js 22 with TypeScript
  • Fastify web framework
  • Prisma ORM with PostgreSQL
  • Redis for caching and job queues
  • BullMQ for background job processing
  • OpenAI SDK for GPT-4 Mini integration
  • Playwright for web scraping

πŸ“‹ Prerequisites

  • Node.js 21+
  • Docker and Docker Compose
  • OpenAI API Key
  • PostgreSQL (via Docker)
  • Redis (via Docker)

πŸ”§ Installation

  1. Clone the repository
git clone https://github.com/yourusername/jobreposter.git
cd jobreposter
  1. Install dependencies
npm install
  1. Set up environment variables
cp .env.example .env

Edit .env and add your OpenAI API key:

OPENAI_API_KEY=sk-your-api-key-here
  1. Start Docker services
# Start Docker Desktop first, then:
docker compose up -d postgres redis
  1. Run database migrations
cd apps/api
npx prisma migrate dev
npx prisma generate
cd ../..
  1. Start development servers

In separate terminals:

# Terminal 1: Backend API
cd apps/api
npm run dev

# Terminal 2: Frontend
cd apps/web
npm run dev

The application will be available at:

🐳 Docker Deployment

To run the entire stack with Docker:

docker compose up -d

This will start:

  • PostgreSQL database
  • Redis cache
  • Backend API
  • Frontend application

πŸ“ Project Structure

jobreposter/
β”œβ”€β”€ apps/
β”‚   β”œβ”€β”€ api/                    # Backend API
β”‚   β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”‚   β”œβ”€β”€ routes/         # API endpoints
β”‚   β”‚   β”‚   β”œβ”€β”€ services/       # Business logic
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ scraping/   # Web scrapers
β”‚   β”‚   β”‚   β”‚   └── ai/         # AI evaluation
β”‚   β”‚   β”‚   β”œβ”€β”€ workers/        # Background jobs
β”‚   β”‚   β”‚   └── lib/            # Utilities
β”‚   β”‚   └── prisma/             # Database schema
β”‚   β”‚
β”‚   └── web/                    # Frontend Next.js app
β”‚       β”œβ”€β”€ app/                # App router pages
β”‚       β”œβ”€β”€ components/         # React components
β”‚       β”‚   β”œβ”€β”€ ui/            # Base UI components
β”‚       β”‚   β”œβ”€β”€ jobs/          # Job-related components
β”‚       β”‚   └── layout/        # Layout components
β”‚       └── lib/               # Utilities
β”‚
β”œβ”€β”€ packages/                   # Shared packages
β”œβ”€β”€ docker-compose.yml         # Docker configuration
└── turbo.json                # Turborepo config

πŸ” API Endpoints

Jobs

  • GET /api/jobs - List jobs with filters
  • GET /api/jobs/:id - Get job details
  • GET /api/jobs/:id/evaluation - Get AI evaluation

Companies

  • GET /api/companies - List companies
  • GET /api/companies/:id - Company details
  • GET /api/companies/:id/jobs - Company jobs

Statistics

  • GET /api/stats - Platform statistics
  • GET /api/stats/trends - Tech trends
  • GET /api/stats/salary-insights - Salary data

πŸ€– AI Evaluation Criteria

Jobs are evaluated on:

  • Clarity of requirements and responsibilities
  • Technology Stack modernity and relevance
  • Company Culture indicators
  • Growth Opportunities
  • Compensation fairness for Colombian market
  • Work-Life Balance (remote/hybrid options)

πŸ”„ Scraping Schedule

  • Jobs are scraped every 5 minutes
  • Inactive jobs (30+ days) are automatically archived
  • Duplicate detection prevents redundant listings
  • Each scraping run is logged for monitoring

🚦 Development Commands

# Install dependencies
npm install

# Run development servers
npm run dev

# Build for production
npm run build

# Run tests
npm run test

# Lint code
npm run lint

# Database commands
npm run db:migrate    # Run migrations
npm run db:generate   # Generate Prisma client
npm run db:push      # Push schema to database
npm run db:studio    # Open Prisma Studio

🌍 Environment Variables

Key environment variables:

# Database
DATABASE_URL=postgresql://user:password@localhost:5432/colombia_dev_jobs

# Redis
REDIS_URL=redis://localhost:6379

# OpenAI
OPENAI_API_KEY=sk-...
OPENAI_MODEL=gpt-4o-mini

# Scraping
SCRAPING_INTERVAL_MINUTES=5
ENABLE_AUTO_SCRAPING=true

# API
PORT=3001
NEXT_PUBLIC_API_URL=http://localhost:3001

πŸ“ License

MIT

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

πŸ› Troubleshooting

Docker not running

Make sure Docker Desktop is running before starting the containers.

Port already in use

Change the ports in docker-compose.yml or .env file.

Database connection issues

Ensure PostgreSQL is running and the DATABASE_URL is correct.

OpenAI API errors

Verify your API key is valid and has sufficient credits.

🎯 Roadmap

  • Add more job platforms (Indeed, Computrabajo, etc.)
  • Email notifications for job matches
  • User accounts and saved searches
  • Mobile app (React Native)
  • Advanced analytics dashboard
  • Resume matching scores
  • Salary prediction model

πŸ“§ Contact

For questions or support, please open an issue on GitHub.

About

Resources

Stars

Watchers

Forks

Contributors 2

  •  
  •