This is a sample report. Start your own assessment below. Start Your Assessment →
← All use cases
HR & recruitment

Employment contracts, certifications and medical checks, with alerts to HR.

What the audit checks

The dates live in a spreadsheet nobody opens, and you find out once the deadline has passed. The audit checks where that data actually lives, how to keep it current, and why a script beats AI here on both cost and reliability.

Self-Audit Assessment Report

Tracking expiring contracts and certificates

01 Jan 2026

01/Recommendation
Recommended path

Traditional Code

A lightweight scheduled script will eliminate missed deadlines at a fraction of the cost of any AI-based approach.

The process of tracking expiring contracts and certificates is a high-frequency, rule-based notification task with well-defined data and clear scheduling logic. A traditional coded script, reading from the existing spreadsheet or HR system and sending automated alerts, is the right fit: it is deterministic, auditable, cheap to build and maintain, and directly addresses the root cause of missed deadlines. The client explicitly noted that a script beats AI on both cost and reliability here, and the assessment confirms this. GDPR and works council obligations are easily handled by keeping humans in the loop for exception cases, which the hybrid gate approach also supports as a close second option. The one IT resource available can maintain a simple script far more easily than an AI workflow, and the ROI is strong given 120 hours of annual manual effort at stake.

The client has no strong tech stack preference and their single IT resource handles support as well. A simple Python or Node.js scheduled script, reading from the spreadsheet and sending email alerts, requires no new infrastructure and fits within the team's capacity to maintain.

02/Process Overview

Process Overview

Tracking expiring contracts and certificates is a recurring HR compliance task owned jointly by the HR Manager and HR Assistant. Several times a week, someone on the team manually opens a spreadsheet, scans for upcoming expiry dates across employment contracts, professional certifications, and medical checks, and then decides whether to send an alert and to whom. The process runs roughly 900 times a year, each instance taking around eight minutes on average, which adds up to approximately 120 hours of HR time annually. The current system depends entirely on a person remembering to check the spreadsheet, which means deadlines can and do get missed.

The process involves a handful of genuine decision points beyond simple date comparison. The team must verify whether dates were entered correctly, determine whether a case is straightforward or requires human judgment, choose the right person and channel for each alert, and identify whether a case might require works council consultation under German labour law. Roughly a quarter of cases fall outside the standard pattern and need some degree of human review before action is taken. The primary data source is a manual spreadsheet; the organisation also has an HR SaaS platform, but the API access needed to connect it programmatically sits behind a higher subscription tier they are not currently paying for.

The goal of any improvement here is simple: the HR team should be alerted automatically and in advance whenever a contract, certification, or medical check is approaching its expiry date, so that the right people can act before deadlines pass. The process is well-defined enough that the standard path requires no human involvement at all, while the non-standard quarter can be routed cleanly to a human reviewer rather than falling silently through the cracks as it does today.

03/Path Scores

Path Scores

Traditional Code Recommended
9/10

The process is entirely rule-based: compare dates, calculate days to expiry, send alerts. A scheduled script handles this deterministically with no AI overhead. The client explicitly flagged this as the preferred direction, and the low IT resource constraint is manageable for a simple, well-documented script.

AI Agent + human review
8/10

A hybrid approach adds a human review gate for the roughly 25 percent of non-standard cases, which aligns well with works council and GDPR obligations. This is essentially what the recommended path becomes in practice, but scoring it separately acknowledges the value of formalising the exception-handling workflow alongside the script.

AI Workflow Not recommended
4/10

The process does not require language understanding, classification of ambiguous inputs, or generative output. Introducing an AI workflow adds cost, latency, and compliance complexity under the EU AI Act without delivering meaningful benefit over a deterministic script for this use case.

RPA Not recommended
4/10

RPA would be useful if the data were locked inside a UI with no API or export option, but the spreadsheet is directly readable and the HR SaaS has an API. RPA adds fragility and licensing cost without solving the underlying data quality or alerting problem.

