{
  "nodes": [
    {
      "ID": "position",
      "name": "Data Engineer",
      "type": "Position",
      "properties": {
        "Department": "Data Platform",
        "Seniority": "Mid-level",
        "Location model": "Hybrid",
        "Opened on": "2026-09-01",
        "Requisition ref": "REQ-DP-0417"
      },
      "description": "The Data Platform team is hiring a mid-level Data Engineer to build and run the pipelines that move product, payment and customer-service data into the company's cloud warehouse. The role opened because the analytics team had outgrown a set of hand-run scripts: reports arrived late, the same metric showed different numbers in different teams, and every new data source took weeks to connect.\n\nThe new engineer will write and maintain batch and streaming pipelines in Python and SQL, model the warehouse so analysts can rely on one version of each metric, and work day to day with the analysts and product managers who depend on that data. The team works in English across four countries; the role is hybrid, with two office days a week.\n\nMore than three hundred people applied. An AI screening agent read every CV against eight weighted criteria agreed by the hiring manager and the recruiter, and returned a ranked shortlist. Six finalists remain. Each finalist is now scored on every criterion twice: once by the AI agent from the CV, and once by people from structured interviews and a take-home work sample. Where the two disagree, the human evidence is read first.\n\nThe AI ranking informs the decision but does not make it. The hiring manager decides who advances, after reading the evidence behind each score, and a candidate who misses a must-have is discussed rather than rejected automatically.",
      "size": 6,
      "position": {
        "x": 0,
        "y": 0,
        "z": 0
      }
    },
    {
      "ID": "crit-python-sql",
      "name": "Python and SQL for data pipelines",
      "type": "Criterion",
      "properties": {
        "Weight": "20%",
        "Must have": true,
        "Category": "Skill",
        "Assessed by": "Mixed",
        "Scale anchors": "1 no evidence / 2 scripting only / 3 builds and tests production pipelines alone / 4 designs reusable pipeline code / 5 sets coding standards others follow"
      },
      "description": "Writing the code that pulls data out of source systems, cleans it and loads it into the warehouse is the core of the job, and almost all of it is Python and SQL. The hiring manager made this a must-have because every other task in the role runs through these two languages, and the team cannot spare months to teach either from scratch.\n\nThe CV shows where a candidate has used both in production. The take-home work sample shows how they structure code, deal with malformed records and write tests. A 3 means the candidate already builds and tests production pipelines on their own; a 5 means they set the coding standards a team follows. This criterion carries the largest share of the decision because weak pipeline code is the problem the role was opened to fix.",
      "size": 6,
      "features": {
        "resizeTextToFit": true
      },
      "position": {
        "x": 20.3253,
        "y": 8.419,
        "z": 0
      }
    },
    {
      "ID": "crit-production",
      "name": "Production pipeline experience 3+ years",
      "type": "Criterion",
      "properties": {
        "Weight": "15%",
        "Must have": true,
        "Category": "Experience",
        "Assessed by": "Mixed",
        "Scale anchors": "1 none / 2 under 3 years or non-production only / 3 3+ years running production pipelines / 4 also owned on-call and incident follow-up / 5 led a platform migration or redesign"
      },
      "description": "The team's nightly pipelines carry payment data, and when one fails the finance reports are wrong the next morning. That is why the hiring manager asks for at least three years of running pipelines in production, not only building them in projects or courses.\n\nPeople who have been on call for live pipelines tend to build in retries, alerts and safe re-runs from the start, because they have lived through the night when those were missing. The CV gives the duration and the kind of systems; the interview checks ownership by asking the candidate to walk through a real incident from alert to follow-up. Below three years, or without production ownership, this must-have counts as not met and is raised for discussion.",
      "size": 5,
      "features": {
        "resizeTextToFit": true
      },
      "position": {
        "x": 20.3253,
        "y": -8.419,
        "z": 0
      }
    },
    {
      "ID": "crit-orchestration",
      "name": "Orchestration and streaming tools",
      "type": "Criterion",
      "properties": {
        "Weight": "15%",
        "Must have": false,
        "Category": "Skill",
        "Assessed by": "Work sample",
        "Scale anchors": "1 none / 2 has used a scheduler / 3 builds scheduled workflows in Airflow or similar / 4 also runs event streams such as Kafka / 5 designs mixed batch and streaming flows"
      },
      "description": "The team schedules its batch jobs in Apache Airflow and is moving order and payment events onto Apache Kafka so dashboards can update within minutes instead of overnight. A new engineer who already knows these tools can take on part of that migration in the first quarter.\n\nIt is a nice-to-have rather than a must-have because a strong pipeline engineer can learn a specific scheduler or streaming tool within a few months. The work sample includes a small scheduling task and an optional streaming task, so the score rests on what the candidate built, not on tool names listed in a CV.",
      "size": 5,
      "features": {
        "resizeTextToFit": true
      },
      "position": {
        "x": 8.419,
        "y": -20.3253,
        "z": 0
      }
    },
    {
      "ID": "crit-modelling",
      "name": "Data modelling and warehouse design",
      "type": "Criterion",
      "properties": {
        "Weight": "15%",
        "Must have": false,
        "Category": "Skill",
        "Assessed by": "Work sample",
        "Scale anchors": "1 none / 2 queries existing models only / 3 builds tested models in dbt or similar / 4 designs dimensional models for a domain / 5 shapes the warehouse layout across domains"
      },
      "description": "When sales and finance report different revenue for the same month, the cause is usually not the pipeline but the model: two tables that count the same order at different levels of detail. Clean warehouse design is how the team intends to end those arguments, which is why modelling carries the same weight as production experience.\n\nThe work sample asks candidates to turn raw order data into a small reporting model and to state the grain of each table. A 3 means tested models in a tool such as dbt; a 4 or 5 means the candidate designs the model itself, so analysts can answer new questions without new tables.",
      "size": 5,
      "features": {
        "resizeTextToFit": true
      },
      "position": {
        "x": 8.419,
        "y": 20.3253,
        "z": 0
      }
    },
    {
      "ID": "crit-education",
      "name": "Quantitative degree or equivalent practice",
      "type": "Criterion",
      "properties": {
        "Weight": "5%",
        "Must have": false,
        "Category": "Education",
        "Assessed by": "CV screening",
        "Scale anchors": "1 no related study or practice / 2 related study without applied work / 3 quantitative degree or structured programme plus practice / 4 quantitative degree applied in data work / 5 advanced quantitative degree applied in data work"
      },
      "description": "A background in a quantitative field helps an engineer reason about data quality, sampling and the statistics analysts ask for. The weight is deliberately small: the team values what a candidate can do over where they learned it, and a structured training programme followed by years of applied work counts as equivalent.\n\nOnly the level and field of study are considered. Institution names and study dates are left out of the assessment, because they say little about the job and can reveal age or background.",
      "size": 3,
      "features": {
        "resizeTextToFit": true
      },
      "position": {
        "x": -20.3253,
        "y": 8.419,
        "z": 0
      }
    },
    {
      "ID": "crit-certification",
      "name": "Cloud data certification",
      "type": "Criterion",
      "properties": {
        "Weight": "5%",
        "Must have": false,
        "Category": "Certification",
        "Assessed by": "CV screening",
        "Scale anchors": "1 none / 2 expired or unrelated certificate / 3 current associate-level cloud data certificate / 4 current certificate on the team's cloud or a professional-level certificate / 5 current professional-level certificate on the team's cloud"
      },
      "description": "The warehouse and pipelines run on managed cloud services, and a current cloud data certificate shows that a candidate has studied how those services are secured, priced and operated. It shortens onboarding but does not replace experience, so it carries only a small weight.\n\nCertificates are checked on the issuer's public register during the human review. An expired certificate still shows past study and scores lower than a current one; having none is not held against a candidate beyond this criterion.",
      "size": 3,
      "features": {
        "resizeTextToFit": true
      },
      "position": {
        "x": -20.3253,
        "y": -8.419,
        "z": 0
      }
    },
    {
      "ID": "crit-english",
      "name": "Professional English at C1",
      "type": "Criterion",
      "properties": {
        "Weight": "10%",
        "Must have": true,
        "Category": "Language",
        "Assessed by": "Interview",
        "Scale anchors": "1 below B1 / 2 B1 to B2 with frequent breakdowns in technical discussion / 3 C1 in technical discussion / 4 C1 or above including clear written documentation / 5 C2 precise in speech and writing"
      },
      "description": "The team works across four countries and all design documents, incident reports and code reviews are written in English. A misunderstanding in an incident report can send the next on-call engineer down the wrong path, so the hiring manager set C1 as a must-have.\n\nThe CV only shows the level a candidate declares. The level that counts is the one heard and read during the interview and in the written part of the work sample. A score of 3 is the C1 bar; below it the must-have counts as not met and is discussed, not used as an automatic rejection.",
      "size": 4,
      "features": {
        "resizeTextToFit": true
      },
      "position": {
        "x": -8.419,
        "y": -20.3253,
        "z": 0
      }
    },
    {
      "ID": "crit-collaboration",
      "name": "Collaboration with analysts and stakeholders",
      "type": "Criterion",
      "properties": {
        "Weight": "15%",
        "Must have": false,
        "Category": "Behaviour",
        "Assessed by": "Interview",
        "Scale anchors": "1 no job-related example / 2 works from tickets only / 3 clarifies requirements with data users / 4 turns business questions into data designs / 5 leads joint planning across teams"
      },
      "description": "The role exists partly because analysts and engineers kept talking past each other: requests arrived as tickets, pipelines were built to the letter, and the result still did not answer the business question. The hiring manager wants someone who asks what a number will be used for before building it.\n\nIn the structured interview every finalist is asked about a time a stakeholder's request was unclear and what they did about it. The score rests only on the example given and its outcome. General impressions of personality are not scored, because they are not job-related evidence and invite bias.",
      "size": 5,
      "features": {
        "resizeTextToFit": true
      },
      "position": {
        "x": -8.419,
        "y": 20.3253,
        "z": 0
      }
    },
    {
      "ID": "cand-a",
      "name": "Candidate A",
      "type": "Candidate",
      "properties": {
        "Applicant ref": "APP-58213",
        "AI rank": 4,
        "AI match score": 3.5,
        "Stage": "Interviewed",
        "Experience band": "3–5 years",
        "Notice period": "1 month",
        "Screened on": "2026-10-06"
      },
      "description": "Candidate A came into data engineering through a structured training programme and has spent three and a half years building batch pipelines for a subscription business. Their CV describes the work in general terms, which is why the AI agent ranked them fourth and gave mostly middling scores.\n\nThe interviews told a fuller story. The candidate owned the nightly ingestion for their team, including on-call duty, and runs weekly office hours where analysts bring questions about metrics. Several human scores came in above the AI's, because the evidence the CV left out surfaced once someone asked.\n\nThe work-sample review for orchestration and modelling is still open, so the picture is incomplete and no decision has been taken yet.",
      "size": 3.5,
      "position": {
        "x": 0,
        "y": -63,
        "z": 0
      }
    },
    {
      "ID": "cand-b",
      "name": "Candidate B",
      "type": "Candidate",
      "properties": {
        "Applicant ref": "APP-41076",
        "AI rank": 1,
        "AI match score": 4.5,
        "Stage": "Final round",
        "Experience band": "6–9 years",
        "Notice period": "3 months",
        "Screened on": "2026-10-06"
      },
      "description": "Candidate B's CV reads almost like the job advert: six years of pipeline work at a fintech scale-up, settlement pipelines on Spark, Airflow and Kafka, dbt models on Snowflake, a master's degree in statistics and a current professional cloud certificate. The AI agent ranked them first with the highest match score on the shortlist.\n\nThe final round was more mixed. The candidate's code was clean and well tested, but the modelling exercise mixed two levels of detail in one table, and when asked about an unclear stakeholder request, the example they chose was about pushing back on analysts rather than finding out what they needed. Human scores came in lower than the AI's on six of the eight criteria.\n\nThe gap between a CV that matches every keyword and the behaviour seen in interviews is exactly what the hiring manager wants to weigh before deciding. The candidate also has the longest notice period on the shortlist.",
      "size": 3.5,
      "position": {
        "x": -54.5596,
        "y": -31.5,
        "z": 0
      }
    },
    {
      "ID": "cand-c",
      "name": "Candidate C",
      "type": "Candidate",
      "properties": {
        "Applicant ref": "APP-66390",
        "AI rank": 6,
        "AI match score": 3,
        "Stage": "Interviewed",
        "Experience band": "6–9 years",
        "Notice period": "2 months",
        "Screened on": "2026-10-06"
      },
      "description": "Candidate C spent six years as a backend engineer, the last two of them running a streaming platform for a logistics company. The CV lists few warehouse tools, so the AI agent ranked the candidate last and could not score collaboration at all: the CV mentions mentoring but gives nothing the agent could rate.\n\nIn person the candidate made up much of that ground. They designed the cleanest mixed batch-and-streaming flow in the work sample, and described leading a joint incident review with support analysts that changed how alerts were routed. Modelling is the clear weak spot: the work sample produced normalised application tables, not a reporting model.\n\nThe recruiter has not yet confirmed the degree and the absence of a certificate, so the human review is still partial.",
      "size": 3.5,
      "position": {
        "x": -54.5596,
        "y": 31.5,
        "z": 0
      }
    },
    {
      "ID": "cand-d",
      "name": "Candidate D",
      "type": "Candidate",
      "properties": {
        "Applicant ref": "APP-30552",
        "AI rank": 2,
        "AI match score": 4,
        "Stage": "Final round",
        "Experience band": "3–5 years",
        "Notice period": "1 month",
        "Screened on": "2026-10-06"
      },
      "description": "Candidate D has four years as an analytics engineer at a retail analytics company, building ingestion jobs and the sales models that analysts query. The CV names Airflow, dbt, Snowflake and dimensional modelling and includes a current AWS data certificate, which earned the second place in the AI ranking.\n\nThe final round confirmed the AI on most criteria and went beyond it on two. The candidate's modelling work sample was the best in the round: a clean star schema with the grain of every table written down and tested. Asked about an unclear request, they described turning a vague revenue question into one shared metric definition agreed by three teams, which is the exact problem this role exists to solve.\n\nThe candidate has no streaming experience yet, which the hiring manager judged learnable within the first months.",
      "size": 3.5,
      "position": {
        "x": 0,
        "y": 63,
        "z": 0
      }
    },
    {
      "ID": "cand-e",
      "name": "Candidate E",
      "type": "Candidate",
      "properties": {
        "Applicant ref": "APP-72814",
        "AI rank": 5,
        "AI match score": 3.5,
        "Stage": "Shortlisted",
        "Experience band": "3–5 years",
        "Notice period": "2 weeks",
        "Screened on": "2026-10-06"
      },
      "description": "Candidate E works in a payments backend team and has spent just over three years building Spark jobs and Snowflake reporting tables for fraud dashboards, after earlier backend-only roles. The CV also lists a current professional cloud certificate. The AI agent placed the candidate fifth.\n\nNo interview or work sample has happened yet: the candidate joined the shortlist late, after another finalist withdrew. Every score on this candidate is therefore the AI's alone, and the English must-have cannot be confirmed until someone has spoken with them.\n\nWith a two-week notice period the candidate could start soonest, which is why the recruiter has booked the interview for next week rather than dropping them from the round.",
      "size": 3.5,
      "position": {
        "x": 54.5596,
        "y": 31.5,
        "z": 0
      }
    },
    {
      "ID": "cand-f",
      "name": "Candidate F",
      "type": "Candidate",
      "properties": {
        "Applicant ref": "APP-19947",
        "AI rank": 3,
        "AI match score": 4,
        "Stage": "Interviewed",
        "Experience band": "3–5 years",
        "Notice period": "1 month",
        "Screened on": "2026-10-06"
      },
      "description": "Candidate F has four years of building production pipelines for a logistics platform, moving from backend services into batch and event-stream processing with Spark and Kafka. The AI agent ranked the candidate third, and the work sample proved it right: the strongest code in the round, typed, tested and safe to re-run.\n\nThe one problem is a must-have. The candidate declares English at B2, and in the interview they followed every technical question but struggled to explain trade-offs at length and asked for several rephrasings. Both the AI and the hiring manager scored the language criterion below the C1 bar.\n\nThe missed must-have is flagged, not treated as a rejection. The hiring manager wants to discuss whether written documentation support and a language course would close the gap, given how strong the technical evidence is.",
      "size": 3.5,
      "position": {
        "x": 54.5596,
        "y": -31.5,
        "z": 0
      }
    },
    {
      "ID": "overall-a",
      "name": "Overall evaluation of Candidate A",
      "type": "Overall evaluation",
      "properties": {
        "AI weighted score": 3,
        "Human weighted score": 0,
        "Human review": "Partial",
        "Must haves met": 3,
        "Must haves total": 3,
        "Open concerns": "Human review pending on Orchestration and streaming tools, Data modelling and warehouse design. Databricks certificate has lapsed.",
        "Human decision": "Pending",
        "Decided by": "",
        "Decided on": ""
      },
      "description": "Candidate A's weighted AI score of 3.00 placed them in the lower half of the shortlist, mostly because the CV describes solid work without detail. The human review so far points the other way: on every criterion people have scored, they rated the candidate the same as or higher than the AI, most clearly on production ownership and collaboration with analysts.\n\nTwo criteria worth thirty percent of the decision, orchestration and modelling, wait for the work-sample panel. Until those scores are in, the human weighted score stays at 0 and the decision stays pending, so the hiring manager does not compare a partial picture with complete ones.",
      "size": 2.5,
      "features": {
        "resizeTextToFit": true
      },
      "position": {
        "x": 0,
        "y": -70.5,
        "z": 0
      }
    },
    {
      "ID": "overall-b",
      "name": "Overall evaluation of Candidate B",
      "type": "Overall evaluation",
      "properties": {
        "AI weighted score": 4.55,
        "Human weighted score": 3.5,
        "Human review": "Complete",
        "Must haves met": 3,
        "Must haves total": 3,
        "Open concerns": "Collaboration example did not show how a stakeholder's need was clarified. Modelling work sample mixed two levels of detail in one table. Three-month notice period.",
        "Human decision": "Hold",
        "Decided by": "Hiring manager",
        "Decided on": "2026-10-22"
      },
      "description": "Candidate B has the highest weighted AI score on the shortlist, 4.55, and meets all three must-haves. The completed human review lands at 3.50: still solid, but a full point lower, with the largest drop on collaboration with analysts, the behaviour the role was opened to fix.\n\nThe hiring manager put the candidate on hold rather than advancing them. The reason is not a single weak score but the pattern: the CV matched every keyword, while the interview and work sample showed gaps in modelling and in working with data users. A follow-up conversation focused on stakeholder work would decide whether the hold becomes an advance.",
      "size": 2.5,
      "features": {
        "resizeTextToFit": true
      },
      "position": {
        "x": -61.0548,
        "y": -35.25,
        "z": 0
      }
    },
    {
      "ID": "overall-c",
      "name": "Overall evaluation of Candidate C",
      "type": "Overall evaluation",
      "properties": {
        "AI weighted score": 2.7,
        "Human weighted score": 0,
        "Human review": "Partial",
        "Must haves met": 3,
        "Must haves total": 3,
        "Open concerns": "No AI score on Collaboration with analysts and stakeholders. Human review pending on Quantitative degree or equivalent practice, Cloud data certification. Modelling work sample scored 2.",
        "Human decision": "Pending",
        "Decided by": "",
        "Decided on": ""
      },
      "description": "Candidate C has the lowest weighted AI score on the shortlist, 2.70, and part of that is an artefact: the AI agent gave no score for collaboration, which counts as zero in the sum. The human panel scored the same criterion 4 on the strength of a concrete example, so the AI total understates the candidate.\n\nAll three must-haves are met. The strongest evidence is in streaming and orchestration, the team's main project for the coming year; the weakest is warehouse modelling. Two low-weight checks, the degree and the certificate, are still open with the recruiter, so the decision is pending.",
      "size": 2.5,
      "features": {
        "resizeTextToFit": true
      },
      "position": {
        "x": -61.0548,
        "y": 35.25,
        "z": 0
      }
    },
    {
      "ID": "overall-d",
      "name": "Overall evaluation of Candidate D",
      "type": "Overall evaluation",
      "properties": {
        "AI weighted score": 3.8,
        "Human weighted score": 4.25,
        "Human review": "Complete",
        "Must haves met": 3,
        "Must haves total": 3,
        "Open concerns": "No streaming experience yet.",
        "Human decision": "Advance",
        "Decided by": "Hiring manager",
        "Decided on": "2026-10-22"
      },
      "description": "Candidate D came second in the AI ranking with a weighted AI score of 3.80, and is the only finalist whose completed human review is higher than the AI's: 4.25. The gain comes from the two criteria the CV could not fully show, warehouse modelling and collaboration with analysts, where the work sample and interview gave the strongest evidence on the shortlist.\n\nAll three must-haves are met. The hiring manager advanced the candidate to the offer discussion, noting that the missing streaming experience is the one gap and that the team can close it on the job.",
      "size": 2.5,
      "features": {
        "resizeTextToFit": true
      },
      "position": {
        "x": 0,
        "y": 70.5,
        "z": 0
      }
    },
    {
      "ID": "overall-e",
      "name": "Overall evaluation of Candidate E",
      "type": "Overall evaluation",
      "properties": {
        "AI weighted score": 3.25,
        "Human weighted score": 0,
        "Human review": "Not started",
        "Must haves met": 2,
        "Must haves total": 3,
        "Open concerns": "Must-have not yet assessed: Professional English at C1. Human review not started.",
        "Human decision": "Pending",
        "Decided by": "",
        "Decided on": ""
      },
      "description": "Candidate E's weighted AI score is 3.25, in the middle of the shortlist, built on a solid payments background and weaker evidence for orchestration and modelling. Because no person has assessed the candidate yet, there is no human score to set against it, and the English must-have is marked as not yet assessed rather than met.\n\nThe decision stays pending until the interview and work sample are done. Reading this candidate next to the others means comparing an AI-only picture with reviewed ones, so the scores here carry less weight than they appear to.",
      "size": 2.5,
      "features": {
        "resizeTextToFit": true
      },
      "position": {
        "x": 61.0548,
        "y": 35.25,
        "z": 0
      }
    },
    {
      "ID": "overall-f",
      "name": "Overall evaluation of Candidate F",
      "type": "Overall evaluation",
      "properties": {
        "AI weighted score": 3.55,
        "Human weighted score": 3.4,
        "Human review": "Complete",
        "Must haves met": 2,
        "Must haves total": 3,
        "Open concerns": "Must-have not met: Professional English at C1. Strong technical evidence; needs a decision on language support.",
        "Human decision": "Pending",
        "Decided by": "",
        "Decided on": ""
      },
      "description": "Candidate F's weighted AI score is 3.55 and the completed human review comes to 3.40. AI and people agree on seven of the eight criteria, and the technical evidence is among the strongest on the shortlist, led by the best pipeline code in the work sample.\n\nTwo of the three must-haves are met. English is the one that is not: both the AI and the hiring manager placed the candidate below the C1 bar. That is flagged for the decision meeting rather than used to reject the candidate, so the decision stays pending while the hiring manager weighs language support against the technical strength.",
      "size": 2.5,
      "features": {
        "resizeTextToFit": true
      },
      "position": {
        "x": 61.0548,
        "y": -35.25,
        "z": 0
      }
    },
    {
      "ID": "skill-python",
      "name": "Python",
      "type": "Skill",
      "properties": {
        "Skill area": "Technical"
      },
      "description": "Python is the language the team writes its pipelines, tests and small internal tools in. An engineer who is fluent in it can read the existing jobs on day one, fix a failing load without help and add a new data source by following the patterns already in place. It is the most common skill on this shortlist, so the difference between finalists lies in how they use it, which the work sample shows.",
      "size": 4.5,
      "position": {
        "x": 39.4049,
        "y": 11.3247,
        "z": 0
      }
    },
    {
      "ID": "skill-sql",
      "name": "SQL",
      "type": "Skill",
      "properties": {
        "Skill area": "Technical"
      },
      "description": "SQL is how data is shaped inside the warehouse: joins, aggregations and the transformations that turn raw events into reporting tables. Every finalist lists it, so the useful question is depth, such as writing efficient window functions or spotting a join that silently duplicates rows. Strong SQL feeds both the pipeline criterion and the modelling criterion.",
      "size": 4.5,
      "position": {
        "x": 27.3147,
        "y": 30.5762,
        "z": 0
      }
    },
    {
      "ID": "skill-spark",
      "name": "Apache Spark",
      "type": "Skill",
      "properties": {
        "Skill area": "Tool"
      },
      "description": "Apache Spark processes data sets too large for a single machine by spreading the work across a cluster. The team uses it for the monthly reprocessing of card transactions, so experience with it shortens the time before a new engineer can take that job over. It counts as evidence of production pipeline coding rather than as a criterion of its own.",
      "size": 3,
      "position": {
        "x": 40.8933,
        "y": 2.9561,
        "z": 0
      }
    },
    {
      "ID": "skill-airflow",
      "name": "Apache Airflow",
      "type": "Skill",
      "properties": {
        "Skill area": "Tool"
      },
      "description": "Apache Airflow schedules the team's batch jobs and decides what runs in which order and what happens when a step fails. Someone who has built workflows in it can take over the nightly schedule quickly and knows where retries and alerts belong.",
      "size": 3,
      "features": {
        "resizeTextToFit": true
      },
      "position": {
        "x": 18.8663,
        "y": -36.4014,
        "z": 0
      }
    },
    {
      "ID": "skill-kafka",
      "name": "Apache Kafka",
      "type": "Skill",
      "properties": {
        "Skill area": "Tool"
      },
      "description": "Apache Kafka carries streams of events, such as orders and payments, from the systems that create them to the systems that use them, within seconds. The team is moving to it so dashboards update during the day instead of the next morning, which makes hands-on Kafka experience valuable for the next year of work.",
      "size": 3,
      "position": {
        "x": 12.3992,
        "y": -39.0802,
        "z": 0
      }
    },
    {
      "ID": "skill-dbt",
      "name": "dbt",
      "type": "Skill",
      "properties": {
        "Skill area": "Tool"
      },
      "description": "dbt lets engineers write warehouse transformations as version-controlled SQL with tests and documentation attached. The team adopted it to make its reporting models reviewable, so a candidate who already works this way fits straight into the team's review process.",
      "size": 3,
      "position": {
        "x": 9.2865,
        "y": 39.9345,
        "z": 0
      }
    },
    {
      "ID": "skill-snowflake",
      "name": "Snowflake",
      "type": "Skill",
      "properties": {
        "Skill area": "Tool"
      },
      "description": "Snowflake is the cloud data warehouse the team loads into and models in. Knowing how it stores, prices and secures data helps an engineer design tables that are fast to query and cheap to run, which matters as data volumes grow.",
      "size": 3,
      "position": {
        "x": 20.4229,
        "y": 35.5515,
        "z": 0
      }
    },
    {
      "ID": "skill-dimensional",
      "name": "Dimensional modelling",
      "type": "Skill",
      "properties": {
        "Skill area": "Technical"
      },
      "description": "Dimensional modelling arranges warehouse data into facts, such as orders, and dimensions, such as customers and products, at a clearly stated level of detail. It is the method behind the team's plan to end conflicting revenue numbers, so it is the strongest single signal for the modelling criterion.",
      "size": 2,
      "features": {
        "resizeTextToFit": true
      },
      "position": {
        "x": 15.0155,
        "y": 38.1515,
        "z": 0
      }
    },
    {
      "ID": "skill-data-quality",
      "name": "Data quality testing",
      "type": "Skill",
      "properties": {
        "Skill area": "Technical"
      },
      "description": "Data quality testing checks data as it moves, for example that no order appears twice and that amounts are never negative, and stops a load before bad numbers reach a report. Engineers who write such tests as a habit cause fewer next-morning surprises for finance.",
      "size": 2.5,
      "features": {
        "resizeTextToFit": true
      },
      "position": {
        "x": 36.4557,
        "y": 18.7613,
        "z": 0
      }
    },
    {
      "ID": "skill-stakeholder",
      "name": "Stakeholder communication",
      "type": "Skill",
      "properties": {
        "Skill area": "Interpersonal"
      },
      "description": "Stakeholder communication here means asking analysts and product managers what a number is for, agreeing on its definition and explaining trade-offs in plain words. It is listed on some CVs; the interview tests it with a concrete example, because a listed skill alone says little about behaviour.",
      "size": 2.5,
      "features": {
        "resizeTextToFit": true
      },
      "position": {
        "x": -12.8763,
        "y": 38.9256,
        "z": 0
      }
    },
    {
      "ID": "exp-batch",
      "name": "Batch pipeline development",
      "type": "Experience",
      "properties": {
        "Experience kind": "Role"
      },
      "description": "Batch pipeline development is the work of building and running jobs that load data on a schedule, usually overnight. It is most of the team's current workload, so candidates with this background can contribute from the first week and already know the failure patterns of late or partial loads.",
      "size": 3.5,
      "features": {
        "resizeTextToFit": true
      },
      "position": {
        "x": 39.0802,
        "y": -12.3992,
        "z": 0
      }
    },
    {
      "ID": "exp-streaming",
      "name": "Streaming data platforms",
      "type": "Experience",
      "properties": {
        "Experience kind": "Project"
      },
      "description": "Experience on streaming data platforms means having built or run systems that process events continuously rather than in nightly batches. It counts toward production experience and toward the orchestration and streaming criterion, because the team's move to event streams is its main project for the coming year.",
      "size": 3,
      "features": {
        "resizeTextToFit": true
      },
      "position": {
        "x": 28.9914,
        "y": -28.9914,
        "z": 0
      }
    },
    {
      "ID": "exp-fintech",
      "name": "Payments and fintech data",
      "type": "Experience",
      "properties": {
        "Experience kind": "Domain"
      },
      "description": "Payments and fintech data comes with strict rules: every amount must reconcile, records are audited, and a missing transaction is an incident, not a rounding error. Engineers from this domain bring the habits the team's settlement pipelines need.",
      "size": 2.5,
      "features": {
        "resizeTextToFit": true
      },
      "position": {
        "x": 36.4014,
        "y": -18.8663,
        "z": 0
      }
    },
    {
      "ID": "exp-analytics-eng",
      "name": "Analytics engineering",
      "type": "Experience",
      "properties": {
        "Experience kind": "Role"
      },
      "description": "Analytics engineering sits between data engineering and analysis: building the models analysts query and agreeing with them how each metric is defined. Candidates from this role usually bring both modelling skill and practice in working closely with data users.",
      "size": 2.5,
      "features": {
        "resizeTextToFit": true
      },
      "position": {
        "x": 0,
        "y": 41,
        "z": 0
      }
    },
    {
      "ID": "exp-backend",
      "name": "Backend software engineering",
      "type": "Experience",
      "properties": {
        "Experience kind": "Role"
      },
      "description": "Backend software engineering builds the services behind an application. Engineers moving from there into data work bring strong coding, testing and deployment habits, which raise the quality of pipeline code, though they may be newer to warehouse modelling.",
      "size": 3,
      "features": {
        "resizeTextToFit": true
      },
      "position": {
        "x": 33.0325,
        "y": 24.2869,
        "z": 0
      }
    },
    {
      "ID": "exp-mentoring",
      "name": "Mentoring junior engineers",
      "type": "Experience",
      "properties": {
        "Experience kind": "Leadership"
      },
      "description": "Mentoring junior engineers means reviewing their code, explaining decisions and helping them grow. The team expects to hire juniors next year, and someone used to explaining their work clearly also tends to work well with analysts.",
      "size": 2.5,
      "features": {
        "resizeTextToFit": true
      },
      "position": {
        "x": -18.4196,
        "y": 36.6295,
        "z": 0
      }
    },
    {
      "ID": "edu-bsc-cs",
      "name": "Bachelor in Computer Science",
      "type": "Education",
      "properties": {
        "Level": "Bachelor",
        "Field": "Computer Science"
      },
      "description": "A bachelor's degree in computer science covers programming, algorithms and databases, the foundations of pipeline work. It meets the quantitative-degree criterion directly; how well the candidate applies it shows in the other criteria.",
      "size": 2.5,
      "features": {
        "resizeTextToFit": true
      },
      "position": {
        "x": -39.5101,
        "y": 10.9524,
        "z": 0
      }
    },
    {
      "ID": "edu-msc-stats",
      "name": "Master in Statistics",
      "type": "Education",
      "properties": {
        "Level": "Master",
        "Field": "Statistics"
      },
      "description": "A master's degree in statistics brings depth in sampling, distributions and statistical testing. In this role it helps with anomaly detection and with answering analysts' questions about whether a change in a metric is real.",
      "size": 2,
      "features": {
        "resizeTextToFit": true
      },
      "position": {
        "x": -34.9292,
        "y": 21.4698,
        "z": 0
      }
    },
    {
      "ID": "edu-bsc-physics",
      "name": "Bachelor in Physics",
      "type": "Education",
      "properties": {
        "Level": "Bachelor",
        "Field": "Physics"
      },
      "description": "A bachelor's degree in physics trains measurement, modelling and careful handling of noisy data. It counts as a quantitative degree; physics graduates who move into data engineering usually add their programming skills through practice.",
      "size": 2.5,
      "features": {
        "resizeTextToFit": true
      },
      "position": {
        "x": -37.4885,
        "y": 16.6016,
        "z": 0
      }
    },
    {
      "ID": "edu-programme",
      "name": "Data engineering programme",
      "type": "Education",
      "properties": {
        "Level": "Vocational",
        "Field": "Data Engineering"
      },
      "description": "A structured data engineering programme is an intensive course in pipelines, SQL and cloud tools, often taken when changing career. Combined with years of applied work it counts as equivalent practice under the education criterion, which values ability over the route taken to it.",
      "size": 2,
      "features": {
        "resizeTextToFit": true
      },
      "position": {
        "x": -32.056,
        "y": 25.5619,
        "z": 0
      }
    },
    {
      "ID": "cert-gcp-pde",
      "name": "Google Professional Data Engineer",
      "type": "Certification",
      "properties": {
        "Issuer": "Google Cloud",
        "Current": true
      },
      "description": "Google Professional Data Engineer is a professional-level certificate covering the design, security and operation of data systems on Google Cloud. It shows serious study of managed data services, though on a different cloud from the team's own warehouse.",
      "size": 2.5,
      "features": {
        "resizeTextToFit": true
      },
      "position": {
        "x": -39.5101,
        "y": -10.9524,
        "z": 0
      }
    },
    {
      "ID": "cert-aws-dea",
      "name": "AWS Data Engineer Associate",
      "type": "Certification",
      "properties": {
        "Issuer": "Amazon Web Services",
        "Current": true
      },
      "description": "AWS Data Engineer Associate is an associate-level certificate on building and running data pipelines with Amazon Web Services. The team's pipelines run on that cloud, so the certificate maps closely onto the services a new engineer will use.",
      "size": 2,
      "features": {
        "resizeTextToFit": true
      },
      "position": {
        "x": -35.4435,
        "y": -20.6096,
        "z": 0
      }
    },
    {
      "ID": "cert-databricks",
      "name": "Databricks Data Engineer Associate",
      "type": "Certification",
      "properties": {
        "Issuer": "Databricks",
        "Current": false
      },
      "description": "Databricks Data Engineer Associate covers building pipelines on the Databricks platform with Apache Spark. On this shortlist it has lapsed and has not been renewed, so it shows past study rather than current certification and scores lower under the certification criterion.",
      "size": 2,
      "features": {
        "resizeTextToFit": true
      },
      "position": {
        "x": -37.6887,
        "y": -16.142,
        "z": 0
      }
    },
    {
      "ID": "lang-en-c2",
      "name": "English C2",
      "type": "Language",
      "properties": {
        "Language": "English",
        "CEFR level": "C2"
      },
      "description": "English at C2 is the highest level on the common European scale: precise, nuanced use in speech and writing. It clears the must-have with room to spare, which matters most for writing design documents and incident reports others will act on.",
      "size": 2.5,
      "position": {
        "x": -21.3366,
        "y": -35.0107,
        "z": 0
      }
    },
    {
      "ID": "lang-en-c1",
      "name": "English C1",
      "type": "Language",
      "properties": {
        "Language": "English",
        "CEFR level": "C1"
      },
      "description": "English at C1 means fluent, flexible use in professional settings, including complex technical discussion. It is the level the role requires, confirmed in the interview rather than taken from the CV alone.",
      "size": 3,
      "position": {
        "x": -15.5355,
        "y": -37.9427,
        "z": 0
      }
    },
    {
      "ID": "lang-en-b2",
      "name": "English B2",
      "type": "Language",
      "properties": {
        "Language": "English",
        "CEFR level": "B2"
      },
      "description": "English at B2 means independent use: a person can follow technical discussion and explain their own work, but long or nuanced explanations take more effort. It is one level below the must-have, so a candidate at B2 is flagged for discussion, for example about language support, rather than rejected.",
      "size": 2,
      "position": {
        "x": -9.8314,
        "y": -39.8038,
        "z": 0
      }
    },
    {
      "ID": "guide-compare",
      "name": "Compare candidates on one criterion",
      "type": "Guide",
      "properties": {
        "Guide kind": "Click steps"
      },
      "description": "1. Click a yellow star, for example Professional English at C1.\n2. The Detail panel opens on the right. Scroll to Candidate: every finalist is listed, each with the link name \"scores\".\n3. Read each row's AI score, Human score, Agreement and the evidence behind them.\n4. Click a candidate's name in the list. The canvas brings that candidate to the centre and opens their Detail panel.\n5. Click empty canvas to close the panel and start again.",
      "size": [6, 1.5],
      "features": {
        "resizeTextToFit": true
      },
      "position": {
        "x": -71,
        "y": 5,
        "z": 0
      }
    },
    {
      "ID": "guide-candidate",
      "name": "Review one candidate",
      "type": "Guide",
      "properties": {
        "Guide kind": "Click steps"
      },
      "description": "1. Click a blue circle, for example Candidate D.\n2. In the Detail panel, read the properties below the description: AI rank, Stage, Experience band, Notice period.\n3. Scroll to Overall evaluation: it is listed first and shows the weighted scores and the decision.\n4. Scroll to Criterion: each of the eight criteria is listed with this candidate's AI and human score and evidence.\n5. Below that, the skills, experience, education, certificates and languages the candidate holds, each with the place in the CV it came from.\n6. Double-click any node on the canvas to fly to it.",
      "size": [6, 1.5],
      "features": {
        "resizeTextToFit": true
      },
      "position": {
        "x": -71,
        "y": 2.5,
        "z": 0
      }
    },
    {
      "ID": "guide-trace",
      "name": "Trace an overall score",
      "type": "Guide",
      "properties": {
        "Guide kind": "Click steps"
      },
      "description": "1. Click a purple hexagon, for example Overall evaluation of Candidate B.\n2. Read AI weighted score, Human weighted score, Human review, Must haves met and Open concerns.\n3. Click the candidate's name under Candidate to open the candidate.\n4. Under Criterion, take each row's Weight and multiply it by the AI score. Add the eight results and divide by 100: that is the AI weighted score.\n5. Do the same with Human score for the Human weighted score. It shows 0 until all eight criteria have a human score.",
      "size": [6, 1.5],
      "features": {
        "resizeTextToFit": true
      },
      "position": {
        "x": -71,
        "y": 0,
        "z": 0
      }
    },
    {
      "ID": "guide-legend",
      "name": "Read the shapes and colours",
      "type": "Guide",
      "properties": {
        "Guide kind": "Click steps"
      },
      "description": "1. Left toolbar: click Legend (the bottom button).\n2. The Legend lists every node type with its shape, colour and count: Position, Candidate, Overall evaluation, Criterion, Skill, Experience, Education, Certification, Language, Guide.\n3. Click a row, for example Candidate, to show only that type. The rest of the graph fades.\n4. Click more rows to add types, for example Criterion.\n5. Click a row again to remove it, or click Reset in Active filters to show everything.",
      "size": [6, 1.5],
      "features": {
        "resizeTextToFit": true
      },
      "position": {
        "x": -71,
        "y": 7.5,
        "z": 0
      }
    },
    {
      "ID": "guide-scale",
      "name": "Rating scale",
      "type": "Guide",
      "properties": {
        "Guide kind": "How to read"
      },
      "description": "Every criterion is scored from 1 to 5, and each criterion has its own anchors in its Scale anchors property.\n- 1: no evidence for the criterion.\n- 2: some evidence but below the bar.\n- 3: meets the bar the hiring manager set.\n- 4: clearly above the bar.\n- 5: clearly exceeds it, the level of someone who sets the standard.\n\nA score of 0 means no score yet. AI score 0: the AI agent found nothing it could rate. Human score 0: no person has reviewed that criterion yet.\n\nAI score comes from the AI screening agent reading the CV and application form. Human score comes from interviews, the work sample, reference checks or tests, and names who gave it.\n\nAgreement compares the two: Agree, Human higher, Human lower, or Not reviewed.\n\nAI match score on a candidate is the screening vendor's own overall match, on a 0 to 5 scale in steps of 0.5. It is not the weighted score.\n\nWeight is each criterion's share of the decision; the eight weights add up to 100%. Must-have criteria are flagged Yes, No or Not assessed on every candidate.",
      "size": [6, 1.5],
      "features": {
        "resizeTextToFit": true
      },
      "position": {
        "x": 0,
        "y": -8.6,
        "z": 0
      }
    },
    {
      "ID": "guide-law",
      "name": "Human oversight and the law",
      "type": "Guide",
      "properties": {
        "Guide kind": "Compliance"
      },
      "description": "This graph supports a hiring decision. It does not make one. Every score has evidence a person can check, and only a person sets Human decision.\n\n- EU AI Act: AI used for recruitment and selection is high-risk (Annex III). Human oversight, transparency and related duties apply from 2 December 2027 under Regulation (EU) 2026/1744. Check the current text on EUR-Lex.\n- GDPR Article 22: people may not be subject to a decision based solely on automated processing. In the SCHUFA ruling (C-634/21, 2023) the EU Court of Justice held that a score which drives the outcome can itself count as the decision, even if a person signs off.\n- New York City Local Law 144: an automated employment decision tool needs an independent bias audit within the past year, a published summary, and notice to candidates at least 10 business days before use.\n\nIn practice: read the evidence, not only the score; a missed must-have is a question for the decision meeting, not an automatic rejection.\n\nThis is not legal advice. Check with legal counsel before real use.",
      "size": [6, 1.5],
      "features": {
        "resizeTextToFit": true
      },
      "position": {
        "x": -71,
        "y": -7.5,
        "z": 0
      }
    },
    {
      "ID": "guide-exclusions",
      "name": "What is left out and why",
      "type": "Guide",
      "properties": {
        "Guide kind": "How to read"
      },
      "description": "Candidates appear as Candidate A to F. The letters are assigned in random order, so they say nothing about the AI ranking.\n\nLeft out of every node, property and evidence note:\n- names, initials, photos and contact details;\n- age, birth dates and the years degrees were earned;\n- gender and pronouns (candidates are \"they\");\n- family status, nationality, place of birth and \"native\" languages;\n- religion, political views, union membership, health and disability;\n- institution and employer names (sector and role are shown instead);\n- salary history, hobbies and reasons for career gaps;\n- personality judgements without job-related evidence.\n\nLanguages appear only when the job requires them, at a level from A1 to C2. Evidence notes are short summaries, not CV text.\n\nThe reason: removing names alone does not stop bias, because age, gender or origin can be read from other details. Leaving those details out keeps attention on the evidence the criteria ask for.",
      "size": [6, 1.5],
      "features": {
        "resizeTextToFit": true
      },
      "position": {
        "x": -71,
        "y": -5,
        "z": 0
      }
    },
    {
      "ID": "guide-filter",
      "name": "Narrow the list by score",
      "type": "Guide",
      "properties": {
        "Guide kind": "Click steps"
      },
      "description": "1. Top toolbar: click Filter.\n2. Condition: choose AND.\n3. Node: choose Connections.\n4. Property: choose Human score.\n5. Value: drag the range slider to 4 to 5.\n6. Click Add filter. The filter appears as a chip in Active filters.\n7. In Active filters, switch on Apply filter to node detail to hide the other rows in the Detail panel too.\n8. Click the filter chip to switch it off, or click Reset to remove all filters.\nAI score and Weight work the same way. For Agreement, step 5 is a pick list: choose for example Human lower.",
      "size": [6, 1.5],
      "features": {
        "resizeTextToFit": true
      },
      "position": {
        "x": -71,
        "y": -2.5,
        "z": 0
      }
    }
  ],
  "links": [
    {
      "node1": "cand-a",
      "node2": "crit-python-sql",
      "name1": "scores",
      "name2": "is scored on",
      "direction": 0,
      "properties": {
        "Link role": "Evaluation",
        "Weight": "20%",
        "Must have met": "Yes",
        "AI score": 3,
        "AI confidence": "Medium",
        "AI evidence": "Three and a half years of Python and SQL; pipeline work described only in general terms",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 4,
        "Human evidence": "Clear modular code with good tests; one join that would not scale to full volume",
        "Human source": "Work sample",
        "Human evaluator": "Panel: 2 data engineers",
        "Human reviewed on": "2026-10-17",
        "Agreement": "Human higher"
      }
    },
    {
      "node1": "cand-a",
      "node2": "crit-production",
      "name1": "scores",
      "name2": "is scored on",
      "direction": 0,
      "properties": {
        "Link role": "Evaluation",
        "Weight": "15%",
        "Must have met": "Yes",
        "AI score": 3,
        "AI confidence": "Medium",
        "AI evidence": "Three and a half years in data roles; production ownership not stated",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 4,
        "Human evidence": "Owned nightly ingestion including on-call; walked through a late-file incident and the re-run that fixed it",
        "Human source": "Interview",
        "Human evaluator": "Hiring manager",
        "Human reviewed on": "2026-10-15",
        "Agreement": "Human higher"
      }
    },
    {
      "node1": "cand-a",
      "node2": "crit-orchestration",
      "name1": "scores",
      "name2": "is scored on",
      "direction": 0,
      "properties": {
        "Link role": "Evaluation",
        "Weight": "15%",
        "Must have met": "",
        "AI score": 3,
        "AI confidence": "Medium",
        "AI evidence": "Airflow listed; no streaming tool named",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": "Not reviewed"
      }
    },
    {
      "node1": "cand-a",
      "node2": "crit-modelling",
      "name1": "scores",
      "name2": "is scored on",
      "direction": 0,
      "properties": {
        "Link role": "Evaluation",
        "Weight": "15%",
        "Must have met": "",
        "AI score": 3,
        "AI confidence": "Medium",
        "AI evidence": "dbt listed in one project; modelling depth unclear",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": "Not reviewed"
      }
    },
    {
      "node1": "cand-a",
      "node2": "crit-education",
      "name1": "scores",
      "name2": "is scored on",
      "direction": 0,
      "properties": {
        "Link role": "Evaluation",
        "Weight": "5%",
        "Must have met": "",
        "AI score": 2,
        "AI confidence": "High",
        "AI evidence": "Data engineering programme; no degree listed",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 3,
        "Human evidence": "Programme plus three years of applied pipeline work meets the equivalent-practice bar",
        "Human source": "Interview",
        "Human evaluator": "Recruiter",
        "Human reviewed on": "2026-10-14",
        "Agreement": "Human higher"
      }
    },
    {
      "node1": "cand-a",
      "node2": "crit-certification",
      "name1": "scores",
      "name2": "is scored on",
      "direction": 0,
      "properties": {
        "Link role": "Evaluation",
        "Weight": "5%",
        "Must have met": "",
        "AI score": 2,
        "AI confidence": "Medium",
        "AI evidence": "Databricks Data Engineer Associate listed; expiry date passed",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 2,
        "Human evidence": "Issuer register confirms the certificate has lapsed; renewal planned",
        "Human source": "Reference",
        "Human evaluator": "Recruiter",
        "Human reviewed on": "2026-10-14",
        "Agreement": "Agree"
      }
    },
    {
      "node1": "cand-a",
      "node2": "crit-english",
      "name1": "scores",
      "name2": "is scored on",
      "direction": 0,
      "properties": {
        "Link role": "Evaluation",
        "Weight": "10%",
        "Must have met": "Yes",
        "AI score": 4,
        "AI confidence": "High",
        "AI evidence": "C1 declared; CV and cover letter written in clear English",
        "AI source": "Application form",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 4,
        "Human evidence": "Fluent and precise in technical discussion; clear written summary in the interview task",
        "Human source": "Interview",
        "Human evaluator": "Hiring manager",
        "Human reviewed on": "2026-10-15",
        "Agreement": "Agree"
      }
    },
    {
      "node1": "cand-a",
      "node2": "crit-collaboration",
      "name1": "scores",
      "name2": "is scored on",
      "direction": 0,
      "properties": {
        "Link role": "Evaluation",
        "Weight": "15%",
        "Must have met": "",
        "AI score": 3,
        "AI confidence": "Medium",
        "AI evidence": "Mentoring of two junior engineers mentioned; no stakeholder example",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 4,
        "Human evidence": "Runs weekly office hours for analysts; reworked a churn metric with them after asking what decision it fed",
        "Human source": "Interview",
        "Human evaluator": "Hiring manager",
        "Human reviewed on": "2026-10-15",
        "Agreement": "Human higher"
      }
    },
    {
      "node1": "cand-a",
      "node2": "skill-python",
      "name1": "is a skill of",
      "name2": "has skill",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "High",
        "AI evidence": "Skills section; two project entries describe Python ingestion jobs",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-a",
      "node2": "skill-sql",
      "name1": "is a skill of",
      "name2": "has skill",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "High",
        "AI evidence": "Skills section; reporting queries mentioned in the current role",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-a",
      "node2": "skill-airflow",
      "name1": "is a skill of",
      "name2": "has skill",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "Medium",
        "AI evidence": "Listed in skills; no project detail",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-a",
      "node2": "skill-dbt",
      "name1": "is a skill of",
      "name2": "has skill",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "Medium",
        "AI evidence": "Listed in skills and in one project entry",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-a",
      "node2": "skill-data-quality",
      "name1": "is a skill of",
      "name2": "has skill",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "Medium",
        "AI evidence": "Current role: added row-count and null checks to nightly loads",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-a",
      "node2": "exp-batch",
      "name1": "is experience of",
      "name2": "has experience in",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "High",
        "AI evidence": "Current role: nightly ingestion for a subscription business",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-a",
      "node2": "exp-analytics-eng",
      "name1": "is experience of",
      "name2": "has experience in",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "Medium",
        "AI evidence": "Earlier role titled analytics engineer at a media company",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-a",
      "node2": "exp-mentoring",
      "name1": "is experience of",
      "name2": "has experience in",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "Medium",
        "AI evidence": "Mentions mentoring two junior engineers",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-a",
      "node2": "edu-programme",
      "name1": "is degree of",
      "name2": "holds degree",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "High",
        "AI evidence": "Education section: data engineering programme completed",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-a",
      "node2": "cert-databricks",
      "name1": "is held by",
      "name2": "holds",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "Medium",
        "AI evidence": "Certifications section; expiry date already passed",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-a",
      "node2": "lang-en-c1",
      "name1": "is spoken by",
      "name2": "speaks",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "High",
        "AI evidence": "English C1 declared on the application form",
        "AI source": "Application form",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-a",
      "node2": "position",
      "name1": "has finalist",
      "name2": "is a finalist for",
      "direction": 0,
      "properties": {
        "Link role": "Application",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "overall-a",
      "node2": "cand-a",
      "name1": "is summed up by",
      "name2": "sums up",
      "direction": 0,
      "properties": {
        "Link role": "Roll-up",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-b",
      "node2": "crit-python-sql",
      "name1": "scores",
      "name2": "is scored on",
      "direction": 0,
      "properties": {
        "Link role": "Evaluation",
        "Weight": "20%",
        "Must have met": "Yes",
        "AI score": 5,
        "AI confidence": "High",
        "AI evidence": "Six years of Python and SQL pipelines; Spark jobs on card transactions",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 4,
        "Human evidence": "Clean, well-tested pipeline; credentials hard-coded in one module and no handling of late-arriving records",
        "Human source": "Work sample",
        "Human evaluator": "Panel: 2 data engineers",
        "Human reviewed on": "2026-10-16",
        "Agreement": "Human lower"
      }
    },
    {
      "node1": "cand-b",
      "node2": "crit-production",
      "name1": "scores",
      "name2": "is scored on",
      "direction": 0,
      "properties": {
        "Link role": "Evaluation",
        "Weight": "15%",
        "Must have met": "Yes",
        "AI score": 5,
        "AI confidence": "High",
        "AI evidence": "Six years owning nightly settlement pipelines",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 4,
        "Human evidence": "Strong on-call account; described incident follow-up as another team's job",
        "Human source": "Interview",
        "Human evaluator": "Hiring manager",
        "Human reviewed on": "2026-10-15",
        "Agreement": "Human lower"
      }
    },
    {
      "node1": "cand-b",
      "node2": "crit-orchestration",
      "name1": "scores",
      "name2": "is scored on",
      "direction": 0,
      "properties": {
        "Link role": "Evaluation",
        "Weight": "15%",
        "Must have met": "",
        "AI score": 5,
        "AI confidence": "High",
        "AI evidence": "Airflow and Kafka both listed with project detail",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 4,
        "Human evidence": "Correct Airflow workflow with retries; skipped the optional streaming task, citing the time box",
        "Human source": "Work sample",
        "Human evaluator": "Panel: 2 data engineers",
        "Human reviewed on": "2026-10-16",
        "Agreement": "Human lower"
      }
    },
    {
      "node1": "cand-b",
      "node2": "crit-modelling",
      "name1": "scores",
      "name2": "is scored on",
      "direction": 0,
      "properties": {
        "Link role": "Evaluation",
        "Weight": "15%",
        "Must have met": "",
        "AI score": 4,
        "AI confidence": "Medium",
        "AI evidence": "dbt and Snowflake listed; modelling described only as 'maintained models'",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 3,
        "Human evidence": "Models run and are tested, but one fact table mixes order and order-line grain; spotted it only when prompted",
        "Human source": "Work sample",
        "Human evaluator": "Panel: 2 data engineers",
        "Human reviewed on": "2026-10-16",
        "Agreement": "Human lower"
      }
    },
    {
      "node1": "cand-b",
      "node2": "crit-education",
      "name1": "scores",
      "name2": "is scored on",
      "direction": 0,
      "properties": {
        "Link role": "Evaluation",
        "Weight": "5%",
        "Must have met": "",
        "AI score": 5,
        "AI confidence": "High",
        "AI evidence": "Master's degree in statistics",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 5,
        "Human evidence": "Degree confirmed; uses statistical tests in daily anomaly checks on settlement data",
        "Human source": "Interview",
        "Human evaluator": "Recruiter",
        "Human reviewed on": "2026-10-13",
        "Agreement": "Agree"
      }
    },
    {
      "node1": "cand-b",
      "node2": "crit-certification",
      "name1": "scores",
      "name2": "is scored on",
      "direction": 0,
      "properties": {
        "Link role": "Evaluation",
        "Weight": "5%",
        "Must have met": "",
        "AI score": 4,
        "AI confidence": "High",
        "AI evidence": "Google Professional Data Engineer, listed as current",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 4,
        "Human evidence": "Current status confirmed on the issuer register; different cloud from the team's",
        "Human source": "Reference",
        "Human evaluator": "Recruiter",
        "Human reviewed on": "2026-10-13",
        "Agreement": "Agree"
      }
    },
    {
      "node1": "cand-b",
      "node2": "crit-english",
      "name1": "scores",
      "name2": "is scored on",
      "direction": 0,
      "properties": {
        "Link role": "Evaluation",
        "Weight": "10%",
        "Must have met": "Yes",
        "AI score": 4,
        "AI confidence": "Medium",
        "AI evidence": "C1 declared; CV in fluent English",
        "AI source": "Application form",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 3,
        "Human evidence": "Clear in technical discussion; written incident summary brief but understandable",
        "Human source": "Interview",
        "Human evaluator": "Hiring manager",
        "Human reviewed on": "2026-10-15",
        "Agreement": "Human lower"
      }
    },
    {
      "node1": "cand-b",
      "node2": "crit-collaboration",
      "name1": "scores",
      "name2": "is scored on",
      "direction": 0,
      "properties": {
        "Link role": "Evaluation",
        "Weight": "15%",
        "Must have met": "",
        "AI score": 4,
        "AI confidence": "Medium",
        "AI evidence": "Mentions 'partnering with finance analysts' on reconciliation reports",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 2,
        "Human evidence": "Example was about refusing analysts' requests; could not describe how the real need was clarified",
        "Human source": "Interview",
        "Human evaluator": "Hiring manager",
        "Human reviewed on": "2026-10-15",
        "Agreement": "Human lower"
      }
    },
    {
      "node1": "cand-b",
      "node2": "skill-python",
      "name1": "is a skill of",
      "name2": "has skill",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "High",
        "AI evidence": "Skills section; four project entries with Python pipeline detail",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-b",
      "node2": "skill-sql",
      "name1": "is a skill of",
      "name2": "has skill",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "High",
        "AI evidence": "Skills section; reconciliation queries described in current role",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-b",
      "node2": "skill-spark",
      "name1": "is a skill of",
      "name2": "has skill",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "High",
        "AI evidence": "Current role: Spark jobs on card transaction data",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-b",
      "node2": "skill-airflow",
      "name1": "is a skill of",
      "name2": "has skill",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "High",
        "AI evidence": "Current role: maintains the team's Airflow schedule",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-b",
      "node2": "skill-kafka",
      "name1": "is a skill of",
      "name2": "has skill",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "High",
        "AI evidence": "Project entry: payment events moved onto Kafka",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-b",
      "node2": "skill-dbt",
      "name1": "is a skill of",
      "name2": "has skill",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "Medium",
        "AI evidence": "Listed; 'maintained dbt models' in current role",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-b",
      "node2": "skill-snowflake",
      "name1": "is a skill of",
      "name2": "has skill",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "High",
        "AI evidence": "Skills section and current role",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-b",
      "node2": "exp-batch",
      "name1": "is experience of",
      "name2": "has experience in",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "High",
        "AI evidence": "Six years of nightly settlement and reporting pipelines",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-b",
      "node2": "exp-streaming",
      "name1": "is experience of",
      "name2": "has experience in",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "High",
        "AI evidence": "Project entry: real-time payment event stream",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-b",
      "node2": "exp-fintech",
      "name1": "is experience of",
      "name2": "has experience in",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "High",
        "AI evidence": "Current employer is a fintech scale-up; payments data throughout",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-b",
      "node2": "edu-msc-stats",
      "name1": "is degree of",
      "name2": "holds degree",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "High",
        "AI evidence": "Education section: master's degree in statistics",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-b",
      "node2": "cert-gcp-pde",
      "name1": "is held by",
      "name2": "holds",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "High",
        "AI evidence": "Certifications section; listed as current",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-b",
      "node2": "lang-en-c1",
      "name1": "is spoken by",
      "name2": "speaks",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "Medium",
        "AI evidence": "English C1 declared on the application form",
        "AI source": "Application form",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-b",
      "node2": "position",
      "name1": "has finalist",
      "name2": "is a finalist for",
      "direction": 0,
      "properties": {
        "Link role": "Application",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "overall-b",
      "node2": "cand-b",
      "name1": "is summed up by",
      "name2": "sums up",
      "direction": 0,
      "properties": {
        "Link role": "Roll-up",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-c",
      "node2": "crit-python-sql",
      "name1": "scores",
      "name2": "is scored on",
      "direction": 0,
      "properties": {
        "Link role": "Evaluation",
        "Weight": "20%",
        "Must have met": "Yes",
        "AI score": 3,
        "AI confidence": "Medium",
        "AI evidence": "Python and SQL in backend services; pipeline work limited to one migration project",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 3,
        "Human evidence": "Working pipeline with sensible structure; very little test coverage",
        "Human source": "Work sample",
        "Human evaluator": "Panel: 2 data engineers",
        "Human reviewed on": "2026-10-17",
        "Agreement": "Agree"
      }
    },
    {
      "node1": "cand-c",
      "node2": "crit-production",
      "name1": "scores",
      "name2": "is scored on",
      "direction": 0,
      "properties": {
        "Link role": "Evaluation",
        "Weight": "15%",
        "Must have met": "Yes",
        "AI score": 3,
        "AI confidence": "Medium",
        "AI evidence": "About three years of data-heavy work within six years of engineering",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 3,
        "Human evidence": "Ran a streaming platform in production for two years; batch pipeline experience thin",
        "Human source": "Interview",
        "Human evaluator": "Hiring manager",
        "Human reviewed on": "2026-10-16",
        "Agreement": "Agree"
      }
    },
    {
      "node1": "cand-c",
      "node2": "crit-orchestration",
      "name1": "scores",
      "name2": "is scored on",
      "direction": 0,
      "properties": {
        "Link role": "Evaluation",
        "Weight": "15%",
        "Must have met": "",
        "AI score": 4,
        "AI confidence": "High",
        "AI evidence": "Kafka platform ownership described in detail; no scheduler named",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 5,
        "Human evidence": "Designed a clean mixed batch and streaming flow, including replay of missed events",
        "Human source": "Work sample",
        "Human evaluator": "Panel: 2 data engineers",
        "Human reviewed on": "2026-10-17",
        "Agreement": "Human higher"
      }
    },
    {
      "node1": "cand-c",
      "node2": "crit-modelling",
      "name1": "scores",
      "name2": "is scored on",
      "direction": 0,
      "properties": {
        "Link role": "Evaluation",
        "Weight": "15%",
        "Must have met": "",
        "AI score": 2,
        "AI confidence": "Medium",
        "AI evidence": "No modelling tool or reporting model mentioned",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 2,
        "Human evidence": "Produced normalised application tables; no analytical model or stated grain",
        "Human source": "Work sample",
        "Human evaluator": "Panel: 2 data engineers",
        "Human reviewed on": "2026-10-17",
        "Agreement": "Agree"
      }
    },
    {
      "node1": "cand-c",
      "node2": "crit-education",
      "name1": "scores",
      "name2": "is scored on",
      "direction": 0,
      "properties": {
        "Link role": "Evaluation",
        "Weight": "5%",
        "Must have met": "",
        "AI score": 4,
        "AI confidence": "Medium",
        "AI evidence": "Bachelor's degree in physics",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": "Not reviewed"
      }
    },
    {
      "node1": "cand-c",
      "node2": "crit-certification",
      "name1": "scores",
      "name2": "is scored on",
      "direction": 0,
      "properties": {
        "Link role": "Evaluation",
        "Weight": "5%",
        "Must have met": "",
        "AI score": 1,
        "AI confidence": "High",
        "AI evidence": "No certification listed",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": "Not reviewed"
      }
    },
    {
      "node1": "cand-c",
      "node2": "crit-english",
      "name1": "scores",
      "name2": "is scored on",
      "direction": 0,
      "properties": {
        "Link role": "Evaluation",
        "Weight": "10%",
        "Must have met": "Yes",
        "AI score": 5,
        "AI confidence": "High",
        "AI evidence": "C2 declared; CV and portfolio in polished English",
        "AI source": "Application form",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 5,
        "Human evidence": "Precise and concise in speech; work-sample notes read like good documentation",
        "Human source": "Interview",
        "Human evaluator": "Hiring manager",
        "Human reviewed on": "2026-10-16",
        "Agreement": "Agree"
      }
    },
    {
      "node1": "cand-c",
      "node2": "crit-collaboration",
      "name1": "scores",
      "name2": "is scored on",
      "direction": 0,
      "properties": {
        "Link role": "Evaluation",
        "Weight": "15%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "Low",
        "AI evidence": "CV gives no basis for a rating; mentoring mentioned without detail",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 4,
        "Human evidence": "Led a joint incident review with support analysts that changed how alerts are routed",
        "Human source": "Interview",
        "Human evaluator": "Hiring manager",
        "Human reviewed on": "2026-10-16",
        "Agreement": "Human higher"
      }
    },
    {
      "node1": "cand-c",
      "node2": "skill-python",
      "name1": "is a skill of",
      "name2": "has skill",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "High",
        "AI evidence": "Backend services and one migration project in Python",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-c",
      "node2": "skill-sql",
      "name1": "is a skill of",
      "name2": "has skill",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "Medium",
        "AI evidence": "Listed in skills; no project detail",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-c",
      "node2": "skill-kafka",
      "name1": "is a skill of",
      "name2": "has skill",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "High",
        "AI evidence": "Current role: runs the streaming platform built on Kafka",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-c",
      "node2": "skill-stakeholder",
      "name1": "is a skill of",
      "name2": "has skill",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "Low",
        "AI evidence": "Listed in skills without an example",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-c",
      "node2": "exp-streaming",
      "name1": "is experience of",
      "name2": "has experience in",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "High",
        "AI evidence": "Two years running a streaming platform for a logistics company",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-c",
      "node2": "exp-mentoring",
      "name1": "is experience of",
      "name2": "has experience in",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "Medium",
        "AI evidence": "Mentions mentoring junior engineers in current team",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-c",
      "node2": "exp-backend",
      "name1": "is experience of",
      "name2": "has experience in",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "High",
        "AI evidence": "Six years of backend service development",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-c",
      "node2": "edu-bsc-physics",
      "name1": "is degree of",
      "name2": "holds degree",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "High",
        "AI evidence": "Education section: bachelor's degree in physics",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-c",
      "node2": "lang-en-c2",
      "name1": "is spoken by",
      "name2": "speaks",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "High",
        "AI evidence": "English C2 declared; portfolio written in polished English",
        "AI source": "Application form",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-c",
      "node2": "position",
      "name1": "has finalist",
      "name2": "is a finalist for",
      "direction": 0,
      "properties": {
        "Link role": "Application",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "overall-c",
      "node2": "cand-c",
      "name1": "is summed up by",
      "name2": "sums up",
      "direction": 0,
      "properties": {
        "Link role": "Roll-up",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-d",
      "node2": "crit-python-sql",
      "name1": "scores",
      "name2": "is scored on",
      "direction": 0,
      "properties": {
        "Link role": "Evaluation",
        "Weight": "20%",
        "Must have met": "Yes",
        "AI score": 4,
        "AI confidence": "High",
        "AI evidence": "Four years of Python and SQL; ingestion jobs for marketing data",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 4,
        "Human evidence": "Readable, tested pipeline; malformed rows routed to a quarantine table",
        "Human source": "Work sample",
        "Human evaluator": "Panel: 2 data engineers",
        "Human reviewed on": "2026-10-16",
        "Agreement": "Agree"
      }
    },
    {
      "node1": "cand-d",
      "node2": "crit-production",
      "name1": "scores",
      "name2": "is scored on",
      "direction": 0,
      "properties": {
        "Link role": "Evaluation",
        "Weight": "15%",
        "Must have met": "Yes",
        "AI score": 4,
        "AI confidence": "High",
        "AI evidence": "Four years running nightly pipelines for a retail analytics platform",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 4,
        "Human evidence": "Walked through two incidents end to end, including the backfill and the alert added afterwards",
        "Human source": "Interview",
        "Human evaluator": "Hiring manager",
        "Human reviewed on": "2026-10-15",
        "Agreement": "Agree"
      }
    },
    {
      "node1": "cand-d",
      "node2": "crit-orchestration",
      "name1": "scores",
      "name2": "is scored on",
      "direction": 0,
      "properties": {
        "Link role": "Evaluation",
        "Weight": "15%",
        "Must have met": "",
        "AI score": 3,
        "AI confidence": "Medium",
        "AI evidence": "Airflow listed with project detail; no streaming experience",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 3,
        "Human evidence": "Solid Airflow workflow with retries and alerts; did not attempt the streaming task",
        "Human source": "Work sample",
        "Human evaluator": "Panel: 2 data engineers",
        "Human reviewed on": "2026-10-16",
        "Agreement": "Agree"
      }
    },
    {
      "node1": "cand-d",
      "node2": "crit-modelling",
      "name1": "scores",
      "name2": "is scored on",
      "direction": 0,
      "properties": {
        "Link role": "Evaluation",
        "Weight": "15%",
        "Must have met": "",
        "AI score": 4,
        "AI confidence": "High",
        "AI evidence": "dbt, Snowflake and dimensional modelling listed; sales star schema described",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 5,
        "Human evidence": "Clean star schema with the grain of every table documented and tested; best submission in the round",
        "Human source": "Work sample",
        "Human evaluator": "Panel: 2 data engineers",
        "Human reviewed on": "2026-10-16",
        "Agreement": "Human higher"
      }
    },
    {
      "node1": "cand-d",
      "node2": "crit-education",
      "name1": "scores",
      "name2": "is scored on",
      "direction": 0,
      "properties": {
        "Link role": "Evaluation",
        "Weight": "5%",
        "Must have met": "",
        "AI score": 4,
        "AI confidence": "High",
        "AI evidence": "Bachelor's degree in computer science",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 4,
        "Human evidence": "Degree confirmed",
        "Human source": "Interview",
        "Human evaluator": "Recruiter",
        "Human reviewed on": "2026-10-13",
        "Agreement": "Agree"
      }
    },
    {
      "node1": "cand-d",
      "node2": "crit-certification",
      "name1": "scores",
      "name2": "is scored on",
      "direction": 0,
      "properties": {
        "Link role": "Evaluation",
        "Weight": "5%",
        "Must have met": "",
        "AI score": 4,
        "AI confidence": "High",
        "AI evidence": "AWS Data Engineer Associate, listed as current",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 4,
        "Human evidence": "Current status confirmed on the issuer register; matches the team's cloud",
        "Human source": "Reference",
        "Human evaluator": "Recruiter",
        "Human reviewed on": "2026-10-13",
        "Agreement": "Agree"
      }
    },
    {
      "node1": "cand-d",
      "node2": "crit-english",
      "name1": "scores",
      "name2": "is scored on",
      "direction": 0,
      "properties": {
        "Link role": "Evaluation",
        "Weight": "10%",
        "Must have met": "Yes",
        "AI score": 5,
        "AI confidence": "High",
        "AI evidence": "C2 declared; publishes technical writing in English",
        "AI source": "Application form",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 5,
        "Human evidence": "Precise in speech and writing; the work-sample README was exemplary",
        "Human source": "Interview",
        "Human evaluator": "Hiring manager",
        "Human reviewed on": "2026-10-15",
        "Agreement": "Agree"
      }
    },
    {
      "node1": "cand-d",
      "node2": "crit-collaboration",
      "name1": "scores",
      "name2": "is scored on",
      "direction": 0,
      "properties": {
        "Link role": "Evaluation",
        "Weight": "15%",
        "Must have met": "",
        "AI score": 3,
        "AI confidence": "Medium",
        "AI evidence": "Mentions working with marketing analysts; no outcome given",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 5,
        "Human evidence": "Turned a vague revenue question into one shared metric definition agreed by three teams",
        "Human source": "Interview",
        "Human evaluator": "Hiring manager",
        "Human reviewed on": "2026-10-15",
        "Agreement": "Human higher"
      }
    },
    {
      "node1": "cand-d",
      "node2": "skill-python",
      "name1": "is a skill of",
      "name2": "has skill",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "High",
        "AI evidence": "Ingestion jobs for marketing data in current role",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-d",
      "node2": "skill-sql",
      "name1": "is a skill of",
      "name2": "has skill",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "High",
        "AI evidence": "Skills section; sales mart described in current role",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-d",
      "node2": "skill-airflow",
      "name1": "is a skill of",
      "name2": "has skill",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "High",
        "AI evidence": "Current role: schedules ingestion in Airflow",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-d",
      "node2": "skill-dbt",
      "name1": "is a skill of",
      "name2": "has skill",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "High",
        "AI evidence": "Current role: dbt project with tests and documentation",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-d",
      "node2": "skill-snowflake",
      "name1": "is a skill of",
      "name2": "has skill",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "High",
        "AI evidence": "Skills section and current role",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-d",
      "node2": "skill-dimensional",
      "name1": "is a skill of",
      "name2": "has skill",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "High",
        "AI evidence": "Project entry: designed the sales star schema",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-d",
      "node2": "skill-stakeholder",
      "name1": "is a skill of",
      "name2": "has skill",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "Medium",
        "AI evidence": "Mentions working with marketing analysts on campaign metrics",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-d",
      "node2": "exp-batch",
      "name1": "is experience of",
      "name2": "has experience in",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "High",
        "AI evidence": "Four years of nightly ingestion pipelines",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-d",
      "node2": "exp-analytics-eng",
      "name1": "is experience of",
      "name2": "has experience in",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "High",
        "AI evidence": "Current role titled analytics engineer",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-d",
      "node2": "edu-bsc-cs",
      "name1": "is degree of",
      "name2": "holds degree",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "High",
        "AI evidence": "Education section: bachelor's degree in computer science",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-d",
      "node2": "cert-aws-dea",
      "name1": "is held by",
      "name2": "holds",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "High",
        "AI evidence": "Certifications section; listed as current",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-d",
      "node2": "lang-en-c2",
      "name1": "is spoken by",
      "name2": "speaks",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "High",
        "AI evidence": "English C2 declared; technical blog posts in English linked from the CV",
        "AI source": "Application form",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-d",
      "node2": "position",
      "name1": "has finalist",
      "name2": "is a finalist for",
      "direction": 0,
      "properties": {
        "Link role": "Application",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "overall-d",
      "node2": "cand-d",
      "name1": "is summed up by",
      "name2": "sums up",
      "direction": 0,
      "properties": {
        "Link role": "Roll-up",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-e",
      "node2": "crit-python-sql",
      "name1": "scores",
      "name2": "is scored on",
      "direction": 0,
      "properties": {
        "Link role": "Evaluation",
        "Weight": "20%",
        "Must have met": "Yes",
        "AI score": 4,
        "AI confidence": "High",
        "AI evidence": "Python, SQL and Spark in a payments backend team",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": "Not reviewed"
      }
    },
    {
      "node1": "cand-e",
      "node2": "crit-production",
      "name1": "scores",
      "name2": "is scored on",
      "direction": 0,
      "properties": {
        "Link role": "Evaluation",
        "Weight": "15%",
        "Must have met": "Yes",
        "AI score": 3,
        "AI confidence": "Medium",
        "AI evidence": "Just over three years of pipeline work; earlier roles backend-only",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": "Not reviewed"
      }
    },
    {
      "node1": "cand-e",
      "node2": "crit-orchestration",
      "name1": "scores",
      "name2": "is scored on",
      "direction": 0,
      "properties": {
        "Link role": "Evaluation",
        "Weight": "15%",
        "Must have met": "",
        "AI score": 2,
        "AI confidence": "Medium",
        "AI evidence": "Spark only; no scheduler or streaming tool named",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": "Not reviewed"
      }
    },
    {
      "node1": "cand-e",
      "node2": "crit-modelling",
      "name1": "scores",
      "name2": "is scored on",
      "direction": 0,
      "properties": {
        "Link role": "Evaluation",
        "Weight": "15%",
        "Must have met": "",
        "AI score": 3,
        "AI confidence": "Medium",
        "AI evidence": "Snowflake listed; models described as 'reporting tables'",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": "Not reviewed"
      }
    },
    {
      "node1": "cand-e",
      "node2": "crit-education",
      "name1": "scores",
      "name2": "is scored on",
      "direction": 0,
      "properties": {
        "Link role": "Evaluation",
        "Weight": "5%",
        "Must have met": "",
        "AI score": 4,
        "AI confidence": "High",
        "AI evidence": "Bachelor's degree in computer science",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": "Not reviewed"
      }
    },
    {
      "node1": "cand-e",
      "node2": "crit-certification",
      "name1": "scores",
      "name2": "is scored on",
      "direction": 0,
      "properties": {
        "Link role": "Evaluation",
        "Weight": "5%",
        "Must have met": "",
        "AI score": 4,
        "AI confidence": "High",
        "AI evidence": "Google Professional Data Engineer, listed as current",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": "Not reviewed"
      }
    },
    {
      "node1": "cand-e",
      "node2": "crit-english",
      "name1": "scores",
      "name2": "is scored on",
      "direction": 0,
      "properties": {
        "Link role": "Evaluation",
        "Weight": "10%",
        "Must have met": "Not assessed",
        "AI score": 4,
        "AI confidence": "Medium",
        "AI evidence": "C1 declared; CV written in clear English",
        "AI source": "Application form",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": "Not reviewed"
      }
    },
    {
      "node1": "cand-e",
      "node2": "crit-collaboration",
      "name1": "scores",
      "name2": "is scored on",
      "direction": 0,
      "properties": {
        "Link role": "Evaluation",
        "Weight": "15%",
        "Must have met": "",
        "AI score": 3,
        "AI confidence": "Low",
        "AI evidence": "Worked with finance analysts on fraud dashboards; no detail on how",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": "Not reviewed"
      }
    },
    {
      "node1": "cand-e",
      "node2": "skill-python",
      "name1": "is a skill of",
      "name2": "has skill",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "High",
        "AI evidence": "Current role: Python services and Spark jobs",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-e",
      "node2": "skill-sql",
      "name1": "is a skill of",
      "name2": "has skill",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "High",
        "AI evidence": "Skills section; fraud reporting queries",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-e",
      "node2": "skill-spark",
      "name1": "is a skill of",
      "name2": "has skill",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "High",
        "AI evidence": "Current role: Spark jobs on payment events",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-e",
      "node2": "skill-snowflake",
      "name1": "is a skill of",
      "name2": "has skill",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "Medium",
        "AI evidence": "Reporting tables for fraud dashboards",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-e",
      "node2": "exp-fintech",
      "name1": "is experience of",
      "name2": "has experience in",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "High",
        "AI evidence": "Payments backend team in current role",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-e",
      "node2": "exp-backend",
      "name1": "is experience of",
      "name2": "has experience in",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "High",
        "AI evidence": "Earlier roles in backend development",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-e",
      "node2": "edu-bsc-cs",
      "name1": "is degree of",
      "name2": "holds degree",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "High",
        "AI evidence": "Education section: bachelor's degree in computer science",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-e",
      "node2": "cert-gcp-pde",
      "name1": "is held by",
      "name2": "holds",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "High",
        "AI evidence": "Certifications section; listed as current",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-e",
      "node2": "lang-en-c1",
      "name1": "is spoken by",
      "name2": "speaks",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "Medium",
        "AI evidence": "English C1 declared on the application form",
        "AI source": "Application form",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-e",
      "node2": "position",
      "name1": "has finalist",
      "name2": "is a finalist for",
      "direction": 0,
      "properties": {
        "Link role": "Application",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "overall-e",
      "node2": "cand-e",
      "name1": "is summed up by",
      "name2": "sums up",
      "direction": 0,
      "properties": {
        "Link role": "Roll-up",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-f",
      "node2": "crit-python-sql",
      "name1": "scores",
      "name2": "is scored on",
      "direction": 0,
      "properties": {
        "Link role": "Evaluation",
        "Weight": "20%",
        "Must have met": "Yes",
        "AI score": 5,
        "AI confidence": "High",
        "AI evidence": "Python and SQL in backend and streaming pipelines; Spark jobs on event data",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 5,
        "Human evidence": "Strongest code in the round: typed, tested, loads safe to re-run",
        "Human source": "Work sample",
        "Human evaluator": "Panel: 2 data engineers",
        "Human reviewed on": "2026-10-17",
        "Agreement": "Agree"
      }
    },
    {
      "node1": "cand-f",
      "node2": "crit-production",
      "name1": "scores",
      "name2": "is scored on",
      "direction": 0,
      "properties": {
        "Link role": "Evaluation",
        "Weight": "15%",
        "Must have met": "Yes",
        "AI score": 4,
        "AI confidence": "High",
        "AI evidence": "Four years building production pipelines for a logistics platform",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 4,
        "Human evidence": "Clear account of on-call duty and a late-data incident, including the fix",
        "Human source": "Interview",
        "Human evaluator": "Hiring manager",
        "Human reviewed on": "2026-10-16",
        "Agreement": "Agree"
      }
    },
    {
      "node1": "cand-f",
      "node2": "crit-orchestration",
      "name1": "scores",
      "name2": "is scored on",
      "direction": 0,
      "properties": {
        "Link role": "Evaluation",
        "Weight": "15%",
        "Must have met": "",
        "AI score": 4,
        "AI confidence": "High",
        "AI evidence": "Kafka project described in detail; no scheduler named",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 3,
        "Human evidence": "Built the streaming task well; the scheduled workflow had no retries or alerts",
        "Human source": "Work sample",
        "Human evaluator": "Panel: 2 data engineers",
        "Human reviewed on": "2026-10-17",
        "Agreement": "Human lower"
      }
    },
    {
      "node1": "cand-f",
      "node2": "crit-modelling",
      "name1": "scores",
      "name2": "is scored on",
      "direction": 0,
      "properties": {
        "Link role": "Evaluation",
        "Weight": "15%",
        "Must have met": "",
        "AI score": 3,
        "AI confidence": "Medium",
        "AI evidence": "Data quality tests mentioned; no modelling tool listed",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 3,
        "Human evidence": "Sound, tested tables but flat; no dimensional design",
        "Human source": "Work sample",
        "Human evaluator": "Panel: 2 data engineers",
        "Human reviewed on": "2026-10-17",
        "Agreement": "Agree"
      }
    },
    {
      "node1": "cand-f",
      "node2": "crit-education",
      "name1": "scores",
      "name2": "is scored on",
      "direction": 0,
      "properties": {
        "Link role": "Evaluation",
        "Weight": "5%",
        "Must have met": "",
        "AI score": 4,
        "AI confidence": "Medium",
        "AI evidence": "Bachelor's degree in physics",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 4,
        "Human evidence": "Degree confirmed; applies statistical checks to delivery data",
        "Human source": "Interview",
        "Human evaluator": "Recruiter",
        "Human reviewed on": "2026-10-14",
        "Agreement": "Agree"
      }
    },
    {
      "node1": "cand-f",
      "node2": "crit-certification",
      "name1": "scores",
      "name2": "is scored on",
      "direction": 0,
      "properties": {
        "Link role": "Evaluation",
        "Weight": "5%",
        "Must have met": "",
        "AI score": 1,
        "AI confidence": "High",
        "AI evidence": "No certification listed",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 1,
        "Human evidence": "Candidate confirmed holding no cloud certificate",
        "Human source": "Interview",
        "Human evaluator": "Recruiter",
        "Human reviewed on": "2026-10-14",
        "Agreement": "Agree"
      }
    },
    {
      "node1": "cand-f",
      "node2": "crit-english",
      "name1": "scores",
      "name2": "is scored on",
      "direction": 0,
      "properties": {
        "Link role": "Evaluation",
        "Weight": "10%",
        "Must have met": "No",
        "AI score": 2,
        "AI confidence": "Medium",
        "AI evidence": "B2 declared; several grammar slips in the CV",
        "AI source": "Application form",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 2,
        "Human evidence": "Followed all technical questions; struggled to explain trade-offs at length and asked for several rephrasings",
        "Human source": "Interview",
        "Human evaluator": "Hiring manager",
        "Human reviewed on": "2026-10-16",
        "Agreement": "Agree"
      }
    },
    {
      "node1": "cand-f",
      "node2": "crit-collaboration",
      "name1": "scores",
      "name2": "is scored on",
      "direction": 0,
      "properties": {
        "Link role": "Evaluation",
        "Weight": "15%",
        "Must have met": "",
        "AI score": 3,
        "AI confidence": "Low",
        "AI evidence": "Cross-team work mentioned once without detail",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 3,
        "Human evidence": "Worked with operations analysts on delivery-time metrics, mostly through tickets",
        "Human source": "Interview",
        "Human evaluator": "Hiring manager",
        "Human reviewed on": "2026-10-16",
        "Agreement": "Agree"
      }
    },
    {
      "node1": "cand-f",
      "node2": "skill-python",
      "name1": "is a skill of",
      "name2": "has skill",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "High",
        "AI evidence": "Typed Python pipelines in current role",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-f",
      "node2": "skill-sql",
      "name1": "is a skill of",
      "name2": "has skill",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "High",
        "AI evidence": "Skills section; delivery-time reporting queries",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-f",
      "node2": "skill-spark",
      "name1": "is a skill of",
      "name2": "has skill",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "High",
        "AI evidence": "Current role: Spark jobs on delivery events",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-f",
      "node2": "skill-kafka",
      "name1": "is a skill of",
      "name2": "has skill",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "High",
        "AI evidence": "Project entry: event-stream processing on Kafka",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-f",
      "node2": "skill-data-quality",
      "name1": "is a skill of",
      "name2": "has skill",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "Medium",
        "AI evidence": "Mentions data quality tests on every load",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-f",
      "node2": "exp-streaming",
      "name1": "is experience of",
      "name2": "has experience in",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "High",
        "AI evidence": "Event-stream processing for a logistics platform",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-f",
      "node2": "exp-batch",
      "name1": "is experience of",
      "name2": "has experience in",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "High",
        "AI evidence": "Nightly batch pipelines in current role",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-f",
      "node2": "exp-backend",
      "name1": "is experience of",
      "name2": "has experience in",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "Medium",
        "AI evidence": "Earlier role in backend services",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-f",
      "node2": "edu-bsc-physics",
      "name1": "is degree of",
      "name2": "holds degree",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "High",
        "AI evidence": "Education section: bachelor's degree in physics",
        "AI source": "CV",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-f",
      "node2": "lang-en-b2",
      "name1": "is spoken by",
      "name2": "speaks",
      "direction": 0,
      "properties": {
        "Link role": "Profile",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "High",
        "AI evidence": "English B2 declared on the application form",
        "AI source": "Application form",
        "AI evaluator": "ScreenAgent v2.3",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cand-f",
      "node2": "position",
      "name1": "has finalist",
      "name2": "is a finalist for",
      "direction": 0,
      "properties": {
        "Link role": "Application",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "overall-f",
      "node2": "cand-f",
      "name1": "is summed up by",
      "name2": "sums up",
      "direction": 0,
      "properties": {
        "Link role": "Roll-up",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "skill-python",
      "node2": "crit-python-sql",
      "name1": "looks for",
      "name2": "counts toward",
      "direction": 0,
      "properties": {
        "Link role": "Counts toward",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "skill-sql",
      "node2": "crit-python-sql",
      "name1": "looks for",
      "name2": "counts toward",
      "direction": 0,
      "properties": {
        "Link role": "Counts toward",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "skill-sql",
      "node2": "crit-modelling",
      "name1": "looks for",
      "name2": "counts toward",
      "direction": 0,
      "properties": {
        "Link role": "Counts toward",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "skill-spark",
      "node2": "crit-python-sql",
      "name1": "looks for",
      "name2": "counts toward",
      "direction": 0,
      "properties": {
        "Link role": "Counts toward",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "skill-airflow",
      "node2": "crit-orchestration",
      "name1": "looks for",
      "name2": "counts toward",
      "direction": 0,
      "properties": {
        "Link role": "Counts toward",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "skill-kafka",
      "node2": "crit-orchestration",
      "name1": "looks for",
      "name2": "counts toward",
      "direction": 0,
      "properties": {
        "Link role": "Counts toward",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "skill-dbt",
      "node2": "crit-modelling",
      "name1": "looks for",
      "name2": "counts toward",
      "direction": 0,
      "properties": {
        "Link role": "Counts toward",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "skill-snowflake",
      "node2": "crit-modelling",
      "name1": "looks for",
      "name2": "counts toward",
      "direction": 0,
      "properties": {
        "Link role": "Counts toward",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "skill-dimensional",
      "node2": "crit-modelling",
      "name1": "looks for",
      "name2": "counts toward",
      "direction": 0,
      "properties": {
        "Link role": "Counts toward",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "skill-data-quality",
      "node2": "crit-python-sql",
      "name1": "looks for",
      "name2": "counts toward",
      "direction": 0,
      "properties": {
        "Link role": "Counts toward",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "skill-stakeholder",
      "node2": "crit-collaboration",
      "name1": "looks for",
      "name2": "counts toward",
      "direction": 0,
      "properties": {
        "Link role": "Counts toward",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "exp-batch",
      "node2": "crit-production",
      "name1": "looks for",
      "name2": "counts toward",
      "direction": 0,
      "properties": {
        "Link role": "Counts toward",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "exp-streaming",
      "node2": "crit-production",
      "name1": "looks for",
      "name2": "counts toward",
      "direction": 0,
      "properties": {
        "Link role": "Counts toward",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "exp-streaming",
      "node2": "crit-orchestration",
      "name1": "looks for",
      "name2": "counts toward",
      "direction": 0,
      "properties": {
        "Link role": "Counts toward",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "exp-fintech",
      "node2": "crit-production",
      "name1": "looks for",
      "name2": "counts toward",
      "direction": 0,
      "properties": {
        "Link role": "Counts toward",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "exp-analytics-eng",
      "node2": "crit-modelling",
      "name1": "looks for",
      "name2": "counts toward",
      "direction": 0,
      "properties": {
        "Link role": "Counts toward",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "exp-analytics-eng",
      "node2": "crit-collaboration",
      "name1": "looks for",
      "name2": "counts toward",
      "direction": 0,
      "properties": {
        "Link role": "Counts toward",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "exp-backend",
      "node2": "crit-python-sql",
      "name1": "looks for",
      "name2": "counts toward",
      "direction": 0,
      "properties": {
        "Link role": "Counts toward",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "exp-mentoring",
      "node2": "crit-collaboration",
      "name1": "looks for",
      "name2": "counts toward",
      "direction": 0,
      "properties": {
        "Link role": "Counts toward",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "edu-bsc-cs",
      "node2": "crit-education",
      "name1": "looks for",
      "name2": "counts toward",
      "direction": 0,
      "properties": {
        "Link role": "Counts toward",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "edu-msc-stats",
      "node2": "crit-education",
      "name1": "looks for",
      "name2": "counts toward",
      "direction": 0,
      "properties": {
        "Link role": "Counts toward",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "edu-bsc-physics",
      "node2": "crit-education",
      "name1": "looks for",
      "name2": "counts toward",
      "direction": 0,
      "properties": {
        "Link role": "Counts toward",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "edu-programme",
      "node2": "crit-education",
      "name1": "looks for",
      "name2": "counts toward",
      "direction": 0,
      "properties": {
        "Link role": "Counts toward",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cert-gcp-pde",
      "node2": "crit-certification",
      "name1": "looks for",
      "name2": "counts toward",
      "direction": 0,
      "properties": {
        "Link role": "Counts toward",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cert-aws-dea",
      "node2": "crit-certification",
      "name1": "looks for",
      "name2": "counts toward",
      "direction": 0,
      "properties": {
        "Link role": "Counts toward",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "cert-databricks",
      "node2": "crit-certification",
      "name1": "looks for",
      "name2": "counts toward",
      "direction": 0,
      "properties": {
        "Link role": "Counts toward",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "lang-en-c2",
      "node2": "crit-english",
      "name1": "looks for",
      "name2": "counts toward",
      "direction": 0,
      "properties": {
        "Link role": "Counts toward",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "lang-en-c1",
      "node2": "crit-english",
      "name1": "looks for",
      "name2": "counts toward",
      "direction": 0,
      "properties": {
        "Link role": "Counts toward",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "lang-en-b2",
      "node2": "crit-english",
      "name1": "looks for",
      "name2": "counts toward",
      "direction": 0,
      "properties": {
        "Link role": "Counts toward",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "crit-python-sql",
      "node2": "position",
      "name1": "requires",
      "name2": "is required for",
      "direction": 0,
      "properties": {
        "Link role": "Requirement",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "crit-production",
      "node2": "position",
      "name1": "requires",
      "name2": "is required for",
      "direction": 0,
      "properties": {
        "Link role": "Requirement",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "crit-orchestration",
      "node2": "position",
      "name1": "requires",
      "name2": "is required for",
      "direction": 0,
      "properties": {
        "Link role": "Requirement",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "crit-modelling",
      "node2": "position",
      "name1": "requires",
      "name2": "is required for",
      "direction": 0,
      "properties": {
        "Link role": "Requirement",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "crit-education",
      "node2": "position",
      "name1": "requires",
      "name2": "is required for",
      "direction": 0,
      "properties": {
        "Link role": "Requirement",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "crit-certification",
      "node2": "position",
      "name1": "requires",
      "name2": "is required for",
      "direction": 0,
      "properties": {
        "Link role": "Requirement",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "crit-english",
      "node2": "position",
      "name1": "requires",
      "name2": "is required for",
      "direction": 0,
      "properties": {
        "Link role": "Requirement",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "crit-collaboration",
      "node2": "position",
      "name1": "requires",
      "name2": "is required for",
      "direction": 0,
      "properties": {
        "Link role": "Requirement",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "guide-compare",
      "node2": "position",
      "name1": "is explained by",
      "name2": "explains",
      "direction": 0,
      "properties": {
        "Link role": "Guide",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "guide-candidate",
      "node2": "position",
      "name1": "is explained by",
      "name2": "explains",
      "direction": 0,
      "properties": {
        "Link role": "Guide",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "guide-trace",
      "node2": "position",
      "name1": "is explained by",
      "name2": "explains",
      "direction": 0,
      "properties": {
        "Link role": "Guide",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "guide-legend",
      "node2": "position",
      "name1": "is explained by",
      "name2": "explains",
      "direction": 0,
      "properties": {
        "Link role": "Guide",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "guide-scale",
      "node2": "position",
      "name1": "is explained by",
      "name2": "explains",
      "direction": 0,
      "properties": {
        "Link role": "Guide",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "guide-scale",
      "node2": "crit-python-sql",
      "name1": "is explained by",
      "name2": "explains",
      "direction": 0,
      "properties": {
        "Link role": "Guide",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      },
      "visibility": false
    },
    {
      "node1": "guide-scale",
      "node2": "crit-production",
      "name1": "is explained by",
      "name2": "explains",
      "direction": 0,
      "properties": {
        "Link role": "Guide",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      },
      "visibility": false
    },
    {
      "node1": "guide-scale",
      "node2": "crit-orchestration",
      "name1": "is explained by",
      "name2": "explains",
      "direction": 0,
      "properties": {
        "Link role": "Guide",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      },
      "visibility": false
    },
    {
      "node1": "guide-scale",
      "node2": "crit-modelling",
      "name1": "is explained by",
      "name2": "explains",
      "direction": 0,
      "properties": {
        "Link role": "Guide",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      },
      "visibility": false
    },
    {
      "node1": "guide-scale",
      "node2": "crit-education",
      "name1": "is explained by",
      "name2": "explains",
      "direction": 0,
      "properties": {
        "Link role": "Guide",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      },
      "visibility": false
    },
    {
      "node1": "guide-scale",
      "node2": "crit-certification",
      "name1": "is explained by",
      "name2": "explains",
      "direction": 0,
      "properties": {
        "Link role": "Guide",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      },
      "visibility": false
    },
    {
      "node1": "guide-scale",
      "node2": "crit-english",
      "name1": "is explained by",
      "name2": "explains",
      "direction": 0,
      "properties": {
        "Link role": "Guide",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      },
      "visibility": false
    },
    {
      "node1": "guide-scale",
      "node2": "crit-collaboration",
      "name1": "is explained by",
      "name2": "explains",
      "direction": 0,
      "properties": {
        "Link role": "Guide",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      },
      "visibility": false
    },
    {
      "node1": "guide-law",
      "node2": "position",
      "name1": "is explained by",
      "name2": "explains",
      "direction": 0,
      "properties": {
        "Link role": "Guide",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "guide-exclusions",
      "node2": "position",
      "name1": "is explained by",
      "name2": "explains",
      "direction": 0,
      "properties": {
        "Link role": "Guide",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    },
    {
      "node1": "guide-filter",
      "node2": "position",
      "name1": "is explained by",
      "name2": "explains",
      "direction": 0,
      "properties": {
        "Link role": "Guide",
        "Weight": "0%",
        "Must have met": "",
        "AI score": 0,
        "AI confidence": "",
        "AI evidence": "",
        "AI source": "",
        "AI evaluator": "",
        "Human score": 0,
        "Human evidence": "",
        "Human source": "",
        "Human evaluator": "",
        "Human reviewed on": "",
        "Agreement": ""
      }
    }
  ],
  "visuals": [
    {
      "nodeType": "Position",
      "shape": "circle",
      "borderColor": "#e8684a"
    },
    {
      "nodeType": "Candidate",
      "shape": "circle",
      "borderColor": "#5b8ff9"
    },
    {
      "nodeType": "Overall evaluation",
      "shape": "hex",
      "borderColor": "#7262fd"
    },
    {
      "nodeType": "Criterion",
      "shape": "star",
      "borderColor": "#f6bd16"
    },
    {
      "nodeType": "Skill",
      "shape": "circle",
      "borderColor": "#61ddaa"
    },
    {
      "nodeType": "Experience",
      "shape": "hex[5]",
      "borderColor": "#f6903d"
    },
    {
      "nodeType": "Education",
      "shape": "hex[7]",
      "borderColor": "#78d3f8"
    },
    {
      "nodeType": "Certification",
      "shape": "hex[8]",
      "borderColor": "#008685"
    },
    {
      "nodeType": "Language",
      "shape": "hex[9]",
      "borderColor": "#9661bc"
    },
    {
      "nodeType": "Guide",
      "shape": "rectangle",
      "borderColor": "#f08bb4"
    }
  ],
  "dataTypes": {
    "Department": "typelist",
    "Seniority": "typelist",
    "Location model": "typelist",
    "Opened on": "datetime",
    "Requisition ref": "string",
    "Applicant ref": "string",
    "AI rank": "int",
    "AI match score": "dec",
    "Stage": "typelist",
    "Experience band": "typelist",
    "Notice period": "string",
    "Screened on": "datetime",
    "AI weighted score": "dec",
    "Human weighted score": "dec",
    "Human review": "typelist",
    "Must haves met": "int",
    "Must haves total": "int",
    "Open concerns": "string",
    "Human decision": "typelist",
    "Decided by": "string",
    "Decided on": "string",
    "Weight": "perc",
    "Must have": "bool",
    "Category": "typelist",
    "Assessed by": "typelist",
    "Scale anchors": "string",
    "Skill area": "typelist",
    "Experience kind": "typelist",
    "Level": "typelist",
    "Field": "string",
    "Issuer": "string",
    "Current": "bool",
    "Language": "typelist",
    "CEFR level": "typelist",
    "Guide kind": "typelist",
    "Link role": "typelist",
    "Must have met": "typelist",
    "AI score": "int",
    "AI confidence": "typelist",
    "AI evidence": "string",
    "AI source": "typelist",
    "AI evaluator": "string",
    "Human score": "int",
    "Human evidence": "string",
    "Human source": "typelist",
    "Human evaluator": "string",
    "Human reviewed on": "string",
    "Agreement": "typelist"
  },
  "detailView": [
    {
      "nodeType": "*",
      "own": "*",
      "others": []
    },
    {
      "nodeType": "Criterion",
      "own": "*",
      "others": ["Weight", "Must have"],
      "order": [
        "Candidate",
        "Skill",
        "Experience",
        "Education",
        "Certification",
        "Language",
        "Guide",
        "Position"
      ]
    },
    {
      "nodeType": "Candidate",
      "own": "*",
      "others": ["AI rank", "Stage"],
      "order": [
        "Overall evaluation",
        "Criterion",
        "Skill",
        "Experience",
        "Education",
        "Certification",
        "Language",
        "Position",
        "Guide"
      ]
    },
    {
      "nodeType": "Overall evaluation",
      "own": "*",
      "others": ["AI weighted score", "Human weighted score", "Human decision"]
    },
    {
      "nodeType": "Position",
      "own": "*",
      "others": [],
      "order": ["Criterion", "Candidate", "Guide"]
    }
  ]
}
