Professional search platform built with Typesense for company discovery and job opportunities across Vietnam.
git clone https://github.com/lytv/enfue.git
cd enfue
./docker-deploy.sh- Main Demo: https://enfue-1.onrender.com/index.html
- Advanced Search: https://enfue-1.onrender.com/advanced-search.html
- Semantic Search: https://enfue-1.onrender.com/semantic-search.html
- Main Demo: http://localhost:8080/index.html
- Advanced Search: http://localhost:8080/advanced-search.html
- Semantic Search: http://localhost:8080/semantic-search.html
- Typesense API: http://localhost:8108
- MP4 (Recommended): demo.mp4 (7.3MB)
- MOV (Original): demo.mov (26.4MB)
- GIF (High Quality): demo_hq.gif (4.3MB)
- GIF (Small): demo.gif (521KB)
Demo Features:
- Natural language search queries
- Advanced filtering and faceted search
- Semantic search capabilities
- Real-time search results
- Ask questions in plain English
- "hiring companies" β Companies with open positions
- "tech companies in Da Nang" β Tech companies in Da Nang
- "companies with more than 5 positions" β Companies hiring heavily
- Faceted search with interactive filters
- Auto-complete suggestions
- Advanced filtering with numeric operators
- Pagination and highlighting
- Multi-field search across company names and locations
- Context understanding for relevant results
- Intelligent ranking and search analytics
- 196 Companies indexed from Vietnam job market
- 8 Major Cities: Da Nang (161), Hue (21), Ho Chi Minh (7), Ha Noi (3), etc.
- 17 Companies with open positions
- ~20 Total Positions available
- Search Engine: Typesense 29.0
- Backend: Python 3.11 with HTTP server
- Frontend: Vanilla JavaScript with modern CSS
- Deployment: Docker containerization + Render cloud hosting
- Data: CSV import with automatic parsing
- Cloud Hosting: Render - Auto-deploy from GitHub
./docker-deploy.sh # Deploy services locally
docker stop enfue-typesense enfue-web # Stop services
docker logs enfue-web # View logs
docker ps # Check status
curl http://localhost:8080/health # Health check
docker system prune -f # Clean up- Auto-deploy: Pushes to
mainbranch automatically deploy - Manual deploy: Use Render dashboard to trigger deployments
- Logs: Available in Render dashboard
- Health check: https://enfue-1.onrender.com/health
enfue/
βββ index.html # Main search interface
βββ advanced-search.html # Advanced search features
βββ semantic-search.html # Semantic search demo
βββ docker-deploy.sh # Docker deployment script (local)
βββ Dockerfile # Docker configuration for Render
βββ requirements.txt # Python dependencies
βββ render.yaml # Render service configuration
βββ setup_typesense.py # Data import script
βββ serve_demo_docker.py # HTTP server for Docker
βββ Run_Browser_Agent_With_A_Goal_In_Background_2025-10-02T03_02_40.209Z.csv
- Search Latency: <3ms average
- Index Time: ~2-3 seconds for 196 records
- Memory Usage: ~5-10MB
- Concurrent Searches: 100+ queries/second
- Job Portal: Find companies with open positions
- Company Directory: Browse companies by location
- Recruitment: Filter candidates by location preferences
- Market Analysis: Understand job market distribution
"hiring companies" # β Companies with open positions
"tech companies in Da Nang" # β Tech companies in Da Nang
"companies with more than 5 positions" # β Companies hiring heavily
"biggest companies" # β Companies sorted by position count"tech AND da nang AND open positions" # β Complex filtering
"companies:>5 positions" # β Numeric filtering
"sort by positions descending" # β Custom sortingβββββββββββββββββββ βββββββββββββββββββ
β Web Frontend β β Typesense β
β (Port 8080) βββββΊβ (Port 8108) β
β β β β
β - HTML/CSS/JS β β - Search Engine β
β - HTTP Server β β - Data Storage β
β - API Client β β - Query Engine β
βββββββββββββββββββ βββββββββββββββββββ
-
Docker credentials error
docker: error getting credentials - err: exec: "docker-credential-desktop": executable file not foundSolution: Use
./docker-deploy.sh -
No search results
- Check Typesense server:
curl http://localhost:8108/health - Verify data import:
python3 setup_typesense.py
- Check Typesense server:
-
Connection errors
- Ensure Docker is running
- Check port availability:
lsof -ti:8080
-
Render deployment issues
- Check Render dashboard logs
- Verify environment variables are set correctly
- Ensure GitHub repository is connected
# Local development
docker ps
docker logs enfue-web
curl http://localhost:8080/health
curl -H "x-typesense-api-key: Hu52dwsas2AdxdE" "http://localhost:8108/collections/enfue_companies/documents/search?q=*&query_by=company_name&per_page=1"
# Production (Render)
curl https://enfue-1.onrender.com/health- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
For issues and questions:
- Check service logs and health status
- Review browser console for errors
- Test API endpoints directly
- Refer to Typesense Documentation
This project is licensed under the MIT License - see the LICENSE file for details.
- Typesense for the amazing search engine
- Vietnam tech community for inspiration
- All contributors and users
Built with β€οΈ for the Vietnam tech community
Happy Searching! πβ¨
