ThatAIguyA world of ideas

THE CONSCIOUSNESS ATLAS
Read. Experiment. Follow the evidence.

ConsciousnessLearn · Explore · Joseph Anady

Janady13/missionmatch / frontend/src/lib/resume.ts

Source identity, revision, and recovered contents.

GitHub sourceSource text recovered

Source identity

FieldRecorded value
Source typeGitHub source
Original recordJanady13/missionmatch / frontend/src/lib/resume.ts
DateNot specified in source
RepositoryJanady13/missionmatch
Revision720d47fae476b0d38477ae4401697d372b1ea2bc
Branchfeature/opportunity-to-outcome
Path or archive memberfrontend/src/lib/resume.ts
Original SHA-2562f6d6549cf987a90eb05e50e2146264d4e070b1d8b8e0f252ef8537b1ef4dae2
Git blob SHA8c6853c71677ac2e0aadc9311c72d022f74c97d8
Reading-copy SHA-2562f6d6549cf987a90eb05e50e2146264d4e070b1d8b8e0f252ef8537b1ef4dae2

Original source ↗

Every recorded occurrence

These 35 records contain identical original source bytes. Their paths and revisions remain part of the archive.

Original recordBranch or archiveRevision / identifierOriginal location
Janady13/missionmatch / frontend/src/lib/resume.tsfeature/opportunity-to-outcome720d47fae476b0d38477ae4401697d372b1ea2bcOpen original
Janady13/missionmatch / frontend/src/lib/resume.tsper-tenant-routing9bde0f9a74b89d01980fa658e5253acda7528d0cOpen original
Janady13/missionmatch / frontend/src/lib/resume.tscollision-deconfliction4ee5a09972608ed89f8377c6665542d5f450f0a6Open original
Janady13/missionmatch / frontend/src/lib/resume.tsws6-retrieval6c56e29231ec05735927fa265c97d517499dfeafOpen original
Janady13/missionmatch / frontend/src/lib/resume.tsworkstream-a-shared-coree0de03ac3a1ec826bd15d0e048e3b02baa23eeffOpen original
Janady13/missionmatch / frontend/src/lib/resume.tsm5-price-to-win41000ad30fff4129fdaf5ec84e15ba14c27d4890Open original
Janady13/missionmatch / frontend/src/lib/resume.tsworkstream-c-slatematch5cd60c918301b46ecd6ed3e03e20c395da0062e2Open original
Janady13/missionmatch / frontend/src/lib/resume.tsws1-ontology-syncb596f449a32a1016fbd403c36505cc00a1ac9ee6Open original
Janady13/missionmatch / frontend/src/lib/resume.tsmaster1e9249840a4302ec82e123b9c9cb6f75badea3e4Open original
Janady13/missionmatch / frontend/src/lib/resume.tsws8-teaching-loopc823f0fb6bb2aba0f39001eb6de96f4000d9321fOpen original
Janady13/missionmatch / frontend/src/lib/resume.tsw3-ai-staffing-recommendations43d56387270ef4da4cabd794d97ca6a49909bc7dOpen original
Janady13/missionmatch / frontend/src/lib/resume.tsmag-substrateb82c7100a492dec67dfd1eda6b3f53def859be35Open original
Janady13/missionmatch / frontend/src/lib/resume.tsws3-clearance4b8e7ce594c068621867f9c9deed0ec64ae6c553Open original
Janady13/missionmatch / frontend/src/lib/resume.tsworkstream-d-command-center255e7d1d420abf5e277d0cd8c9b14f6f72b6acb9Open original
Janady13/missionmatch / frontend/src/lib/resume.tsphase2-eval-fairnessd361af254701975fe239927656ababb56374655eOpen original
Janady13/missionmatch / frontend/src/lib/resume.tsworkstream-e-dataflow-deploy433815a042f9741411e60fa553fe72143e9b10dbOpen original
Janady13/missionmatch / frontend/src/lib/resume.tsruthless-debug-sweepb7d742f8f032984be3817efffa3eb8b13b651c1fOpen original
Janady13/missionmatch / frontend/src/lib/resume.tstime-to-fill-survivalb66e1e505863d4f17741a4b9ede73509e45bd6c6Open original
Janady13/missionmatch / frontend/src/lib/resume.tsai-intelligence-layer5d5ddff70393a197c5f54a45280bb5dd42b24755Open original
Janady13/missionmatch / frontend/src/lib/resume.tsgraphrag-foundationb0ddeb9f633fd138d09309d1a17b7d13bc3a67f7Open original
Janady13/missionmatch / frontend/src/lib/resume.tsworkstream-a-opportunity-intelligence1675031db74316e100782d063e9eda1a597fe3a1Open original
Janady13/missionmatch / frontend/src/lib/resume.tsdeploy-and-opsbdacd9d0b4d5998d25fc74bf4007f4c3ec538c7aOpen original
Janady13/missionmatch / frontend/src/lib/resume.tsws9-bench-ingestionf585a9ef32fa554663ce1fba9a414a54b6e49cf0Open original
Janady13/missionmatch / frontend/src/lib/resume.tsws2-alias-relationshipe4dada4601c6eb101830f9d223a9655dfa120616Open original
Janady13/missionmatch / frontend/src/lib/resume.tspresentation-readinesseb574acaa29d71ce4d0f852572e87c275c79fdb7Open original
Janady13/missionmatch / frontend/src/lib/resume.tsvendor-intelligencefe9796a19c261951d3f2565206c0c1b5ac294465Open original
Janady13/missionmatch / frontend/src/lib/resume.tsworkstream-b-screenmatch09015496d565a172bcaa15cfe9a8e4b072b13df0Open original
Janady13/missionmatch / frontend/src/lib/resume.tsws7-federal-signal6a9f6ce9cfb13345ffb47770d4960e7c2d9c17c2Open original
Janady13/missionmatch / frontend/src/lib/resume.tsworkstream-e-commercial-stubs4437da660539284a400ee380b9b427a300c369eeOpen original
Janady13/missionmatch / frontend/src/lib/resume.tsai-brain-liveaac32fc49c878cc5bca099459307611562d0bac1Open original
Janady13/missionmatch / frontend/src/lib/resume.tsworkstream-d-missionmatch3be46ba89edb737182075a2b320509b42dc916f8Open original
Janady13/missionmatch / frontend/src/lib/resume.tsphase2-connectorse038d4c687aec16f8bd9bc4d907eea14d91f8704Open original
Janady13/missionmatch / frontend/src/lib/resume.tsworkstream-b-sam-contract-awardsd5101cceb98e70000cebb31d3e7ac73d747d3a6dOpen original
Janady13/missionmatch / frontend/src/lib/resume.tsfeature/aioe-upgrade2178e7298d0e5d9af83afa12402fd587f0ba6ed8Open original
Janady13/missionmatch / frontend/src/lib/resume.tscapture-readinessbae6af7cb2997e819174a9e9cfff5e16067a1975Open original