Education (AIRIES) Not recommended
3/10

Training alone will not fix a process where the root cause is a spreadsheet nobody opens and no automated alerting. Education is a useful complement to the recommended path but cannot substitute for it.

AI Agent Not recommended
2/10

An autonomous AI agent is significant overkill for date comparison and email alerting. The compliance obligations around GDPR and works council consultation make autonomous action without human oversight inappropriate here.

Stay Manual Not recommended
1/10

The current manual process demonstrably fails: deadlines are missed because the spreadsheet is not checked regularly. Staying manual perpetuates the problem and wastes approximately 120 hours of HR time per year.

04/Process Dimensions

Process Dimensions

Eight dimensions drive the recommendation, scored 0–10 with a note on each.

Data Structure 8/10

Expiry dates, employee names, and contract or certificate types are structured fields in a spreadsheet, making them straightforward to parse and compare programmatically.

Rule Clarity 8/10

The core logic is clear: if an expiry date is within a defined threshold, send an alert to the relevant person. Edge cases exist but the standard path is fully rule-definable.

Exception Frequency 6/10

Roughly 25 percent of cases are non-standard and require human judgment, which is significant enough to warrant a formal exception-handling step but not so high as to undermine automation of the majority.

Integration Readiness 4/10

The HR SaaS API is available but requires an upgrade to a higher subscription tier not currently paid for; in the short term the script will need to read from the spreadsheet, limiting real-time data accuracy.

Volume / ROI 7/10

900 runs per year at 8 minutes each totals 120 hours of annual manual effort, representing a clear and quantifiable saving from even a simple automated solution.

Process Stability 7/10

Contract and certificate types are relatively stable; the main variability is in individual employee data, which a well-maintained data source handles without requiring changes to the script logic.

Human Judgment Required 5/10

Standard cases need no judgment, but the 25 percent of non-standard cases and all works council or GDPR-sensitive decisions require a human in the loop, so the automation must route exceptions cleanly.

Compliance Requirements 6/10

GDPR applies to all employee data handling, and works council consultation is required for evaluative decisions; a deterministic script with no AI scoring component avoids EU AI Act obligations entirely.

05/ROI Estimate

ROI Estimate

£4,500

Current annual cost

80%

Estimated time saved

£3,600

Annual savings

9mo

Payback period

Build cost estimate: £1,500 – £3,500

Current annual cost is based on 900 runs at 8 minutes each (120 hours) at GBP 45 per hour. An 80 percent saving is applied to reflect that exception handling and data quality work will still require human time; build cost range reflects a simple Python script with email integration built by a freelancer or the internal IT resource.

06/Implementation Roadmap

Implementation Roadmap

1
Audit and Clean the Spreadsheet Data 1 week

Review the existing spreadsheet for completeness, correct date formats, and missing entries across all 120 staff. Define the canonical fields the script will read: employee name, record type, expiry date, responsible HR contact. This is a prerequisite for any automation and should involve the HR manager to resolve ambiguous records.

2
Build and Test the Alerting Script 1 to 2 weeks

Write a scheduled script (Python recommended for maintainability) that reads the spreadsheet, calculates days to expiry, and sends email alerts at configurable thresholds (e.g. 60, 30, and 7 days). Include a simple log of alerts sent for audit purposes. Test against a sample of real records including known edge cases.

3
Define and Document the Exception Workflow 1 week

Agree with the HR manager which case types require human review before any action is taken, and build a simple routing step into the script output (e.g. a flagged row in a review tab or a separate alert email). Document the decision criteria so the process is not dependent on one person's knowledge.

4
Pilot with Live Data and Refine Thresholds 4 weeks

Run the script live for four weeks alongside the existing manual check to validate accuracy, catch data quality issues, and confirm alert thresholds are appropriate. Collect feedback from the HR assistant on false positives and missed cases and adjust accordingly.

5
Decommission Manual Check and Hand Over to IT 1 week

Once the pilot confirms reliability, retire the manual spreadsheet review. Hand over the script to the IT resource with clear documentation covering scheduling, how to update thresholds, and how to add new record types. Plan a review at three months to assess whether the HR SaaS API upgrade is worth pursuing for better data freshness.

07/Risks & Considerations

Risks & Considerations

The biggest risk is data quality: if the spreadsheet contains incorrect or missing expiry dates, the script will alert on wrong dates or miss records entirely. The data audit milestone is therefore critical and must not be skipped. A secondary risk is that the HR SaaS remains the system of record in practice but is not connected to the script, meaning any updates made directly in the SaaS and not reflected in the spreadsheet will be invisible to the automation. This should be resolved either by upgrading to the API tier or by establishing a clear data entry discipline until then. Human oversight remains essential for the 25 percent of non-standard cases and for any decision that could trigger works council consultation; the script must never be configured to take autonomous action on those cases. Finally, the single IT resource represents a bus-factor risk for ongoing maintenance, so thorough documentation and a simple codebase are non-negotiable.

AIRIES/Learning recommendation

Train the team, not just the tool.

In partnership with AIRIES, the Swiss AI learning platform. These levels fit your result.

Recommended levels
  1. 3
    Corporate Applied Intelligence & Automation
    Turn your own tasks into AI workflows, build reports and dashboards, set up a personal AI assistant.
  2. 1
    Foundations of Applied Intelligence
    How AI works, prompting for everyday work, and your first mini AI project.
Why these levels

Level 3 is the priority for the HR team and IT resource: it covers auditing your own time, turning tasks into automated workflows, and building simple reporting and alerting systems, which maps directly to what this process requires. Level 1 is recommended as a foundation for any team members who have not yet worked with AI or automation tools in a structured way, ensuring they can confidently supervise and improve the script over time. No AI-specific levels are needed because the recommended solution deliberately avoids AI components.

Focus topics
Who should take it

The HR manager and HR assistant who will supervise and maintain the automated process, and the IT resource responsible for the script.

Explore these levels on AIRIES → The levels come from the AIRIES course catalogue. Opening the link does not commit you to anything.
08/Architecture Overview

Architecture Overview

flowchart TD A(["Scheduler Trigger"]) B["Read Spreadsheet"] C{"Standard Case?"} D["Calculate Days to Expiry"] E["Send Alert Email"] F["Flag for Human Review"] G["HR Staff Action"] H(["Deadline Met"]) subgraph Internal B C D E F end subgraph External Systems MAIL("Email") SS("Spreadsheet") end A --> B B --> SS B --> D D --> C C -->|"Yes"| E C -->|"No"| F E --> MAIL F --> G G --> H E --> H

Hover to zoom · click for fullscreen

09/Why This Approach

Why This Approach

A scheduled Traditional Code script is the right solution for this process, and the reasoning is straightforward. The core logic is pure date arithmetic: read a record, calculate how many days remain until expiry, compare that number against a set of configurable thresholds, and send an email alert to the appropriate HR contact. There is no ambiguity to resolve, no language to interpret, no unstructured input to classify. A deterministic script handles all of that reliably, cheaply, and in a way that is easy to audit, which matters when employee data and legal deadlines are involved.

The client explicitly noted that a script beats AI on both cost and reliability for this process, and the assessment confirms that view entirely. Introducing an AI Workflow or AI Agent would add infrastructure cost, latency, and compliance surface area under the EU AI Act without delivering a single capability that the process actually needs. The process does not require the AI to understand anything; it requires a computer to compare two dates and send an email. Using AI here would be the automation equivalent of hiring a surgeon to change a lightbulb.

