Bom Curriculo
#Bom Currículo - ATS Resume Builder
#UNDER CONSTRUCTION
Build ATS-friendly resumes using AI.
#About
Bom Currículo is an open-source project that generates professional resumes optimized for Applicant Tracking Systems (ATS).
The system can use multiple optional sources of information, including:
- Current resume
- LinkedIn Profile (PDF export)
- GitHub profile
- Portfolio
- Personal information
- Target job description
The user does not need to provide every source. The only requirement is enough information to generate a resume.
#Features
- LinkedIn profile analysis
- GitHub profile analysis
- Portfolio analysis
- Job description matching
- ATS-friendly resume generation
- Resume optimization
#Screen prototype
An initial interface prototype was also developed in Figma to validate the user experience, feature organization, and the platform's main flow before final implementation.
The screen is still evolving, but it already represents the first visual proposal of the user dashboard, including:
- ATS score overview;
- General resume performance indicator;
- AI-powered optimization tips;
- List of uploaded resumes;
- Application progress tracking;
- Sidebar menu with access to the platform’s main areas.
Note: the design is still under development and may be adjusted as the product evolves.
#Roadmap
- Resume generation
- LinkedIn PDF parser
- GitHub integration
- Portfolio analysis
- Job matching
- Multiple templates
- Export to PDF
- Export to DOCX
#Contributing
Contributions are welcome!
Please read CONTRIBUTING.md before submitting a Pull Request.
#Running the project
Create the environment files:
cp .env.example .env cp backend/.env.example backend/.env cp frontend/.env.example frontend/.env cp bot/.env.example bot/.env
On Windows PowerShell:
Copy-Item .env.example .env Copy-Item backend/.env.example backend/.env Copy-Item frontend/.env.example frontend/.env Copy-Item bot/.env.example bot/.env
docker compose up --build
The Docker stack includes Ollama and automatically downloads the model defined
by OLLAMA_MODEL (default: qwen3:4b) into the persistent ollama_data
volume. The first startup can take several minutes because that model is about
2.5 GB. The bot reaches Ollama through the Docker network at
http://ollama:11434; it does not use the bot container's localhost.
The local default favors CPU-only development. Resume requests disable Qwen's
thinking mode, cap generated output at 2048 tokens, and stop the complete AI
provider chain after 240 seconds. Laravel waits up to 260 seconds for the bot,
while Nginx waits up to 280 seconds, allowing a bot timeout to reach the client
as a structured response. On a Ryzen 7 5700G, a representative dense resume
completed with qwen3:4b in about 209 seconds; slower CPU-only machines may
still need a faster external provider or an asynchronous workflow.
To confirm that the model is available or download it again:
docker compose exec ollama ollama list docker compose exec ollama ollama pull qwen3:4b
Set OLLAMA_MODEL in the root .env before starting the stack to use another
model. OLLAMA_BASE_URL may point the bot at an external Ollama deployment
instead, but its address must be reachable from inside the bot container. For
better local quality on sufficiently fast hardware, set OLLAMA_MODEL=qwen3:8b;
that model is about 5.2 GB and remains fully supported.
Services:
- Frontend: http://localhost:5173
- Backend: http://localhost:9000
- Bot: http://localhost:8000
- Ollama: http://localhost:11434
Health endpoints:
- Backend: http://localhost:9000/up
- Bot: http://localhost:8000/health
#License
This project is licensed under the MIT License.