Recovered source transcript

// resume.ts extracts plain TEXT from a PDF or DOCX file ENTIRELY IN THE BROWSER. The file bytes never // leave the tab and are never written to storage; only the extracted text is later POSTed to our own // authed API for structured extraction and scoring. This keeps resume bytes (potential CUI) off the // wire and needs no API key, so nothing here can leak a credential into the bundle (CLAUDE.md rule 3). import * as pdfjsLib from 'pdfjs-dist' import workerUrl from 'pdfjs-dist/build/pdf.worker.min.mjs?url' import mammoth from 'mammoth' // Resolve the pdf.js worker from the SAME installed package via Vite's ?url, so the worker version // always matches the API version (a version mismatch is the most common pdf.js failure) and the worker // is self hosted as its own chunk, never a CDN. pdfjsLib.GlobalWorkerOptions.workerSrc = workerUrl export type ExtractedSource = 'pdf' | 'docx' export interface Extracted { text: string source: ExtractedSource // lowConfidence is set when almost no selectable text was found, the signature of a scanned or image // only document. The caller then routes the user to the paste text fallback rather than scoring noise. lowConfidence: boolean } // ResumeParseError carries a user facing message; the modal shows it and offers the paste fallback. export class ResumeParseError extends Error {} const PDF_MAX = 15 * 1024 * 1024 const DOCX_MAX = 10 * 1024 * 1024 const LOW_CONFIDENCE_CHARS = 80 // sniff classifies the file by its magic bytes, not its extension: PDF starts with %PDF, a DOCX is a // zip and starts with PK\x03\x04. A renamed file is rejected rather than mis parsed. function sniff(bytes: Uint8Array): ExtractedSource | null { if (bytes.length >= 4 && bytes[0] === 0x25 && bytes[1] === 0x50 && bytes[2] === 0x44 && bytes[3] === 0x46) { return 'pdf' } if (bytes.length >= 4 && bytes[0] === 0x50 && bytes[1] === 0x4b && bytes[2] === 0x03 && bytes[3] === 0x04) { return 'docx' } return null } // extractResumeText reads the file in memory, validates it, and returns the extracted text. It throws a // ResumeParseError with a friendly message on anything it cannot handle. export async function extractResumeText(file: File): Promise<Extracted> { if (file.size === 0) { throw new ResumeParseError('That file is empty.') } const buf = await file.arrayBuffer() const bytes = new Uint8Array(buf) const kind = sniff(bytes) if (kind === null) { throw new ResumeParseError('Unsupported file. Upload a PDF or DOCX resume, or paste the text.') } if (kind === 'pdf') { if (file.size > PDF_MAX) { throw new ResumeParseError('That PDF is too large. The limit is 15 MB.') } return extractPdf(bytes) } if (file.size > DOCX_MAX) { throw new ResumeParseError('That DOCX is too large. The limit is 10 MB.') } return extractDocx(buf) } async function extractPdf(bytes: Uint8Array): Promise<Extracted> { const loadingTask = pdfjsLib.getDocument({ data: bytes }) let doc try { doc = await loadingTask.promise } catch { throw new ResumeParseError('Could not read that PDF. It may be encrypted or corrupt. Paste the text instead.') } try { const parts: string[] = [] for (let i = 1; i <= doc.numPages; i++) { const page = await doc.getPage(i) const content = await page.getTextContent() for (const item of content.items) { if ('str' in item) { parts.push(item.str) if (item.hasEOL) parts.push('\n') } } parts.push('\n') page.cleanup() } const text = normalize(parts.join(' ')) return { text, source: 'pdf', lowConfidence: nonWhitespace(text) < LOW_CONFIDENCE_CHARS } } finally { // Releases the document and tears down the worker resources for this parse. await loadingTask.destroy() } } async function extractDocx(buf: ArrayBuffer): Promise<Extracted> { let value: string try { const result = await mammoth.extractRawText({ arrayBuffer: buf }) value = result.value } catch { throw new ResumeParseError('Could not read that DOCX. Paste the text instead.') } const text = normalize(value) return { text, source: 'docx', lowConfidence: nonWhitespace(text) < LOW_CONFIDENCE_CHARS } } // normalize collapses runs of spaces and tabs but keeps newlines, which the name detector relies on. function normalize(s: string): string { return s.replace(/[ \t]+/g, ' ').replace(/\n{3,}/g, '\n\n').trim() } function nonWhitespace(s: string): number { let n = 0 for (const c of s) { if (!/\s/.test(c)) n++ } return n }

Search equations, builds, manuscript text, and recovered sources.