The client has no strong technology stack preference, which is the right instinct given the constraints. A Python script is the practical recommendation because it is readable, widely understood, easy to maintain by a single IT resource who also handles support, and requires no new infrastructure beyond a scheduler such as a cron job or a simple cloud function. The script reads from the existing spreadsheet, calculates days to expiry, and dispatches email alerts at configurable intervals, for example at 60, 30, and 7 days before expiry. A simple log of alerts sent provides an audit trail that satisfies GDPR accountability requirements without any additional tooling.

The Hybrid path scored close behind Traditional Code, and in practice the two are not mutually exclusive. The recommended script should include a routing step for the roughly 25 percent of non-standard cases, flagging them for human review rather than attempting to act on them automatically. This keeps the human in the loop precisely where works council consultation obligations and GDPR-sensitive decisions require it, and it formalises what is currently an informal and inconsistent judgment call. The distinction between the two scored paths is really about emphasis: Traditional Code is the engine, and the hybrid gate is a feature of its output design, not a separate architecture.

RPA was considered and rejected cleanly. RPA earns its place when data is locked inside a user interface with no other access route, but the spreadsheet here is directly readable and the HR SaaS has an API that could be unlocked with a subscription upgrade. Wrapping a spreadsheet in an RPA bot would add fragility and licensing cost while solving none of the underlying data quality problems. Staying Manual is not a serious option: the current process demonstrably misses deadlines, and 120 hours of annual HR time is a quantifiable cost that a one-off script build of between 1,500 and 3,500 GBP recoups within roughly nine months.

10/Comparing the Top Approaches

Comparing the Top Approaches

Traditional Code is the clear winner here, and the reasoning is straightforward. The entire standard path of this process is date comparison and email alerting: structured inputs, deterministic logic, no ambiguity to resolve. A scheduled Python script reads those fields, calculates days remaining, and fires the right alert to the right person. There is nothing in that sequence that requires intelligence, and adding any would introduce cost and complexity without improving the outcome. The client said as much during discovery, and the assessment confirms it.

The Hybrid path scores close behind at eight, and in practice the recommended implementation already incorporates the hybrid principle. The script handles the roughly 75 percent of standard cases automatically, while non-standard cases and anything touching works council consultation are routed to a human review step. The difference is that scoring Hybrid separately draws attention to the importance of formalising that exception gate, rather than treating it as an afterthought. The script needs to know which cases it cannot act on autonomously, and that logic needs to be documented and maintained.

AI Workflow and RPA both score four, and neither is appropriate here. AI Workflow adds language model overhead to a process that has no natural language to interpret and no ambiguous classification to perform. The EU AI Act compliance burden that would come with any scoring or classification component is an additional reason to stay clear of it. RPA would only make sense if the data were locked inside a UI with no export path, but the spreadsheet is directly readable and the HR SaaS has an API waiting if the subscription is upgraded. RPA would add licensing cost and screen-scraping fragility to a problem that a few dozen lines of Python can solve cleanly.

11/How to Build It

How to Build It

The first thing to build is not the script: it is a trustworthy data source. The existing spreadsheet needs a full audit before any automation reads from it. The HR manager should walk through every record with the HR assistant, confirming that expiry dates are in a consistent format, that no entries are missing or duplicated, and that each row has a clearly identified responsible contact. The canonical fields the script will depend on should be agreed and locked at this stage: employee name, record type such as employment contract or medical check or certification, expiry date, and the email address of the HR contact who needs to receive the alert. Without this audit, the script will faithfully automate bad data, which is worse than the current manual process because mistakes will arrive silently rather than being caught during a human review.

Once the data is clean, the script itself is relatively short to build. Python is the right choice here because it is readable, well-documented, and something a generalist IT resource can maintain without specialist knowledge. The script runs on a schedule, daily is sensible, reads the spreadsheet using a library such as openpyxl or pandas, calculates the number of days between today and each expiry date, and sends email alerts via SMTP or a service like SendGrid at configurable thresholds. Three thresholds make practical sense: 60 days for early awareness, 30 days for action planning, and 7 days as a final warning. Every alert sent should be written to a simple log file or a separate sheet in the workbook so there is an auditable record of what was triggered and when. The script should also flag any row where the expiry date is missing or unparseable, sending a data quality alert to the HR manager rather than silently skipping the record.

