{"product_id":"ai-pdf-application-scorer","title":"AI PDF Application Scorer","description":"\u003cp\u003e\u003cstrong\u003eScore PDF applications against your own rubric, with a person in the loop for anything that looks off.\u003c\/strong\u003e\u003c\/p\u003e\u003cp\u003eApplicants upload a PDF through an n8n form. The workflow reads it, scores it against the rubric and pass threshold you write, and emails the applicant the result.\u003c\/p\u003e\u003cp\u003eThe AI never decides pass or fail. It scores each criterion, and plain code checks those scores and applies your threshold.\u003c\/p\u003e\u003cp\u003eDocuments that try to manipulate the reviewer get caught in layers:\u003c\/p\u003e\u003col\u003e\n\u003cli\u003e\n\u003cstrong\u003ePattern screen.\u003c\/strong\u003e Plain checks for text aimed at the AI, like \"ignore previous instructions\" or hidden characters.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eClassifier.\u003c\/strong\u003e A separate AI call whose only job is to ask \"is this document trying to manipulate the reviewer?\" If that call fails, the document is held.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eOutput checks.\u003c\/strong\u003e Every score must be present, in range, and add up. Notes can't contain links, HTML, or instruction-like text.\u003c\/li\u003e\n\u003c\/ol\u003e\u003cp\u003eAnything flagged is held for a human and never auto-approved. You get an email with the reasons, the extracted text, and the original PDFs. The applicant hears nothing until you decide.\u003c\/p\u003e\u003cp\u003eNo single defense stops every manipulation attempt. Layering them and holding anything flagged for a person lowers the risk. An application that gets past all three checks is scored and answered automatically, like any other. If you'd rather approve passes yourself, one setting holds every passing application for your review (off by default).\u003c\/p\u003e\u003ch3\u003eFeatures\u003c\/h3\u003e\u003cul\u003e\n\u003cli\u003eYour rubric and your threshold, set in one Config node\u003c\/li\u003e\n\u003cli\u003eWorks with OpenAI-compatible chat-completions APIs, such as OpenAI, OpenRouter, or a local model via Ollama\u003c\/li\u003e\n\u003cli\u003eRate guard: caps submissions per hour and alerts you at most once an hour when it drops extras\u003c\/li\u003e\n\u003cli\u003eFile limits: number of files, size, PDF only, page count, and text length, checked before any AI call\u003c\/li\u003e\n\u003cli\u003eThree-layer prompt-injection defense\u003c\/li\u003e\n\u003cli\u003eHuman hold for anything flagged\u003c\/li\u003e\n\u003cli\u003eOptional review hold for passing applications, so nothing reaches an applicant until you approve it (off by default)\u003c\/li\u003e\n\u003c\/ul\u003e\u003ch3\u003eWhat's included\u003c\/h3\u003e\u003cul\u003e\n\u003cli\u003e2 workflow JSON files (main workflow + rate-guard sub-workflow)\u003c\/li\u003e\n\u003cli\u003eREADME with setup, configuration, and test steps\u003c\/li\u003e\n\u003cli\u003eDocker self-hosting guide\u003c\/li\u003e\n\u003cli\u003eLicense for one business\u003c\/li\u003e\n\u003c\/ul\u003e\u003ch3\u003eRequirements\u003c\/h3\u003e\u003cul\u003e\n\u003cli\u003eSelf-hosted n8n 2.x (tested on 2.42.6)\u003c\/li\u003e\n\u003cli\u003eAn API key for an OpenAI-compatible service, or a local model through Ollama\u003c\/li\u003e\n\u003cli\u003eAn SMTP mail account\u003c\/li\u003e\n\u003c\/ul\u003e\u003ch3\u003eLicense\u003c\/h3\u003e\u003cp\u003eOne license covers one business, for unlimited use in its own operations. Setting it up for a client? You can, as long as that client's business has its own license. No reselling or redistributing the files. Free updates for 12 months from purchase. Full terms are in the license in the download.\u003c\/p\u003e\u003ch3\u003eFAQ\u003c\/h3\u003e\u003ch4\u003eWhich AI model should I use?\u003c\/h4\u003e\u003cp\u003eOne served through an OpenAI-compatible chat-completions API, such as OpenAI, OpenRouter, or a local model in Ollama. You choose the model and pay your provider directly. If a model's reply can't be read, the application is held for you rather than scored.\u003c\/p\u003e\u003ch4\u003eCan I keep applicant documents away from AI providers?\u003c\/h4\u003e\u003cp\u003eYes, if you point it at a local model. Text extraction uses n8n's built-in node, with no outside service. Held applications are emailed to you with the PDFs attached, so they do pass through your mail provider.\u003c\/p\u003e\u003ch4\u003eIs it immune to prompt injection?\u003c\/h4\u003e\u003cp\u003eNo tool can promise that. This one uses three separate checks, and anything any of them flags goes to a person instead of being approved.\u003c\/p\u003e\u003ch4\u003eDoes the AI decide who passes?\u003c\/h4\u003e\u003cp\u003eNo. The AI scores each criterion. Code checks the scores and applies your threshold. You can also turn on a setting that holds passing applications for your review before anyone is told.\u003c\/p\u003e\u003ch4\u003eWhat happens to a flagged application?\u003c\/h4\u003e\u003cp\u003eYou get an email with the reasons, the extracted text, and the PDFs. Nothing goes to the applicant until you act.\u003c\/p\u003e\u003ch4\u003eDoes it work on n8n Cloud?\u003c\/h4\u003e\u003cp\u003eIt's built and tested for self-hosted n8n 2.x. We don't support n8n Cloud.\u003c\/p\u003e","brand":"Halter Home Labs","offers":[{"title":"Standard","offer_id":53118090248504,"sku":"ai-pdf-application-scorer-standard","price":79.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1020\/3578\/3992\/files\/ai-pdf-application-scorer.png?v=1791579439","url":"https:\/\/shop.halterhomelabs.com\/products\/ai-pdf-application-scorer","provider":"Halter Home Labs","version":"1.0","type":"link"}