Day 27Growth & DemandYCJobsBright Data

YC Startup Scout — AI Agent for Y Combinator job discovery

Discovers live roles at high-growth Y Combinator companies.

Impact

Discovers live roles at high-growth Y Combinator companies.

Mechanism

YC Ecosystem Scanner

DAY 27
Full README · Case Study

🚀 AI Job Search Automation Agent (Day 23)

"Most people don’t fail job interviews. They fail before they even apply."


🌊 The Signal vs. Noise Revolution

Job hunting today isn’t about effort. It’s about signal vs noise.

You are up against:

  • ❌ Hundreds of generic listings.
  • ❌ "Spray and pray" applicants.
  • ❌ Zero feedback loops.
  • ❌ Hours of manual copy-pasting.
  • ❌ Recruiter fatigue (6 seconds per resume).

This Agent is your unfair advantage.

It doesn't just "search" for jobs. It is a fully autonomous Recruitment & Application Engine that works for you. It scrapes, analyzes, rates, and even writes your cover letters while you sleep. By the time you wake up, the best opportunities are already waiting for you in a clean, organized spreadsheet.

📉 The Old Way vs. 📈 The Agent Way

  The "Grind"
  The AI Agent



  Search manually for hours
  Autopilot: Pulls jobs 24/7 via RSS triggers



  Read vague descriptions
  Deep Analysis: Extraction of real benefits & requirements



  Apply to everything
  Smart Filter: Applies only if you're a Top Match (>4/5)



  Generic, weak cover letters
  Hyper-Personalized: Writes custom letters for each role



  Spreadsheet chaos
  Structured Data: Clean, auto-updated Google Sheet database



  Missed opportunities
  Instant Action: Catches jobs within minutes of posting

🧠 End-to-End Workflow Analysis

This isn't just a simple script. It's a sophisticated n8n workflow designed to mimic a human recruiter's decision-making process.

The Architecture of Automation

The agent operates in a linear, logical flow, ensuring high-quality output at every step.

1. The Ear (RSS Trigger)

  • Node: RSS Read
  • Function: Constantly monitors job boards (LinkedIn, Indeed, etc. via RSS) for new listings.
  • Configuration: Fetches every X minutes.
  • Why: Speed is key. Be the first to know when a role drops.

2. The Eye (HTTP Scraper)

  • Node: HTTP Request
  • Function: Visits the actual job URL and scrapes the entire page content.
  • Why: RSS feeds often truncate descriptions or only show the "preview". We need the full text to find hidden requirements (e.g., "Must be located in MST time zone").
  • Technical: Uses standard GET request.

3. The Analyst (Data Extraction)

  • Node: OpenAI (GPT-4o-mini)
  • Function: Reads the raw HTML text and extracts structured data:
    • Company Name: Normalized name.
    • Benefits: 401k, Health, Remote policy, Unlimited PTO.
    • Core Job Description: Summarized to Top Right Menu (...) -> Import from File -> Select the JSON.
  1. Save: Name it "Job Search Agent" or "Career Copilot".

Phase 2: Configure Credentials

🔑 OpenAI

  1. Open any OpenAI node (e.g., OpenAI).
  2. Click Credential to connect with.
  3. Select Create New.
  4. Name: OpenAI Job Search.
  5. Paste your OpenAI API Key (starts with sk-...).
  6. Click Save.

