FirstCommit
An employability SaaS that connects AI-built CVs, GitHub profiles and job matching for junior developers.


The problem
Landing a first tech job means translating projects and skills into a profile that connects with relevant openings.
What I built
I designed three macro-services: a Core API in Go, an AI Engine in Python and a Python scraper that runs as a job. They generate the CV, analyze GitHub and search openings by meaning.
Outcome
A product that brings together profile preparation and opportunity discovery. No public demo yet.
Decisions that mattered
- 01
Three macro-services, two languages
Go where latency matters (auth, feed, payments) and Python where the AI and scraping ecosystem lives. Hexagonal architecture on the backend.
- 02
One queue between Go and Python
The Core API never calls the AI Engine directly: it enqueues on Cloud Tasks. A 60-second generation never blocks the API.
- 03
Vectors inside the database
pgvector on Supabase relates a profile to openings by meaning, without a separate vector service.
- 04
Near-zero fixed cost
Cloud Run, Supabase, Cloudflare Pages and R2 keep the total budget under US$65 a month, LLM included.
- 05
Secrets and least privilege
Secret Manager mounts secrets into Cloud Run, and each service has its own service account with minimal permissions.
Technologies
- Go
- Python
- Angular
- Supabase
- pgvector
- Cloud Run
- Cloud Tasks
C4 model. The pulsing line is the main path of a request.
Level 1 · who uses the system and what it connects to
Level 2 · the applications and data stores it is made of
Level 3 · the components inside the API
- Person
- System
- Container
- Database
- External
- Main path
- 01Profile
- 02Core API · Go
- 03Task queue
- 04AI Engine · Python
- 05LLM and pgvector
- 06CV and openings