You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
source venv/bin/activate && PYTHONPATH=. python3 << 'EOF'import asyncio, sqlite3from src.extraction.llm_extractor import LLMExtractorfrom src.knowledge_graph.graph import KnowledgeGraphextractor = LLMExtractor()kg = KnowledgeGraph()conn = sqlite3.connect('data/recruiter_intel.db')cursor = conn.cursor()cursor.execute("""SELECT id, title, content, summary FROM raw_articlesWHERE is_high_signal = 1 AND extracted = 0ORDER BY published_at DESC LIMIT 50""")async def extract(): for id, title, content, summary in cursor.fetchall(): result = await extractor.extract(title, content or summary or "") if result.relationships: kg.add_extraction_result(result) cursor.execute("UPDATE raw_articles SET extracted = 1 WHERE id = ?", (id,)) conn.commit()asyncio.run(extract())print("Done!")EOF
Known Issues & Fixes
Issue
Symptom
Fix
Extraction not tracked
Dashboard shows old data
Added extracted column
Invalid entities
HTML artifacts in entity names
_sanitize_name() validation
Stale RSS news
Same news repeating
Removed when:30d from feeds
Layoffs.fyi 404
No layoff data
Fallback data in scraper
YC API 403
No YC companies
Fallback data in scraper
Troubleshooting
Dashboard shows no/stale data
# Check unextracted articles
sqlite3 data/recruiter_intel.db "SELECT COUNT(*) FROM raw_articles WHERE is_high_signal=1 AND extracted=0"# If > 0, run manual extraction above
Check what's in knowledge graph
sqlite3 data/knowledge_graph.db "SELECT predicate, COUNT(*) FROM kg_relationships GROUP BY predicate"
Check feed health
sqlite3 data/recruiter_intel.db "SELECT feed_name, total_articles, last_error FROM feed_stats ORDER BY total_articles DESC"