Job hunting is an emotional grinder. You think you're failing because you got 3 rejections this week. But your agent can show you that your actual interview conversion rate is 40% — well above average. It can catch that you haven't followed up with the hiring manager at Company X in 8 days. It can normalize compensation across 4 different offer structures so you're comparing apples to apples. The data doesn't lie, and having an agent that can reason across your entire pipeline turns an emotional process into a manageable one.
| Extension | Name | Status |
|---|---|---|
| 1 | Household Knowledge Base | Completed |
| 2 | Home Maintenance Tracker | Completed |
| 3 | Family Calendar | Completed |
| 4 | Meal Planning & Recipes | Completed |
| 5 | Professional CRM | Completed |
| 6 | Job Hunt Pipeline | <-- You are here |
A complete job search management system — companies, postings, applications, interviews, and contacts. The most complex extension in the learning path, with 5 RLS-protected tables and sophisticated cross-extension integration to your Professional CRM (Extension 5). This extension demonstrates advanced multi-table relationships, pipeline tracking, and data analysis patterns.
- Most complex multi-table schema design (5 tables with cascading relationships)
- Pipeline/funnel tracking with status transitions
- Cross-extension integration with Extension 5 (Professional CRM)
- Advanced queries (conversion rates, timeline analysis, upcoming events)
- Bridge tables for linking separate data domains
- Handling nullable foreign keys and optional relationships
- Working Open Brain setup
- Extension 5 (Professional CRM) strongly recommended — cross-extension linking depends on it
- Node.js 18+ installed
- Required reading: Row Level Security primitive
You'll reference these values during setup. Copy this block into a text editor and fill it in as you go.
Already have your Supabase credentials from the Setup Guide? You just need the same Project URL and Secret key.
JOB HUNT PIPELINE -- CREDENTIAL TRACKER
--------------------------------------
SUPABASE (from your Open Brain setup)
Project URL: ____________
Secret key: ____________
--------------------------------------
Run the SQL in schema.sql in your Supabase SQL Editor:
# Navigate to your Supabase project SQL editor
# https://supabase.com/dashboard/project/YOUR_PROJECT_ID/sql/newCopy and paste the contents of schema.sql and click Run. This creates five RLS-enabled tables with proper foreign key relationships and cascading deletes.
cd extensions/job-hunt
npm installCreate a .env file in this directory:
SUPABASE_URL=your_supabase_url
SUPABASE_SERVICE_ROLE_KEY=your_service_role_keynpm run buildAdd this extension to your claude_desktop_config.json:
{
"mcpServers": {
"job-hunt": {
"command": "node",
"args": ["/path/to/extensions/job-hunt/build/index.js"],
"env": {
"SUPABASE_URL": "your_supabase_url",
"SUPABASE_SERVICE_ROLE_KEY": "your_service_role_key"
}
}
}
}Restart Claude Desktop to load the new MCP server.
Try these commands with Claude:
Add a company I'm tracking: TechCorp, enterprise software company, remote-first, San Francisco
Add a job posting at TechCorp: Senior AI Engineer, $150k-$200k, posted on LinkedIn
Submit an application for the TechCorp AI Engineer role, used resume v3
Schedule a phone screen interview for my TechCorp application, tomorrow at 2pm
Show me my pipeline overview - how many applications, what stages, upcoming interviews
Link the TechCorp recruiter to my professional CRM
This is the most sophisticated cross-extension integration in the learning path.
A recruiter you're talking to during the job search is also a professional contact worth maintaining. Your agent can create the CRM record automatically — the recruiter's name, company, and interaction history carry over. When you land the job (or don't), those contacts don't disappear from your network. They're already in your CRM, ready for the long-term relationship.
Example workflow:
- You add a job contact: "Jessica Lee, TechCorp recruiter, jessica@techcorp.com"
- You have multiple interactions: phone screen, interview coordination, offer negotiation
- Your agent uses
link_contact_to_professional_crmto create a professional_contacts record in Extension 5 - The
professional_crm_contact_idfield is set, creating a bidirectional link - After the job search ends, Jessica is already in your CRM with full context: company, role, all notes from the job search
How it works technically:
The tool takes a job_contact_id from the job_contacts table. It retrieves the contact details and creates a corresponding record in Extension 5's professional_contacts table. The professional_crm_contact_id field stores the link — this is application-managed rather than a database foreign key, because the two extensions live in separate table domains and you might install one without the other. This means:
- Future interactions in the job hunt also appear in the CRM context
- You can track the relationship long-term in Extension 5
- Your networking doesn't restart from zero after the job search
Your agent has even more context when you're job hunting:
- Extension 1 (Household Knowledge): Knows your current location, family situation relevant to relocation decisions
- Extension 2 (Home Maintenance): Understands timing constraints (e.g., "I can't start until after the roof replacement in May")
- Extension 3 (Family Calendar): Can schedule interviews around existing commitments, factor in family obligations
- Extension 4 (Meal Planning): Knows your dietary needs for interview lunches, can plan around busy interview days
This is the power of a fully interconnected Open Brain — context flows across domains.
add_company— Add a company to track (name, industry, website, size, location, remote_policy, notes, glassdoor_rating)add_job_posting— Add a specific role at a company (company_id, title, url, salary_min, salary_max, requirements, nice_to_haves, source, posted_date)submit_application— Record a submitted application (job_posting_id, status, applied_date, resume_version, cover_letter_notes, referral_contact)schedule_interview— Schedule an interview for an application (application_id, interview_type, scheduled_at, duration_minutes, interviewer_name, interviewer_title, notes)log_interview_notes— Add feedback/notes after an interview, update status to completed (interview_id, feedback, rating 1-5)get_pipeline_overview— Dashboard summary: counts by application status, upcoming interviews in next N days, recent activity. This is your "how's it going?" tool.get_upcoming_interviews— List interviews in the next N days with full company/role contextlink_contact_to_professional_crm— CROSS-EXTENSION BRIDGE — Takes a job_contact_id, creates/links to a professional_contacts record in Extension 5, sets professional_crm_contact_id
After completing this extension, you should be able to:
- Track companies and roles across your entire job search
- Manage application status through the pipeline (applied → screening → interviewing → offer → accepted/rejected)
- Schedule and log interviews with detailed notes and ratings
- Track contacts (recruiters, hiring managers, interviewers) with CRM integration
- Get pipeline analytics: conversion rates, stage distribution, interview performance
- Bridge job search contacts into your long-term professional network
Your agent will be able to answer questions like:
- "Show me my pipeline overview"
- "What interviews do I have this week?"
- "What's my conversion rate from phone screen to technical interview?"
- "Which applications are in the proposal stage?"
- "Who's the recruiter at TechCorp and when did I last talk to them?"
- "Link all my TechCorp contacts to my professional CRM"
- Verify your
SUPABASE_URLandSUPABASE_SERVICE_ROLE_KEYare correct - Check that your Supabase project is active
- Ensure RLS policies are created correctly (service role bypasses RLS, but policies must exist)
- Ensure parent records exist before creating child records (company → job_posting → application → interview)
- Verify UUIDs are correct and belong to the same user_id
- Check cascading delete behavior — deleting a company will delete all related postings, applications, and interviews
- Verify Extension 5 (Professional CRM) is installed and its tables exist
- Check that the
professional_contactstable is accessible - Ensure both extensions are using the same Supabase project
- The service role key should bypass RLS, so this suggests a configuration issue
- Verify all five tables have RLS enabled and policies created
- Check that user_id values are valid UUIDs from
auth.users
- Ensure the interview_id exists and belongs to the correct user
- Check that the interview hasn't been deleted
- Verify the application_id chain is intact
- Ensure you've run
npm installfirst - Check that Node.js version is 18 or higher:
node --version - Delete
node_modulesandpackage-lock.json, then reinstall
You've completed all 6 extensions!
At this point, your agent has a comprehensive, interconnected system:
- Extension 1: Household knowledge (paint colors, appliances, vendors)
- Extension 2: Home maintenance (recurring tasks, service logs)
- Extension 3: Family calendar (events, recurring schedules)
- Extension 4: Meal planning (recipes, shopping lists, meal schedules)
- Extension 5: Professional CRM (contacts, interactions, opportunities)
- Extension 6: Job hunt pipeline (companies, applications, interviews)
All wired together through your Open Brain, with cross-extension tools that let context flow between domains.
- Build your own extensions — Use these 6 as templates for domains specific to your life
- Explore primitives — Dive deeper into Row Level Security, Recurring Tasks, and other patterns
- Create compound queries — Build tools that reason across multiple extensions simultaneously
- Share your extensions — Contribute back to the OB1 community