A developer shares the architectural decisions behind Job Helper, a personal tool built to streamline job searching using LLMs. The system is decomposed into microservices: a Python/Flask scraping service, a Celery/Redis-backed AI service that generates tailored CVs and cover letters via OpenAI or Gemini, a GraphQL gateway, and a Remix frontend. PostgreSQL handles relational data, Docker orchestrates and isolates services, and Google Docs serves as the document editor. Security is enforced via HTTP-only cookies, Docker private networking, and API keys for service-to-service communication. The author balances practical choices with deliberate exposure to new technologies like Remix and GraphQL.
Table of contents
Functional Goals Copy link Link copied!Application Architecture Copy link Link copied!Security Copy link Link copied!Conclusion Copy link Link copied!Sort: