JobsResearch / Engineering notes
A match score needs an explanation
From scattered job postings to an inspectable decision, with the applicant in control.
Active project · private repository
- Postings + CV
- Assess
- Explain
- Review
The problem
JobsResearch brings job postings from Finnish boards into one workflow and assesses them against a CV. The useful output is a decision aid: what fits, what is missing, and which opportunity deserves a closer look.
Show the reason alongside the score
Each match has a score and a written explanation. Language requirements can be flagged separately, with an opt-in filter for incompatible postings. A score helps sort a list; the explanation and explicit constraints help the applicant decide what to do.
Different tasks need different context
Matching uses the CV and posting. Cover-letter drafting uses that job’s description and the applicant’s CV, with an optional critique-and-revision pass. Company research is requested per job. Semantic search is available when a local Ollama embedding model is configured.
Keep the next action with the applicant
The application tracks saved jobs, applications and outcomes. These features connect model output to a usable workflow. The portfolio does not claim a measured improvement in interview conversion; that would require outcome data and a defined comparison.
My contribution & stack
Sole author — AI Systems Architect & Full-stack
- Python
- Flask
- SQLAlchemy
- PostgreSQL
- AI Agents
- Vector Embeddings
- React
- TypeScript
- Ollama
- Gemini / OpenAI / OpenRouter
- Docker
- Jenkins
- SonarQube
The system boundary
The React interface sits above a Flask backend and persistent job data. Model routing supports local Ollama and hosted providers. A task such as matching, company research or drafting gets the context it needs; semantic retrieval has its own embedding-model dependency. The admin preview shows model selection and per-feature generation limits.
What the evidence establishes
The portfolio snapshot records approximately 3,600 scraped and LLM-scored postings. This demonstrates processing scope, not match accuracy. A useful walkthrough should inspect a posting, its score and explanation, and the available follow-up actions together. The repository is private, so a guided walkthrough is the route to deeper implementation review.
Sources & project context
Based on the project workflow and portfolio materials. The repository is private; a walkthrough is available on request.