{"message":"Professional PAP/PAPC API","version":"2.1.0","description":"Dual-mode API: PAP (data processing) + PAPC (full AI pipeline) for CSV processing, lead generation, and data filtering","features":{"csv_processing":{"description":"Flexible lead processing pipeline with PAP/PAPC modes and step-locking queue system. PAP (Processing, Analysis, Preparation): Data processing only. PAPC (Processing, Analysis, Prospecting, Conversion): Full pipeline with AI email generation.","capabilities":["Step-locking system: Each processing step can only be occupied by one job at a time","Priority-based queuing: URGENT → HIGH → NORMAL → LOW priority in each step queue","Sequential progression: Jobs move through steps automatically when previous step completes","Real-time monitoring: Live statistics and step progress tracking","PAP Mode (Processing, Analysis, Preparation): Lead renaming + Bison filtering + CrustData processing + Name cleaning + Email finding + Gender detection + EXA research","PAPC Mode (Processing, Analysis, Prospecting, Conversion): Full PAP pipeline + Direct Agent Creation + AI Copywriting Generation + Bison Upload","Mode Selection: Choose PAP for prospect list building, PAPC for complete outreach campaigns","Brain Context: Required only for PAPC mode (AI email generation), optional for PAP mode","Lead column renaming: Standardize CSV columns with lead_ prefix","ValueCase integration: Fetch and save client ICP data from ValueCase spaces","ICP data extraction: Extract structured ICP information for later use","Bison integration: Get block lists and filter CSV by blocked domains","Bison lead collection: Extract all leads from client campaigns","CrustData processing: Find profiles for companies using job titles and location filters","LinkedIn URL exclusions: Use Bison leads to exclude existing contacts from CrustData results","Batch size optimization: Dynamic batch sizes based on company size","Name cleaning: AI-powered name standardization using GPT-4o-mini","Name normalization: Extract clean first_name and last_name from messy data","Email finding: Two-step email enrichment using Icypeas + BetterContact APIs","Email validation: Domain-based and company-based email discovery","Gender detection: API-powered gender identification for profiles with emails","Gender accuracy tracking: Confidence scores and sample sizes for gender predictions","EXA research: AI-powered research for each company using custom queries","Research automation: Generate company-specific research reports","Email finding optimization: Option to skip BetterContact and use only Icypeas for faster processing","Direct agent creation: Create specialized copywriting agents with ICP-specific memory context","Multiple messaging methods: Choose between sync, async, or stream for agent communication","Dynamic memory management: Update agent memory with company research for each lead","Automated copywriting: Generate personalized email sequences for each lead with emails","Message history reset: Clean agent context between leads for optimal performance","Bison upload: Upload processed leads with complete email content to Bison campaigns","Email content integration: Include generated email subjects and bodies as custom variables in Bison","Email formatting preservation: Line breaks and formatting preserved in CSV exports","Campaign parameter collection (client_id, campaign_ids, row limits) - stored as columns","Seller information enrichment (company details, value proposition, target markets)","EXA query processing: Custom research queries for market intelligence","Processing timestamps and tracking","Comprehensive logging","Master data collection: JSON and CSV consolidation of all processing results","Terminal logging: Capture all terminal output (stdout/stderr) to files for debugging","Dual output: Show terminal messages while simultaneously saving to log files","Real-time logging: Terminal logs created when jobs start, stopped when jobs complete","Log file management: API endpoints to access, download, and view terminal logs"]},"bison_integration":{"description":"Lead generation and filtering using Bison API","capabilities":["Workspace lead extraction","Domain-based filtering","Campaign lead processing","Client-specific data organization"]},"file_management":{"description":"Run-based organized file storage and retrieval","structure":{"uploads":"Original uploaded CSV files","runs":"Individual processing runs, organized by processing mode","run_structure":{"pap_{job_id}_{timestamp}/":"PAP mode runs (Processing, Analysis, Preparation - data processing only)","papc_{job_id}_{timestamp}/":"PAPC mode runs (Processing, Analysis, Prospecting, Conversion - full AI pipeline)","run_{job_id}_{timestamp}/":"Legacy run folders (older format)","├── processed_{filename}.csv":"Main output file with all processing results","├── valuecase_processing/":"ValueCase-fetched ICP data (raw and restructured JSON)","├── bison_processing/":"Bison-generated filtered CSV and lead files","├── crustdata_processing/":"CrustData-generated profile files with LinkedIn exclusions","├── duplicate_filtering/":"Unique profiles after duplicate detection","├── name_cleaning/":"Name-cleaned files with GPT-4o-mini standardized names","├── email_processing/":"Email-enriched files with Icypeas + BetterContact results","├── gender_detection/":"Gender-detected files with API-powered gender identification","├── exa_research/":"EXA-generated research reports for each company (CSV & JSON)","├── agent_creation/":"Direct agent creation results and copywriting outputs (PAPC only)","└── bison_upload/":"Bison upload results, backup CSV files, and confirmation data"},"master_data":"Consolidated results from all processing operations (JSON & CSV)","logs":"Comprehensive processing logs including terminal logs (pap_*.log, papc_*.log)"}}},"endpoints":{"POST /upload-csv":"Upload and process CSV files with step-locking","POST /process-bison":"Run Bison lead generation","GET /job/{job_id}/status":"Check processing status","GET /job/{job_id}/download":"Download results","GET /job/{job_id}/download-all":"Download all files as ZIP","GET /job/{job_id}/terminal-log":"Get terminal log file info for job","GET /job/{job_id}/terminal-log/download":"Download terminal log file","GET /job/{job_id}/terminal-log/content":"View terminal log content","GET /terminal-logs":"List all terminal log files","POST /job/{job_id}/terminal-log/start":"Manually start terminal logging","POST /job/{job_id}/terminal-log/stop":"Manually stop terminal logging","POST /bison/cache/invalidate":"Clear Bison workspace/campaign cache to fix staleness issues","GET /files/processing-modes":"Get breakdown of runs by processing mode (PAP/PAPC/Legacy)","GET /queue/status":"Get queue status with step-locking info","GET /queue/step-locks":"Get detailed step-locking status","GET /queue/jobs":"List jobs in step-locking queue system","GET /files":"List all organized files","GET /jobs":"List all processing jobs","GET /master-data":"Get consolidated master data","GET /master-data/download/json":"Download master data JSON","GET /master-data/download/csv":"Download master data CSV","GET /master-data/stats":"Get master data statistics"},"docs":"/docs","status":"healthy","timestamp":"2026-05-16T11:05:11.071460"}