The exception routing step deserves its own design conversation with the HR manager before the script goes live. The agreed list of case types that require human review before any action is taken should be encoded in the script as a configuration list, not buried in the logic. When the script encounters one of those case types, it does not send a standard alert: it sends a separate flagged notification to the HR manager indicating that a record needs review. This keeps the automation honest and ensures that works council-sensitive cases and non-standard contract types are never handled without a human decision. This configuration list should be stored somewhere the IT resource can update it without touching the script code, a simple CSV or a named range in the spreadsheet works well enough.

The final step before decommissioning the manual check is a four-week parallel run. The script operates live while the HR assistant continues the existing manual review, not to do the work twice, but to spot discrepancies. Any case the script missed or alerted on incorrectly should be logged and fed back into the script configuration or the data quality rules. After four weeks, if the error rate is low and the HR team is confident in the output, the manual check stops. The IT resource takes ownership of the script with documentation covering how to adjust thresholds, how to add new record types, and how to restart it if the scheduler fails. A review point at three months is worth scheduling to revisit whether upgrading the HR SaaS subscription for API access makes sense, since direct API reads would eliminate the spreadsheet synchronisation risk and give the automation access to real-time data.

12/Risks in Detail

Risks in Detail

The most significant risk in this implementation is data quality, and it cannot be overstated. The script will produce exactly the output the data supports. If an expiry date is entered in the wrong format, the script will either crash on that row or skip it depending on how the error handling is written. If a date is simply wrong, the script will alert on the wrong date with complete confidence. The data audit milestone is therefore not optional preparation: it is the foundation the entire automation rests on. There is also an ongoing data quality risk after go-live, because the HR SaaS remains a separate system that HR staff may continue updating directly. Any record updated in the SaaS but not reflected in the spreadsheet is invisible to the script until someone manually syncs the two. Until the API tier is in place, the team needs a clear and enforced rule about where the master record lives, and the IT resource should build a data freshness check into the script that flags rows which have not been updated in an unexpectedly long time.

Human oversight is not an optional extra for this process: it is structurally necessary. The script must never be allowed to take autonomous action on cases involving works council consultation, non-standard contract types, or any situation where the correct response requires HR judgment. If that boundary is not respected in the script configuration, the automation creates legal and compliance exposure rather than reducing it. GDPR obligations mean that employee data must be handled carefully even in a simple alerting context: the script should not send data to email addresses outside the HR team, logs should be access-controlled, and the IT resource should understand what data the script touches and why. The single IT resource who will maintain the script is also a concentration risk. If that person leaves or is unavailable, the automation has no backup owner. Thorough documentation and a deliberately simple codebase are the main mitigation, but the HR manager should also be comfortable enough with the script to know when it has stopped running and who to call if it does.

⚡

Claude Code Starter

A scaffolded project ready to open in Claude Code. Unzip, open the folder, and Claude starts building immediately.

Claude Code Starter (.zip)

Your own assessment includes a ready-to-use project scaffold: CLAUDE.md, pyproject.toml, src/agent.py and .env.example. Open the folder in Claude Code and it starts building.

📁 your-process/
📄 CLAUDE.md
📄 pyproject.toml
📁 src/agent.py
📄 .env.example
Start Your Assessment

What's next?

That was someone else's process. Now do yours.

Same seven paths, same eight dimensions, same honest verdict, except scored against how your team actually works. Five to eight questions, about fifteen minutes.

Start Your Assessment
HR & recruitment
AI CV screening against the job ad Automated employee onboarding Exit interview and feedback analysis
Illustrative scenario based on how these processes typically run. Not a customer case study. Run this on your own process