<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: John Zacharia</title>
    <description>The latest articles on DEV Community by John Zacharia (@john_zacharia).</description>
    <link>https://dev.to/john_zacharia</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4106214%2F1ca44870-582f-48c1-b71d-1203341b30ab.png</url>
      <title>DEV Community: John Zacharia</title>
      <link>https://dev.to/john_zacharia</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/john_zacharia"/>
    <language>en</language>
    <item>
      <title>Evaluating a Recruiting Platform Like an Engineer</title>
      <dc:creator>John Zacharia</dc:creator>
      <pubDate>Mon, 21 Sep 2026 18:01:51 +0000</pubDate>
      <link>https://dev.to/john_zacharia/evaluating-a-recruiting-platform-like-an-engineer-23on</link>
      <guid>https://dev.to/john_zacharia/evaluating-a-recruiting-platform-like-an-engineer-23on</guid>
      <description>&lt;p&gt;Most ATS buying guides are written for HR. This one is for whoever on the team can read an API doc - because the questions that actually separate recruiting platforms are the same ones you’d ask of any system you’re going to depend on for three to five years.&lt;br&gt;
HR sees "40+ features." An engineer sees a workflow engine, a data layer, and a UI - and knows the checkbox lies about all three. So evaluate it the way you’d evaluate any vendor SaaS.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. The workflow engine: is it configurable or is it a services contract?
&lt;/h2&gt;

&lt;p&gt;Every ATS claims "customizable workflows." The real question is whether you can model a new hiring stage, approval, or role-family variation - or whether every change is a ticket to the vendor’s professional-services team.&lt;br&gt;
Test it live: configure your weirdest workflow during the demo. If it needs a services engagement once, it needs one every time. That’s not configuration; that’s a dependency you don’t control.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Automation: where the hours actually live
&lt;/h2&gt;

&lt;p&gt;Stage-triggered emails, scheduling links, task assignment, SLA nudges. This is the ATS equivalent of CI: nobody notices it until it’s missing, and then everyone loses hours a week to manual work.&lt;br&gt;
Test: build a rule yourself in the demo - "when a candidate enters stage X, send email Y and create task Z." If you can’t construct it without help, your recruiters won’t either.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Integrations: read the docs, not the logo wall
&lt;/h2&gt;

&lt;p&gt;A partner logo on a marketing page is not an integration. What you need to know is the same thing you’d check for any third-party API:&lt;br&gt;
•Is it native and supported, or a brittle Zapier hop?&lt;br&gt;
•Is it bidirectional, or does data only flow one way?&lt;br&gt;
•What are the rate limits and sync frequencies?&lt;br&gt;
•Is there real documentation, or a "contact us" button?&lt;br&gt;
Ask for the integration docs and a reference customer running your exact stack (HRIS + calendar + assessment tools). Vague answers here are a hard signal.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. The data layer: reporting and export
&lt;/h2&gt;

&lt;p&gt;Two questions decide this. First: can you reproduce your five core hiring metrics - funnel conversion, time-to-fill, source effectiveness - inside the tool, on realistic data, without exporting to a spreadsheet? This single test eliminates more vendors than any other.&lt;br&gt;
Second, and engineers always forget to ask this until it’s too late: what does data export cost at the end of the contract? Negotiate the exit before the entrance. Export format, cost, and timeline should be contract clauses signed at purchase, when your leverage is highest - not a five-figure surprise delivered as an unusable dump on your way out.&lt;/p&gt;

&lt;h2&gt;
  
  
  The evaluation method: weight by pain, score from tests
&lt;/h2&gt;

&lt;p&gt;Don’t score vendors on feature count. Do this instead:&lt;br&gt;
1.List your five biggest hiring pains.&lt;br&gt;
2.Map each to the feature depth that fixes it.&lt;br&gt;
3.Weight by severity (worst pain’s features 5x, mildest 1x).&lt;br&gt;
4.Score each vendor 1-5 per weighted row - from live tests only, never the proposal.&lt;br&gt;
5.Multiply, sum, rank.&lt;br&gt;
It’s the same discipline as writing acceptance tests before you trust a dependency: you define what "works" means, then you verify it yourself.&lt;br&gt;
The full breakdown - all eight decisive features, the scorecard template, and the post-go-live metrics to track - is here: &lt;a href="https://www.hiremore.ai/blog/ats-buyers-guide-features-actually-matter?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=blog23_atsguide" rel="noopener noreferrer"&gt;this weighted scorecard method.&lt;/a&gt;&lt;br&gt;
If your team is evaluating platforms, the checklist that separates depth from checkbox theater lives in &lt;a href="https://www.hiremore.ai/blog/ats-buyers-guide-features-actually-matter?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=blog23_atsguide" rel="noopener noreferrer"&gt;hiremore AI’s ATS guide.&lt;/a&gt;&lt;/p&gt;

</description>
      <category>saas</category>
      <category>architecture</category>
      <category>api</category>
      <category>career</category>
    </item>
    <item>
      <title>Inside the Resume Parsing Pipeline: Where Extraction Breaks</title>
      <dc:creator>John Zacharia</dc:creator>
      <pubDate>Sat, 19 Sep 2026 13:04:52 +0000</pubDate>
      <link>https://dev.to/john_zacharia/inside-the-resume-parsing-pipeline-where-extraction-breaks-21l0</link>
      <guid>https://dev.to/john_zacharia/inside-the-resume-parsing-pipeline-where-extraction-breaks-21l0</guid>
      <description>&lt;p&gt;If you’re building or evaluating an ATS integration, resume parsing looks simple from the outside and gets genuinely interesting once you look at where it fails. Here’s the pipeline, stage by stage, and the specific failure mode at each step.&lt;/p&gt;

&lt;h2&gt;
  
  
  Stage 1: Text extraction.
&lt;/h2&gt;

&lt;p&gt;Digital documents (real PDF/DOCX with selectable text) yield a text stream directly. Scanned or photographed documents route through OCR. This is where layout does the most damage before you’ve even started tagging entities: a two-column resume can interleave unrelated text mid-sentence if the extractor reads left-to-right across the full page width instead of column-by-column, and tables scramble reading order in a similar way. Layout-aware extraction (detecting column and table boundaries before running text extraction) is the standard mitigation, and it’s the single highest-leverage fix for this whole pipeline.&lt;/p&gt;

&lt;h2&gt;
  
  
  Stage 2: Section detection and entity recognition.
&lt;/h2&gt;

&lt;p&gt;The extracted text gets segmented into sections (experience, education, skills) and tagged: employer names, job titles, date ranges, degrees, certifications. This is where LLM-based parsers meaningfully outperform the regex-and-dictionary approach that dominated a decade ago. Older parsers choke on unconventional phrasing (“Led the thing that shipped the thing” as a job title, unfortunately real). LLM-based entity recognition handles semantic variation far better, at the cost of a new failure mode covered below.&lt;/p&gt;

&lt;h2&gt;
  
  
  Stage 3: Normalization and profile assembly.
&lt;/h2&gt;

&lt;p&gt;Tagged entities get standardized: dates into one format, titles mapped to a taxonomy, skills deduplicated against a skills ontology. This is the stage that should route low-confidence fields to a human review queue instead of guessing. “Flag, don’t guess” isn’t a nice-to-have design principle here, it’s the difference between a visible 2-minute fix and an invisible data corruption that silently poisons every downstream feature: search, ranking, and analytics.&lt;/p&gt;

&lt;h2&gt;
  
  
  The failure mode worth architecting around specifically:
&lt;/h2&gt;

&lt;p&gt;confident LLM hallucination. LLM-based parsers handle messy, non-standard input brilliantly, and occasionally fabricate a plausible-looking field that isn’t actually on the page, a tidy job title synthesized from surrounding context rather than extracted from text. This is more dangerous than a garbled OCR output precisely because it looks clean. Mitigations that actually work: ground every extraction with a source-position reference (so you can trace any field back to its exact location in the document), run spot audits comparing extracted fields against source text on a regular sample, and surface confidence scores in the reviewer UI rather than hiding them.&lt;/p&gt;

&lt;h2&gt;
  
  
  On accuracy benchmarks:
&lt;/h2&gt;

&lt;p&gt;vendor claims of “99% accuracy” measured on a clean internal test corpus tell you almost nothing about your production traffic. If your applicant pool includes a meaningful share of scans, two-column CVs, or non-Western date formats, test on your own 100-document sample before trusting any published number. Field-level accuracy on your real mix is the only number that matters, and it’s cheap to measure: parse the sample, audit against source documents, and compute correct-fields-over-total-fields per field class.&lt;/p&gt;

&lt;h2&gt;
  
  
  On downstream compliance:
&lt;/h2&gt;

&lt;p&gt;if parsed fields feed any automated knockout rule (years of experience, certification checks), gate that rule behind a confidence threshold. An auto-rejection caused by a parsing error is legally indistinguishable from a screening decision, and “the parser misread the date” is not a defense anyone wants to test in front of a regulator.&lt;br&gt;
The rest of the failure modes, plus real accuracy deltas from production case studies (one team saw field accuracy jump from 71% to 91% just from switching parsers and adding flag-don’t-guess normalization), are in &lt;a href="https://www.hiremore.ai/blog/ai-resume-parsing-can-cannot-do" rel="noopener noreferrer"&gt;the full guide&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>machinelearning</category>
      <category>career</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Evaluating ML-Based Hiring Tools: An Engineer's Checklist</title>
      <dc:creator>John Zacharia</dc:creator>
      <pubDate>Wed, 16 Sep 2026 13:05:43 +0000</pubDate>
      <link>https://dev.to/john_zacharia/evaluating-ml-based-hiring-tools-an-engineers-checklist-1kn0</link>
      <guid>https://dev.to/john_zacharia/evaluating-ml-based-hiring-tools-an-engineers-checklist-1kn0</guid>
      <description>&lt;p&gt;If your company is buying an ML-based hiring tool, there is a decent chance someone will forward the technical due-diligence to an engineer. This is a checklist for that engineer. The business folks will evaluate the demo; your job is to evaluate the model, the data path, and the integration surface — the parts a demo is specifically designed to hide.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Explainability is an architecture question, not a UI feature
&lt;/h2&gt;

&lt;p&gt;The first thing to establish: can the system produce a per-decision explanation, and is that explanation faithful to the model, or is it a post-hoc rationalization bolted on for the UI?&lt;br&gt;
Ask what method generates the "why this candidate ranked here" output. If the answer is a real feature-attribution approach tied to defined criteria, good. If the answer is vague — "the model considers many factors" — you are likely looking at a black box with a narrative layer. A useful probe: ask them to show two candidates who ranked closely and explain the delta. Faithful explanations produce a crisp, criteria-linked difference. Rationalizations get mushy.&lt;br&gt;
Why you care: a keyword matcher with a neural-net press release cannot explain rankings in criteria terms, because there is no model to explain. The explainability question is the fastest way to expose capability theater.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Training data provenance and the bias question
&lt;/h2&gt;

&lt;p&gt;Ask what the model was trained on. Models trained on a company's historical hires learn to replicate historical hiring patterns — including whatever bias was in them. "The model is bias-free by design" is a sentence no serious ML practitioner says; bias is measured, not designed away.&lt;br&gt;
What you want to see:&lt;br&gt;
•An independent bias audit (not a self-assessment), reasonably recent.&lt;br&gt;
•Reported four-fifths / adverse-impact ratios (lowest group pass rate ÷ highest; ≥ 0.80 is the conventional threshold).&lt;br&gt;
•A clear statement of whether the tool scores against criteria you define or patterns it infers from your past hires. Prefer the former; the latter quietly automates the status quo.&lt;br&gt;
This is not academic. Under NYC Local Law 144 the audit is legally required, and the EU AI Act puts hiring models in its high-risk tier. The compliance obligation sits with the employer, so your engineering sign-off has legal weight.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Integration is where these tools go to die
&lt;/h2&gt;

&lt;p&gt;The most common fate of a recruiting tool is shelfware, and the most common cause is integration that looked fine on a partners page and fell apart in production. "API available" is not integration.&lt;br&gt;
Check for:&lt;br&gt;
•Bidirectional sync with your specific ATS version, documented, ideally with a reference customer on the same stack.&lt;br&gt;
•Webhook / event support vs. polling, and rate limits that survive your actual application volume.&lt;br&gt;
•Where the source of truth lives when the two systems disagree.&lt;br&gt;
Weight this heavily. One healthcare staffing firm re-ran a selection with integration weighted double after their previous tool never synced; adoption went from 25% to 85% at 90 days.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Data portability — negotiate it before you sign
&lt;/h2&gt;

&lt;p&gt;Your leverage is highest before the contract exists and drops to near zero afterward. Get, in writing:&lt;br&gt;
•Full export of candidate data, scores, and audit logs in standard formats.&lt;br&gt;
•No per-export fees, no proprietary-format lock-in.&lt;br&gt;
•A defined data-handoff on exit.&lt;br&gt;
Lock-in economics are how a mediocre tool becomes a three-year hostage situation. Contract for the exit while you can.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Make the pilot the only accuracy benchmark
&lt;/h2&gt;

&lt;p&gt;Ignore vendor accuracy numbers. "95% accurate" against an undefined benchmark is unfalsifiable. Define your own measure before the pilot: agreement rate between the tool's rankings and your best recruiters' judgments, on your candidates, on live roles, run in parallel with the current process for ~30 days. Track agreement rate, time saved, override rate, and pass-rate stability across groups.&lt;/p&gt;

&lt;h2&gt;
  
  
  The checklist, condensed
&lt;/h2&gt;

&lt;p&gt;•Per-decision explanations are faithful and criteria-linked&lt;br&gt;
•Training-data provenance disclosed&lt;br&gt;
•Independent bias audit with four-fifths ratios&lt;br&gt;
•Scores against defined criteria, not inferred patterns&lt;br&gt;
•Documented bidirectional ATS integration on your version&lt;br&gt;
•Contractual data + audit-log export, standard formats, no fees&lt;br&gt;
•30-day parallel pilot with a pre-defined success metric&lt;/p&gt;