📊 Google Sheets

  1. Open the Google Sheets node.
  2. Create a new credential using Google Sheets OAuth2 API.
  3. Setup Guide:
    • Go to Google Cloud Console.
    • Create a Project.
    • Enable Google Sheets API.
    • Go to Credentials -> Create Credentials -> OAuth Client ID.
    • Authorized Redirect URI: Copy this from the n8n credential window (e.g., https://your-n8n.com/oauth2/callback).
    • Copy Client ID and Client Secret back to n8n.
  4. Click Connect my account and potential approval screens.

Phase 3: The "Brain Transplant" (Crucial Step)

The agent needs to know WHO it is applying for. By default, it uses "Alex Morgan" (a placeholder profile). You must change this.

[!IMPORTANT] YOU MUST UPDATE THE RESUME DATA OR THE AGENT WILL APPLY AS SOMEONE ELSE!

Update the Rater:

  1. Double-click the OpenAI1 (Rating) node.
  2. Look at the Messages -> Values -> Content.
  3. Find the text block starting with 📄 SAMPLE RESUME / Alex Morgan.
  4. DELETE everything from Alex Morgan down to the end of the resume section.
  5. PASTE your actual resume text (Experience, Skills, Education).
  6. Optional: Tweak the scoring logic in the System Prompt.
    • Example: Change "1 point for remote" to "5 points for remote" if remote is non-negotiable for you.

Update the Writer:

  1. Double-click the OpenAI2 (Writer) node.
  2. Look at the Messages -> Values -> Content.
  3. Again, find the 📄 SAMPLE RESUME section.
  4. Replace it with your resume text.
  5. Pro Tip: Add a line in the System Prompt like: "Tone should be professional but enthusiastic," or "Keep it under 200 words."

Phase 4: Google Sheet Setup

  1. Create a NEW Google Sheet.
  2. Name the tab Sheet1 (default).
  3. Create the following headers in Row 1:
    • A1: Title
    • B1: Link
    • C1: Date
    • D1: Company Name
    • E1: Benefits
    • F1: Job Description
    • G1: Rating
    • H1: Cover Letter
  4. Copy the Spreadsheet ID from the URL (the long string between /d/ and /edit).
  5. In the n8n Google Sheets node:
    • Mode: List (or ID).
    • Paste the ID into Document ID.
    • Ensure Sheet Name matches your tab name.
    • Verify Map Data Automatically is ON or manually map the columns as per the JSON.

Phase 5: The RSS Trigger

  1. Go to LinkedIn Job Search.
  2. Search for your dream job (e.g., "AI Engineer", "Remote", "United States").
  3. Filter by "Past 24 hours" to keep it fresh.
  4. Copy the URL.
  5. Use a tool to generate an RSS feed:
    • RSS.app (Easiest)
    • PolitePol (Free)
    • Or use n8n's built-in triggers if available for the specific platform.
  6. Open the RSS Read node in n8n.
  7. Paste your new RSS URL.

🔧 Advanced Customization

Once you have the basics running, here is how to make it World Class.

1. Multi-Language Support

Applying to jobs in Germany or Japan?

  • Action: In the OpenAI2 (Writer) node, add to the System Prompt:

    "Detect the language of the job description. Write the cover letter in the SAME language."

  • Result: Automatically switches between English, German, French, etc.

2. The "Dealbreaker" Filter

Want to ignore jobs under a certain salary or requiring "5+ years experience"?

  • Action: In OpenAI (Analyst) node, add extraction fields for min_salary and years_experience.
  • Action: Add an If node after the Analyst.
    • Logic: If min_salary > 100000 AND `years_experience 4.
  • Message: "🚨 NEW 5/5 JOB MATCH: [Title] at [Company]! Link: [Link]"

4. Direct Resume Tailoring (Expert Mode)

Instead of just a cover letter, rewrite your resume summary.

  • Action: Add another OpenAI node.
  • Prompt: "Rewrite my resume 'Summary' section to explicitly highlight keywords found in this job description: {{Job Description}}."
  • Output: Save the new Summary text to the Sheet for manual addition to your CV.

📡 Node Configuration Reference

For those debugging, here are the default settings for every node in the workflow.

Node NameNode TypeKey FunctionCritical Settings
Schedule Triggern8n-nodes-base.scheduleTriggerTriggers the flowInterval: Every 1 Hour (Adjustable)
RSS Readn8n-nodes-base.rssFeedReadFetches jobsURL: Your LinkedIn RSS Link
Limitn8n-nodes-base.limitPrevents loop spamMax Items: 3 (Testing), 50 (Production)
HTTP Requestn8n-nodes-base.httpRequestScrapes contentURL: {{json.link}}, Method: GET
OpenAI@n8n/n8n-nodes-langchain.openAiExtracts DataModel: gpt-4o-mini, Format: JSON
OpenAI1 (Rating)@n8n/n8n-nodes-langchain.openAiRates JobModel: gpt-4o-mini, Scores: 1-5 Scale
OpenAI2 (Writer)@n8n/n8n-nodes-langchain.openAiWrite LetterModel: gpt-4o-mini, Resume: REQUIRED
Google Sheetsn8n-nodes-base.googleSheetsSaves DataOperation: appendOrUpdate, Dedupe: Link

Pro Tip: If HTTP Request fails (403 Forbidden), try adding a User-Agent header mimicking a browser.


❓ Troubleshooting & FAQ

Q: The workflow fails at the Google Sheets node.

A: Check your OAuth permissions. Re-authenticate. Also, ensure the header row in your Sheet EXACTLY matches the column names in the n8n node settings. Case sensitivity matters!

Q: All my ratings are coming back as 0 or 1.

A: Your scoring criteria might be too strict, or, more likely, you didn't update the Resume in the Prompt. If the AI thinks you are "Alex Morgan" (Marketing Student) but you are applying for "Senior Python Dev", you will get a 0. Update Phase 3.

Q: RSS Feed says "Forbidden" or "Empty".

A: LinkedIn constantly changes their structure. Try regenerating the RSS feed link using a different service (RSS.app usually works best). Alternatively, use the internal n8n Trigger for sites that support it.

Q: How much does this cost to run?

A: gpt-4o-mini is extremely cheap. Processing 100 jobs might cost you ~$0.05. It is effectively free compared to the value provided.

Q: Can I use Local LLMs (Ollama)?

A: YES! Swap the OpenAI nodes for Ollama nodes in n8n. Use llama3 or mistral. Note: Reasoning capabilities for "Scoring" might be slightly lower than GPT-4.


📊 Revenue & Time ROI Model

How much is this agent worth? Let's break it down.

Time Savings (Monthly)

TaskManual (Human)With Agent (AI)Savings
Finding Jobs10 Hours0 Hours10 Hrs
Reading Junk5 Hours0.5 Hours4.5 Hrs
Writing Letters15 Hours0 Hours15 Hrs
Tracking Apps2 Hours0 Hours2 Hrs
TOTAL32 Hours~0.5 Hours31.5 Hours Saved

Potential Revenue Impact

If your time is worth $50/hr:

  • Monthly Value Created: $1,575
  • Yearly Value Created: $18,900

Plus, by applying faster and with better letters, you increase your interview rate by an estimated 300%.

🚀 300% Higher Interview Rate = Faster Hired = $$$


📚 Glossary

  • n8n: The workflow automation tool connecting apps.
  • RSS: "Really Simple Syndication" - a web feed that allows users and applications to access updates to websites in a standardized, computer-readable format.
  • OpenAI API: The interface allowing this agent to "think" using GPT models.
  • JSON: JavaScript Object Notation - the file format used to share this workflow.
  • Scraper: A bot that extracts content from a webpage.
  • Prompt Engineering: The art of asking the AI the right question to get the best answer.

The Dashboard (Output)

Your Google Sheet becomes a command center. Sort by Rating to focus only on the 5/5 jobs.

The Logic (Node Graph)

Visualizing the decision tree.

Future Roadmap

  • Auto-Apply: Integration with LinkedIn Easy Apply (via Puppeteer).
  • Email Alerts: Slack/Email notification for 5/5 matches.
  • Resume Tailoring: Rewriting the Resume PDF itself for each job.
  • Interview Prep: Generating interview questions based on the JD.

🌟 Why I Built This

"People don’t lack talent — they lack time, clarity, and feedback. Job search is a decision system, not a numbers game."

I built this for Day 23 of my 30 Days, 30 AI Agents Challenge to prove that automation can bring humanity back to hiring by letting you focus on the interview, not the paperwork.

🤝 Connect & Customization

If you want this agent customized for your specific industry or workflow:

  • Comment: "Agent 23"
  • DM Me: For personal setup help.
  • Follow: For the next 7 agents!

#30Days30AIAgents #BuildInPublic #AIForCareers #n8n #JobSearch #Automation #OpenAI #CareerTech


Built with ❤️ by the Ai agent bros Team

Explore more agents

30 open-source systems · full registry

Browse All 30 Agents