Skip to content
Michael BoimanFreelance Quality Engineer & AI Architect · Frankfurt am Main
ClassicMinimalFutureMatch

Project match · with Jev

Does Michael fit your project?

Paste a job posting, upload a file or pick an example. Jev, a model by TypeSafe, checks every requirement against the CV and names the evidence. The code of this page then computes the score, traceable and adjustable.

Read the posting
Freelance: Senior Test Automation Engineer with an AI focus
Utility company, customer portal, start now, 6 months, mostly remote

Your tasks:
- Build end-to-end test automation with Playwright and TypeScript for our customer portal
- Automated API tests for the REST interfaces to billing and contract management
- Integrate the test runs into Azure DevOps pipelines, including reports for the team
- Use AI to generate and maintain test cases from requirements
- Analyse test failures and incidents, also with the help of LLMs
- Coach the development team on test strategy and the test pyramid

Your profile:
- At least 5 years of experience automating tests for web applications
- Very good knowledge of Playwright or comparable frameworks
- Experience with CI/CD, ideally Azure DevOps
- Hands-on experience with LLMs in quality assurance
- Load testing skills are a plus
- Very good German

An example replays a stored measurement. Your browser sends no request for it.

How the score comes about

Jev writes no text. It answers small, fixed questions with a probability, a choice or a level. The code of this page composes the score from them.

  1. 01

    Code splits

    The posting is split into lines: every list item one line, a paragraph without a list into sentences. Headings drop out, at most 16 lines go out.

  2. 02

    Jev judges

    One request per line with the whole CV: is it a requirement, is it mandatory, which area does it belong to, which entry shows it and how well, from 0 to 3. One more request says how central each area is to the project.

  3. 03

    Code computes

    Coverage, must-haves and topic fit are arithmetic over these answers. Moving the weights changes the arithmetic, not the judgements.

The arithmetic

  • Coverage = sum of weight × level/3, divided by the sum of the weights. A mandatory line weighs double.
  • Topic fit = per area the mean coverage of its lines, weighted by how central the area is to the project.
  • Overall = 70 % coverage + 30 % topic fit, rounded to 100 points. From 85 very good, from 70 good, from 50 partial.
  • A line counts as shown from level 1.5, closer to "done in one role" than to "related".

Limits

  • Jev only sees the public CV of this site. What is not there, it cannot show.
  • The questions to Jev are in English, the texts are often German.
  • Every line is asked once. A second run may differ slightly on single levels.
  • The score is a machine estimate over passages of text, not a judgement about people and not a commitment.

One request to Jev, shortened

The CV entries sit in the state once, and the choice points at them by path.

POST https://api.typesafe.ai/v1/systemone
{
  "model": "jev-latest",
  "state": {
    "requirement": "Build end-to-end test automation with Playwright and TypeScript for our customer portal",
    "cv": {
      "x-profile": "Freelance Quality Engineer & AI Architect. Quality Engineer and AI Architect. Quality engi …",
      "s-tu-darmstadt": "Guest Lecture: AI-Assisted Software Development in Practice, TU Darmstadt (04/2026): Guest …",
      "…": "…"
    }
  },
  "questions": {
    "must": {
      "type": "noul",
      "instructions": "Is `requirement` phrased as mandatory rather than optional or nice to have?"
    },
    "evidence": {
      "type": "choice",
      "instructions": "Which entry of `cv` best shows that the candidate meets `requirement`?",
      "criteria": {
        "x-profile": "`cv.x-profile`",
        "s-tu-darmstadt": "`cv.s-tu-darmstadt`",
        "…": "…",
        "none": "No entry of `cv` shows it"
      }
    },
    "level": {
      "type": "score",
      "instructions": "How well does `cv` show that the candidate has done what `requirement` asks for?",
      "criteria": [
        "Not at all",
        "Adjacent or transferable experience",
        "Done in at least one role or project",
        "Done repeatedly, across several roles or projects"
      ]
    },
    "…": "…"
  }
}