rdc-rfp-automation
Val Town is a collaborative website to build and scale JavaScript apps.
Deploy APIs, crons, & store data – all from the browser, and deployed in milliseconds.
main.ts
https://techhandoff--89fd710294ba11f0ae990224a6c84d84.web.val.run
A modular system for automatically creating Request for Proposal (RFP) entries on Monday boards from various data sources.
COMPLETED: Core Monday.com integration is fully functional!
- ✅ Monday board connection established
- ✅ All RFP columns properly mapped:
- RFP Description (Name column)
- Status (Lead, Parking Lot, RFP - Did Non Pursue, Advance of Interest)
- Sender Name (Text column)
- Due Date (Date column)
- Date Received (Date column)
- Location (Text column)
- URL (Link column)
- ✅ Test entries successfully created
- ✅ Web interface for manual entry testing
- ✅ Sample data generation (5 diverse RFP examples)
NEXT STEPS: Ready to add data source parsers (email, RSS, API integrations)
- Monday Board Integration (
/backend/monday/
): ✅ Complete - API client and board operations - Data Sources (
/backend/sources/
): 🔄 Ready for implementation - Modular parsers for different RFP sources - API Routes (
/backend/routes/
): ✅ Complete - HTTP endpoints for testing and webhooks - Shared Types (
/shared/
): ✅ Complete - Common interfaces and utilities - Frontend Interface (
/frontend/
): ✅ Complete - Web UI for testing and manual entry
- Email parsers for municipality RFP systems
- RSS feed processors
- API integrations for various RFP platforms
MONDAY_API_TOKEN
: Your Monday.com API token ✅ ConfiguredMONDAY_BOARD_ID
: The target Monday board ID for RFP entries ✅ Configured
GET /api/monday/test
- Test Monday board connection ✅POST /api/monday/create-rfp
- Create new RFP entry ✅POST /api/monday/create-test-rfp
- Create test RFP entry ✅
POST /api/test-data/create-sample-rfps
- Create 5 sample RFPs ✅POST /api/test-data/create-custom-rfp
- Create custom RFP ✅
POST /api/debug/test-mapping
- Test column mapping ✅POST /api/debug/create-minimal
- Create minimal item ✅POST /api/debug/create-with-status
- Create item with status ✅
Each RFP entry contains:
- RFP Description: Title/description of the opportunity (required)
- Status: Lead | RFP - Did not pursue | Parking Lot | Advance of Interest
- Sender Name: Source of the RFP (IMS, RAMPLA, VendorLine, etc.) (required)
- Due Date: RFP deadline (YYYY-MM-DD format)
- Date Received: When the RFP was received (YYYY-MM-DD format)
- Location: Geographic location (city, state, etc.)
- URL: Link to the actual RFP document
Visit the root URL to access the web interface for:
- Testing Monday board connection
- Creating RFP entries manually
- Generating sample data
# Test connection curl -X GET /api/monday/test # Create RFP entry curl -X POST /api/monday/create-rfp \ -H "Content-Type: application/json" \ -d '{ "rfpDescription": "Library Renovation Project", "status": "Lead", "senderName": "RAMPLA", "dueDate": "2025-11-15", "dateReceived": "2025-09-22", "location": "Sacramento, CA", "url": "https://example.gov/rfp/library" }'
The system is now ready for the next phase - connecting various data sources:
- Email Integration: Parse RFP emails from specific sources
- RSS Feed Processing: Monitor RSS feeds for new RFPs
- API Integrations: Connect to RFP platforms and databases
Each data source will be implemented as a modular parser in /backend/sources/
that converts source-specific data into the standard RFP format.