# schedule-posts > Schedule social media posts for tomorrow, manage Upload-Post jobs, run two-pass quality review, and assign photos. Use when scheduling content, preparing batch posts, managing upload jobs, or running quality checks on posts. - Author: Shawn Garland - Repository: shawngarlandgit/neuro-pipeline - Version: 20260129223835 - Stars: 0 - Forks: 0 - Last Updated: 2026-02-06 - Source: https://github.com/shawngarlandgit/neuro-pipeline - Web: https://mule.run/skillshub/@@shawngarlandgit/neuro-pipeline~schedule-posts:20260129223835 --- --- name: schedule-posts description: Schedule social media posts for tomorrow, manage Upload-Post jobs, run two-pass quality review, and assign photos. Use when scheduling content, preparing batch posts, managing upload jobs, or running quality checks on posts. --- # Schedule Posts Skill ## Overview Handles the daily workflow of scheduling social media posts across 8+ platforms with quality assurance. ## Critical: Always Run These Steps in Order ### 1. Cancel Existing Jobs (ALWAYS FIRST) ```bash node api/scripts/cancel-upload-post-jobs.js ``` This prevents duplicate scheduling and conflicts. ### 2. Schedule Tomorrow's Posts ```bash # With two-pass quality review (RECOMMENDED - 92-96% approval) node scripts/production/schedule-tomorrow-only.js --two-pass # Without quality fixes (faster but ~3% approval) node scripts/production/schedule-tomorrow-only.js # Bypass quality entirely (use sparingly) node scripts/production/schedule-tomorrow-only.js --bypass-quality ``` ### 3. Assign Photos to Posts ```bash node api/scripts/assign-photos-to-posts.js ``` ### 4. Generate Images (if needed) ```bash node scripts/production/generate-daily-images.js --limit 20 ``` ## Two-Pass Quality Review Run standalone if needed: ```bash # Preview what would be fixed node api/services/two-pass-quality-review.js --dry-run --limit=50 # Run actual fixes node api/services/two-pass-quality-review.js --limit=100 ``` ## Check Post Counts by Platform ```bash node -e "const{createClient}=require('@supabase/supabase-js');require('dotenv').config({path:'.env.local'});const s=createClient(process.env.SUPABASE_URL,process.env.SUPABASE_SERVICE_ROLE_KEY);s.from('social_content').select('platform').is('upload_post_job_id',null).then(r=>console.log(r.data.reduce((a,p)=>(a[p.platform]=(a[p.platform]||0)+1,a),{})))" ``` ## Daily Posting Targets | Platform | Daily Target | Requires | |----------|-------------|----------| | Instagram | 1 | Photo | | Pinterest | 10 | Photo + title<100chars | | LinkedIn | 1 | Photo preferred | | Threads | 3 | Photo preferred | | Facebook | 1 | Photo preferred | | Twitter/X | 3 | Photo preferred | | Bluesky | 3 | - | | Reddit | 1 | Value-first, no promos | ## Troubleshooting - **Duplicate jobs**: Run cancel script first - **Low approval rate**: Use `--two-pass` flag - **Missing photos**: Run assign-photos script - **Quality issues**: Check `two-pass-quality-review.js` logs