LOCAL-FIRST PIPELINEAGPL-3.0 FREE & OPEN SOURCE

JOB SEARCH THAT MEETS YOU WHERE YOU ARE: YOUR BROWSER

JobFoundry captures listings across 87 platforms through a companion browser extension — no terminal, no AI coding tools, no new habits. It deduplicates cross-postings with 64-bit SimHash, scores your fit with local LLMs, and compiles truthful, ATS-compliant PDF resumes. Everything stays on your machine.

STRICT INVARIANT

Zero Server Scraping

The JobFoundry server never performs outbound job-board scraping. All scraping and job-board HTTP requests originate exclusively from your browser extension.

COVERAGE
87

Supported Providers

Workday, Greenhouse, Lever, Ashby, LinkedIn, Indeed, Dice, and 75+ niche platforms.

Browse Directory →
DEDUPLICATION
64-Bit

SimHash Fingerprints

Locality-sensitive hashing eliminates cross-posted duplicates with Hamming distance analysis.

SimHash Mechanics →
SCORING ENGINE
0–100

Local LLM Fit Scoring

Strict JSON schema evaluation with Ollama or vLLM. Computes match grades and gap analyses.

Configure LLMs →
OUTPUT
PDF

ATS Resume Export

Deterministic PDF compiler highlighting authentic matched experience without hallucination.

Tailoring Details →
DEFAULT INSTALL

Up and Running in Seconds

Containerized via Docker or Podman is the recommended default. A single command auto-detects your container runtime and starts the entire stack. Portable desktop convenience builds (AppImage, MSIX, Homebrew) are also available.

Docker / Podman (Default)curl -fsSL https://raw.githubusercontent.com/Covai-Labs/JobFoundry/main/install.sh | bash
Linux AppImagePortable binary, no containers neededWindows MSIXSideload package with Start menu launch
See installation instructions →
SYSTEM ARCHITECTURE

The 5-Stage Local-First Pipeline

How JobFoundry transforms unstructured job board web pages into prioritized, scored matches with tailored ATS resumes.

LOCAL EXTENSION

01. Browser Ingestion

Captures job postings directly within your browser session across 87 supported ATS and job boards.

  • Architectural Invariant: Zero server-side scraping.
  • Bypasses Cloudflare / anti-bot blocks using existing authenticated session.
  • Supports DOM scrapers and JSON-LD structured schemas.
TECHNICAL IMPLEMENTATION
// extension/content-script.js
const payload = {
  url: window.location.href,
  title: extractField('title'),
  company: extractField('company'),
  descriptionHtml: extractField('description'),
  extractedAt: new Date().toISOString()
};
// Sent directly to local JobFoundry daemon
64-BIT HAMMING

02. SimHash Deduplication

Eliminates cross-posted duplicate jobs from multiple aggregators using text fingerprinting.

  • Normalizes company names, domains, and text whitespace.
  • Calculates 64-bit SimHash with configurable Hamming distance threshold.
  • Retains canonical master record with multi-source breadcrumbs.
TECHNICAL IMPLEMENTATION
// server/ingest/dedup.js
const hashA = computeSimHash(jobA.description);
const hashB = computeSimHash(jobB.description);
const distance = hammingDistance(hashA, hashB);

if (distance <= 3) {
  // Mark as duplicate of canonical job
  return deduplicate(jobB, jobA.id);
}
STRUCTURED JSON

03. LLM Fit Scorer

Scores candidate fit (0–100) using local LLMs (Ollama, vLLM) against your master profile.

  • Runs locally against Ollama or any OpenAI-compatible API.
  • Enforces strict JSON schema validation via Ajv.
  • Custom criteria weights: skills, experience level, remote policy.
TECHNICAL IMPLEMENTATION
{
  "fitScore": 88,
  "matchGrade": "A",
  "keyStrengths": ["Distributed Systems", "TypeScript", "PostgreSQL"],
  "gapAnalysis": ["Limited Go experience mentioned in posting"],
  "recommendation": "Strong apply"
}
FOLIO PDF

04. Resume Tailoring

Generates tailored, ATS-compliant PDF and plain-text resumes highlighting matched requirements.

  • Deterministic output with zero LLM hallucination of false qualifications.
  • folio-export (Puppeteer + jsonresume-theme-folio) produces clean, pixel-perfect ATS PDFs.
  • Multi-theme templates suited for technical roles.
TECHNICAL IMPLEMENTATION
// server/tailor → folio-export (jsonresume-theme-folio)
const tailoredResume = await generateTailoredProfile({
  masterProfile,
  targetJob,
  template: 'folio'
});
await renderPdf(tailoredResume, 'output.pdf');
LOCAL-FIRST WEB

05. Kanban Dashboard

Organizes job applications across a responsive, multi-user local dashboard with application tracking.

  • Fast SQLite / Postgres storage with zero cloud lock-in.
  • Drag-and-drop status transitions from Discovered to Offer.
  • Direct link back to original job posting with paired tailored resume.
TECHNICAL IMPLEMENTATION
GET /api/jobs?status=scored&minScore=75
Response: 200 OK
[
  { "id": "job_9412", "title": "Staff Engineer", "score": 94, "stage": "READY_TO_APPLY" },
  { "id": "job_8204", "title": "Backend Lead", "score": 88, "stage": "APPLIED" }
]
CORE FOUNDATIONS

Made for Jobseekers, Not Just Engineers

Job hunting is stressful enough. JobFoundry removes technical barriers and cloud dependency, and puts you in complete control of your career data.

NO CLOUD LOCK-IN

Local SQLite Storage

Your applications, fit scores, and resume variants are stored locally in a standard SQLite database. Back it up, migrate to PostgreSQL, or delete it anytime with zero external cloud dependencies.

AUTHENTIC SESSIONS

Bypasses Anti-Bot Barriers

Server scrapers constantly fail against Cloudflare and CAPTCHAs. Because JobFoundry captures listings through your companion browser extension, ingestion operates within your authentic user session.

DETERMINISTIC TAILORING

Zero LLM Hallucination

Generative AI tools frequently invent fictional employers and qualifications. JobFoundry enforces strict schema-constrained re-ranking of your genuine accomplishments, verified by structured tests.

OPEN SOURCE

AGPL-3.0 Copyleft Licensed

Free software designed to remain free. Inspect every line of code across the companion extension, ingestion microservices, and web Kanban dashboard.