Date: February 19, 2026 Version: 1.0.0-Gold-Production
The MrIridescent ATS Matcher is built on the principle of "Logic over Keywords." In a world where candidates use AI to "keyword-stuff" their resumes, traditional ATS systems fail. This system employs a multi-layered defense and analysis strategy to find the real talent hidden beneath the formatting.
As a Cybersecurity professional (Purple Teamer), I treat the Resume as an Adversarial Input. The system is designed to:
- Sanitize and Segment: Break down inputs into verifiable nodes.
- Cross-Verify: Use Agentic AI to double-check claims against the raw text.
- Forensic Scoring: Apply strict "Role-Tech-Temporal" alignment gates.
- CPU: 4-Core x86_64 (Intel Core i5 10th Gen+ or AMD Ryzen 5).
- RAM: 8GB DDR4 (Minimum).
- Storage: 5GB High-Speed SSD.
- Network: Standard Broadband for API calls (Groq/Perplexity).
- CPU: 16-Core High-Frequency Compute (AWS c6g.4xlarge or equivalent).
- RAM: 32GB - 64GB (To handle massive concurrent spaCy vector loads).
- Storage: NVMe SSD with 100GB+ for large-scale data persistence.
- GPU: NVIDIA A100 or RTX 4090 (If running Ollama locally for total data privacy).
- OS: Linux (Debian 12 / Ubuntu 24.04 LTS recommended) with Docker orchestration.
We have automated the complexity away. Follow these three steps:
-
Clone the Repository:
git clone https://github.com/mriridescent/ats-matcher-pro.git cd ats-matcher-pro -
Execute the Setup Wizard:
python setup_wizard.py
The wizard handles: Dependency resolution, NLP model hydration,
.envgeneration, and DB schema initialization. -
Fire Up the Engines:
python run.py
Ensure your .env is configured for your desired intelligence level:
USE_AGENTIC_AI=true: Enables the CrewAI Multi-Agent swarm.USE_OLLAMA=true: Routes all AI traffic to your local hardware (Maximum Security).DATABASE_URL: Use PostgreSQL for production concurrency.
The system doesn't just look for "Python." It understands that "Django," "FastAPI," and "Flask" are related vectors in the Python ecosystem.
- Model:
en_core_web_md(Medium model with 20k unique vectors and 685k keys). - Logic: Cosine Similarity calculation between JD skill vectors and Resume experience vectors.
- The JD Analyzer: Extracts structured requirements from messy text.
- The Resume Forensicist: Breaks down the candidate's career into discrete role/tech pairings.
- The Auditor Agent: Performs a "Hallucination Check" to ensure the AI didn't "invent" skills for the candidate.
- Ingestion: Upload Job Description (PDF/Text).
- Structuring: AI creates a JSON representation of the role.
- Human Verification: The HR professional reviews and clicks Approve.
- Weighting: Assign "Criticality" values to specific skills (e.g., Python=100, SQL=50).
- Bulk Match: Upload a ZIP or multiple PDFs. The system processes them in parallel.
- Review Insights: View the Visual Analytics (Chart.js) to see candidate distribution.
For batches larger than 100 resumes, we recommend:
- Increasing
uvicornworker count. - Using a dedicated PostgreSQL instance.
- Setting
limit_max_request_sizeinmain.pyif handling high-resolution PDF scans.
Q: Why is the matching taking so long?
A: Check if USE_AGENTIC_AI is true. Agentic flows are thorough but require more API round-trips. For speed, use basic semantic matching.
Q: How do I reset the system?
A: Delete the ats_matcher.db (if using SQLite) and run python init_db.py.
A boutique cybersecurity firm used this system to hire an Incident Responder. The system identified a candidate who didn't use the word "Incident Response" but had extensive experience in "Digital Forensics" and "Malware Analysis"—semantic matches that traditional systems missed.
A fintech startup used the Bulk Upload feature to filter 400 resumes in 12 minutes, identifying the top 5 candidates with a 92% accuracy rate compared to human manual screening.
“Engineering is not just about solving problems; it is about building the tools that prevent them.” — David Akpoviroro Oke