This is a submission for the
Core capabilities:
- Scrapes Dribbble job listings on demand via a REST API trigger
- Summarizes job descriptions using HuggingFace (facebook/bart-large-cnn)
- Sends formatted Telegram alerts with one-tap apply buttons
- Stores all jobs in a Notion database with status tracking
- Reads its own configuration live from Notion — no redeployment needed to change behavior
Tech stack: Python 3.11, FastAPI, BeautifulSoup4, HuggingFace Inference API, python-telegram-bot, notion-client, deployed on Render.
Video Demo
Show us the code
GitHub:
Nancy reads a Config database in Notion before every single run:
| Setting | Example | What it does |
|---|---|---|
active | true / false | Kill switch — pause Nancy without touching code |
keywords | designer, UX, product | Only alert on jobs matching these terms |
job_types | Full-time, Contract | Filter by employment type |
max_pages | 3 | How many Dribbble pages to scrape per run |
Want Nancy to focus on freelance roles this week? Edit one cell in Notion. Want to pause it while you're traveling? Flip active to false. No terminal, no redeployment.
Notion as data layer (output)
[SCREENSHOT: Nancy Jobs database — Pipeline Board (Kanban) with columns New / Notified / Reviewing / Applied / Archived]
Every job Nancy finds is saved to a Jobs database with full metadata and a status workflow:
New → Notified → Reviewing → Applied → Archived
This turns Notion into an actual application tracker. Nancy handles discovery; you handle decisions. The Pipeline Board makes it immediately obvious where each opportunity stands.
The full flow
/trigger-scraper
→ read config FROM Notion (active? max_pages? keywords? job_types?)
→ if active=false → return "paused"
→ fetch existing job URLs from Notion (deduplication)
→ scrape Dribbble up to max_pages
→ for each new job matching filters:
→ summarize via HuggingFace
→ send Telegram alert
→ save to Notion Jobs DB (Status = New)
→ update Status → Notified, tick Telegram Sent
Two new API endpoints complete the picture:
GET /config— returns the live Notion config on demand
GET /jobs— returns all jobs from Notion, filterable by status
What's Next
I want to be honest: what Nancy does today with Notion is not yet even close to the full power of what MCP makes possible.
Anyway the vision is to build an autonomous job application agent.
Notion becomes the agent's long-term memory. Not just a database of scraped jobs, but a living context store with an overview of the user's identity and metadata on jobs that matter to the user.
The agent this way will know what is relevant to highlight when drafting assets to apply, and also what to apply.
Thanks for reading
Juvet Manga

SOCIAL SHARE CARD GENERATOR