&lt;p&gt;If you want the business-side version of this — the 7 vendor questions framed for a procurement call rather than a code review — it pairs well with the checklist above.&lt;/p&gt;

&lt;p&gt;I work on a recruiting AI platform, and my bias is toward tools that can survive this checklist. If you want to see one built for it, &lt;a href="https://www.hiremore.ai/blog/ai-recruitment-tools-look-before-buying?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=blog21_tools" rel="noopener noreferrer"&gt;here is how we approach explainability, auditing, and export&lt;/a&gt;&lt;/p&gt;

</description>
      <category>machinelearning</category>
      <category>career</category>
      <category>ai</category>
      <category>devops</category>
    </item>
    <item>
      <title>ATS Integration Architecture: What to Map Before You Sign</title>
      <dc:creator>John Zacharia</dc:creator>
      <pubDate>Wed, 02 Sep 2026 12:54:11 +0000</pubDate>
      <link>https://dev.to/john_zacharia/ats-integration-architecture-what-to-map-before-you-sign-489a</link>
      <guid>https://dev.to/john_zacharia/ats-integration-architecture-what-to-map-before-you-sign-489a</guid>
      <description>&lt;p&gt;Most guides on choosing an applicant tracking system talk about features. This one is about the layer that actually determines whether the platform survives contact with your stack: integrations.&lt;/p&gt;

&lt;p&gt;If you're the technical person pulled into an ATS evaluation, this is the part your non-technical colleagues will underestimate — and the part that generates the most post-contract pain. Here's how to map it properly.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Inventory every data flow, not every tool
&lt;/h2&gt;

&lt;p&gt;Don't list “tools.” List directional data flows. For each system, write down what data moves, which direction, and how often:&lt;br&gt;
●HRIS — candidate → employee record handoff on hire (bidirectional ideally)&lt;br&gt;
●Payroll — new-hire data push (one-way, event-triggered)&lt;br&gt;
●Background screening — order + status callback (bidirectional, webhook-driven)&lt;br&gt;
●Calendar (Google/Microsoft) — interview scheduling + availability sync&lt;br&gt;
●Video interview tools — scheduling links out, recordings/scores back&lt;br&gt;
●Job boards / distribution — posting syndication out, application ingestion back&lt;br&gt;
The “direction + trigger” framing exposes gaps that a flat tool list hides.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Classify each integration by mechanism
&lt;/h2&gt;

&lt;p&gt;Not all “integrations” are equal. Push the vendor to tell you which of these each connection actually uses:&lt;br&gt;
●Native pre-built integration — maintained by the vendor, lowest overhead&lt;br&gt;
●Public REST API — you (or middleware) build and maintain it&lt;br&gt;
●iPaaS / middleware (Workato, Merge.dev, etc.) — flexible, adds cost + a dependency&lt;br&gt;
●Flat-file / SFTP batch — a red flag in 2025 for anything real-time&lt;br&gt;
●“On the roadmap” — treat as does not exist&lt;br&gt;
A “yes, we integrate with X” that turns out to be a nightly CSV export is a very different thing from a webhook-driven bidirectional sync.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Interrogate the API itself
&lt;/h2&gt;

&lt;p&gt;If any integration will run through the public API, evaluate it like you'd evaluate any dependency:&lt;br&gt;
●Is it REST/GraphQL, documented, and versioned?&lt;br&gt;
●Rate limits — do they survive a high-volume hiring event?&lt;br&gt;
●Webhooks for state changes, or are you stuck polling?&lt;br&gt;
●Auth model (OAuth 2.0 vs. long-lived API keys)?&lt;br&gt;
●Sandbox environment for testing before go-live?&lt;br&gt;
●Data model for candidates — how are duplicates and merges handled?&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Make compatibility a contractual gate
&lt;/h2&gt;

&lt;p&gt;The most expensive integration gaps are the ones discovered after signing. Build a formal integration checklist and require vendor sign-off on compatibility before finalizing terms. A vendor's response to your integration map tells you as much about their support quality as their docs do.&lt;/p&gt;

&lt;p&gt;The business context&lt;/p&gt;

&lt;p&gt;This technical mapping isn't a side quest — it's stage two of a five-stage selection framework (requirements → integrations → scored shortlist → structured pilot → ROI). The full non-technical playbook, including the weighted vendor scoring matrix and implementation guidance, is here:&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://www.hiremore.ai/blog/how-to-choose-the-right-ats-for-your-hiring-team" rel="noopener noreferrer"&gt;How to Choose the Right ATS for Your Hiring Team&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you've survived an ATS migration, what integration surprised you post-contract? Drop it in the comments — the failure modes are weirdly consistent across teams.&lt;/p&gt;

</description>
      <category>hrtech</category>
      <category>api</category>
      <category>architecture</category>
      <category>saas</category>
    </item>
  </channel>
</rss>
