LOCAL-FIRST PIPELINEAGPL-3.0 FREE & OPEN SOURCE

LOCAL-FIRST JOB SEARCH & RESUME TAILORING INFRASTRUCTURE

Ingest job listings across 84+ platforms via your companion browser extension. Deduplicate cross-postings using 64-bit SimHash. Score candidate fit with local LLMs. Compile pixel-perfect, ATS-compliant Typst resumes without third-party telemetry.

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
84+

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
Typst

ATS Resume Export

Deterministic PDF compiler highlighting authentic matched experience without hallucination.

Tailoring Details →
1-LINE DEPLOYMENT

Install JobFoundry Daemon

Run the official setup script to configure Podman or Docker Compose automatically:

BASH INSTALL
$ curl -sSL https://raw.githubusercontent.com/deadrat-in/JobFoundry/main/install.sh | bash
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 84+ 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"
}
TYPST / LATEX

04. Resume Tailoring

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

  • Deterministic output with zero LLM hallucination of false qualifications.
  • High-speed Typst compiler produces clean, pixel-perfect ATS PDFs.
  • Multi-theme templates suited for technical roles.
TECHNICAL IMPLEMENTATION
// server/tailor/engine.js
const tailoredResume = await generateTailoredProfile({
  masterProfile,
  targetJob,
  template: 'ats-modern'
});
await compileTypst(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

Designed for Engineers Who Value Privacy

JobFoundry removes 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.