Re: Information of development
Posted: 09 Sep 2025, 10:47
Hi folks, apologies, I don't currently have a great deal of time due to some personal issues.
Issues with the PHP 8.2 branch currently;
- searchd config isn't amended to be php 8.2 compatible yet, it's pretty standalone so shouldn't actually be a huge effort.
- backup configs needed to be reworked so the installer could import a saved config, this is completed but not committed yet. If you're manually using mysqldump for backups this isn't really an issue, and isn't a showstopper. Personally, I have never used the built-in backup/restore functionality.
LLM - I assume you would want an LLM to run locally (or use an cloud API) and possibly e.g. find good matches for job roles / resume's? This would be relatively expensive as you'd need to submit your resume's and job roles so it could parse them all. I assume you'd apply some criteria to narrow the roles / resume's so you're not submitting e.g. 10 years of resume's in opencats to the LLM.
It's be pretty easy really, but largely depends on what you're trying to achieve as none of the processing would happen within OpenCATS - so do some standalone queries using a local llm or an api, see what you want to do, then just add a option for the api key in the admin section, and amend the modules to show the additional information, it'd just be an api query. I'd have concerns around information security if you're uploading all that personal data though.
So what are the 'LLM Integrations' you want/need?
I asked an LLM and it recommends these;
Here’s a top-ten list with an eye on practical, near-term functionality that could bolt onto OpenCATS:
1. Resume Parsing & Enrichment
LLMs can extract structured candidate data (skills, experience, education) more accurately than regex-based parsers.
Add inferred skills (e.g., seeing "led Docker deployments" → tag DevOps).
Functionality for OpenCATS: Replace the current CV parser with an LLM API that feeds into candidate records with JSON output.
2. Semantic Candidate Search
Recruiters often type “Java backend with AWS” but the database holds “Spring Boot / EC2.”
LLMs can map recruiter queries into semantically related matches, bridging keyword mismatches.
In OpenCATS: Enhance DatabaseSearch to allow “semantic mode” alongside keyword/boolean.
3. Job Description Drafting
Recruiters spend time rewriting the same role templates.
LLMs can auto-generate a clean, engaging JD based on a few bullet points.
In OpenCATS: New “Generate JD” button when creating a JobOrder.
4. Candidate Shortlisting & Summarisation
Instead of scanning 30 resumes, get a ranked shortlist with explanations.
LLMs can summarise why each candidate fits or doesn’t.
In OpenCATS: A “LLM fit score” column in DataGrids for quick triage.
5. Automated Candidate Emails
Cold outreach, interview scheduling, or rejections all need a human-sounding but consistent voice.
LLMs can draft personalised emails at scale.
In OpenCATS: Template engine could plug into PHPMailer, with recruiter review before sending.
6. Interview Question Generation
Given a job spec, generate tailored behavioural and technical interview questions.
In OpenCATS: On the JobOrder page, “Suggest Interview Pack.”
7. Sentiment & Tone Analysis
Cover letters and email replies reveal enthusiasm, caution, or mismatch.
LLMs can flag tone and suggest recruiter responses.
In OpenCATS: Add sentiment flags to Candidate Activity logs.
8. Bias Detection
LLMs can flag potentially biased language in job descriptions (e.g. “rockstar,” “digital native”) and suggest inclusive alternatives.
In OpenCATS: A JD linting tool before posting to the careers site.
9. Duplicate & Similar Candidate Detection
Current deduping relies on email or fuzzy string matching.
LLM embeddings can cluster candidates with similar experience even if CV wording differs.
In OpenCATS: A “Possible Duplicates” panel powered by embeddings.
10. Recruiter Insights Dashboard
Summarise pipeline activity: “5 new candidates this week in Engineering, average response rate 34%, top source: LinkedIn.”
LLMs can turn logs into narrative insights.
In OpenCATS: A recruiter’s weekly digest, plain English + charts.
The kicker for OpenCATS
The integration pattern would likely be:
Call out to an LLM API (OpenAI, Anthropic, local Ollama, etc.).
Parse JSON back into PHP arrays.
Store results in existing tables or as extensions (custom fields, new datagrids).
Keep recruiter “human in the loop” — i.e., suggest, don’t auto-apply.
Issues with the PHP 8.2 branch currently;
- searchd config isn't amended to be php 8.2 compatible yet, it's pretty standalone so shouldn't actually be a huge effort.
- backup configs needed to be reworked so the installer could import a saved config, this is completed but not committed yet. If you're manually using mysqldump for backups this isn't really an issue, and isn't a showstopper. Personally, I have never used the built-in backup/restore functionality.
LLM - I assume you would want an LLM to run locally (or use an cloud API) and possibly e.g. find good matches for job roles / resume's? This would be relatively expensive as you'd need to submit your resume's and job roles so it could parse them all. I assume you'd apply some criteria to narrow the roles / resume's so you're not submitting e.g. 10 years of resume's in opencats to the LLM.
It's be pretty easy really, but largely depends on what you're trying to achieve as none of the processing would happen within OpenCATS - so do some standalone queries using a local llm or an api, see what you want to do, then just add a option for the api key in the admin section, and amend the modules to show the additional information, it'd just be an api query. I'd have concerns around information security if you're uploading all that personal data though.
So what are the 'LLM Integrations' you want/need?
I asked an LLM and it recommends these;
Here’s a top-ten list with an eye on practical, near-term functionality that could bolt onto OpenCATS:
1. Resume Parsing & Enrichment
LLMs can extract structured candidate data (skills, experience, education) more accurately than regex-based parsers.
Add inferred skills (e.g., seeing "led Docker deployments" → tag DevOps).
Functionality for OpenCATS: Replace the current CV parser with an LLM API that feeds into candidate records with JSON output.
2. Semantic Candidate Search
Recruiters often type “Java backend with AWS” but the database holds “Spring Boot / EC2.”
LLMs can map recruiter queries into semantically related matches, bridging keyword mismatches.
In OpenCATS: Enhance DatabaseSearch to allow “semantic mode” alongside keyword/boolean.
3. Job Description Drafting
Recruiters spend time rewriting the same role templates.
LLMs can auto-generate a clean, engaging JD based on a few bullet points.
In OpenCATS: New “Generate JD” button when creating a JobOrder.
4. Candidate Shortlisting & Summarisation
Instead of scanning 30 resumes, get a ranked shortlist with explanations.
LLMs can summarise why each candidate fits or doesn’t.
In OpenCATS: A “LLM fit score” column in DataGrids for quick triage.
5. Automated Candidate Emails
Cold outreach, interview scheduling, or rejections all need a human-sounding but consistent voice.
LLMs can draft personalised emails at scale.
In OpenCATS: Template engine could plug into PHPMailer, with recruiter review before sending.
6. Interview Question Generation
Given a job spec, generate tailored behavioural and technical interview questions.
In OpenCATS: On the JobOrder page, “Suggest Interview Pack.”
7. Sentiment & Tone Analysis
Cover letters and email replies reveal enthusiasm, caution, or mismatch.
LLMs can flag tone and suggest recruiter responses.
In OpenCATS: Add sentiment flags to Candidate Activity logs.
8. Bias Detection
LLMs can flag potentially biased language in job descriptions (e.g. “rockstar,” “digital native”) and suggest inclusive alternatives.
In OpenCATS: A JD linting tool before posting to the careers site.
9. Duplicate & Similar Candidate Detection
Current deduping relies on email or fuzzy string matching.
LLM embeddings can cluster candidates with similar experience even if CV wording differs.
In OpenCATS: A “Possible Duplicates” panel powered by embeddings.
10. Recruiter Insights Dashboard
Summarise pipeline activity: “5 new candidates this week in Engineering, average response rate 34%, top source: LinkedIn.”
LLMs can turn logs into narrative insights.
In OpenCATS: A recruiter’s weekly digest, plain English + charts.
The kicker for OpenCATS
The integration pattern would likely be:
Call out to an LLM API (OpenAI, Anthropic, local Ollama, etc.).
Parse JSON back into PHP arrays.
Store results in existing tables or as extensions (custom fields, new datagrids).
Keep recruiter “human in the loop” — i.e., suggest, don’t auto-apply.