Scholarships, Competitions & Internships Extractor
Pricing
from $0.05 / result
Scholarships, Competitions & Internships Extractor
A production-ready Apify Actor that automatically extracts structured information from RSS feeds about scholarships, competitions, internships, and challenges across 11 different categories.
Pricing
from $0.05 / result
Rating
0.0
(0)
Developer
Aadhithya
Maintained by CommunityActor stats
0
Bookmarked
20
Total users
0
Monthly active users
7 months ago
Last modified
Categories
Share
A production-ready Apify Actor that automatically extracts structured information from RSS feeds about scholarships, competitions, internships, and challenges across 11 different categories.
🎯 What This Actor Does
This Actor reads RSS feeds from Givemechallenge.com and extracts:
- Title - Challenge/competition name
- Description - Cleaned and summarized description
- Deadline - Application deadline (normalized to YYYY-MM-DD format)
- Awards - Prize money, grants, or scholarships
- Challenge Link - Direct link to apply/participate
- Category - The category of the challenge
📋 Supported Categories
- App Challenge
- Design Challenge
- Fellowships
- Ideation Challenge
- Internships
- Music and Art Challenge
- Photography Challenge
- Poetry Competition
- Scholarships
- Video Challenge
- Writing Challenge
🚀 Quick Start
Using Apify Console
- Go to Apify Console
- Search for
saadithya/scholarships-competitions-internships-extractor - Click "Run"
- Configure input:
{"category": "Scholarships","maxItems": 20}
- Click "Start"
Using Apify API
curl -X POST \https://api.apify.com/v2/acts/saadithya~scholarships-competitions-internships-extractor/runs \-H 'Authorization: Bearer YOUR_API_TOKEN' \-H 'Content-Type: application/json' \-d '{"category": "Internships","maxItems": 20}'
Using Node.js Apify Client
const { ApifyClient } = require('apify-client');const client = new ApifyClient({token: 'YOUR_API_TOKEN',});const runInput = {category: 'Scholarships',maxItems: 10,};const run = await client.actor('saadithya~scholarships-competitions-internships-extractor').call(runInput);// Get resultsconst items = await client.dataset(run.defaultDatasetId).listItems();console.log(`Found ${items.count} items`);items.items.forEach(item => {console.log(`${item.title} - Deadline: ${item.deadline}, Awards: ${item.awards}`);});
Using Python Apify Client
from apify_client import ApifyClientclient = ApifyClient(token='YOUR_API_TOKEN')run_input = {"category": "Ideation Challenge","maxItems": 20}run = client.actor("saadithya~scholarships-competitions-internships-extractor").call(run_input)for item in client.dataset(run["defaultDatasetId"]).list_items().items:print(f"{item.title} - Deadline: {item.deadline}, Awards: {item.awards}")
📥 Input Parameters
category (Required)
Type: String (enum dropdown)
Description: Select the category of challenges to extract
Options:
App ChallengeDesign ChallengeFellowshipsIdeation ChallengeInternshipsMusic and Art ChallengePhotography ChallengePoetry CompetitionScholarshipsVideo ChallengeWriting Challenge
deadlineAfter (Optional)
Type: String (YYYY-MM-DD format)
Default: Not set
Description: Only return challenges with deadlines AFTER this date
Example:
{"category": "Scholarships","deadlineAfter": "2026-06-01"}
maxItems (Optional)
Type: Integer
Default: 20
Range: 1-100
Description: Maximum number of results to return
Example:
{"category": "Internships","maxItems": 50}
testMode (Optional)
Type: Boolean
Default: false
Description: If enabled, returns a mock item for testing purposes
Example:
{"category": "App Challenge","testMode": true}
📤 Output Format
Each extracted item is pushed to the Apify dataset with this structure:
{"title": "Mastercard Foundation and ASU Graduate Scholarships for Africans","description": "Are you an African student looking to pursue a graduate degree? The Mastercard Foundation Scholars Program at Arizona State University provides comprehensive support...","deadline": "2026-05-15","awards": "$869,000","challengeLink": "https://www.mastercardfdn.org/scholarships/","category": "Scholarships"}
💡 Usage Examples
Example 1: Find Upcoming Scholarship Deadlines
{"category": "Scholarships","deadlineAfter": "2026-06-01","maxItems": 50}
Example 2: Get All Available Internships
{"category": "Internships","maxItems": 100}
Example 3: Test the Actor
{"category": "App Challenge","testMode": true}
Example 4: Extract Latest Design Challenges
{"category": "Design Challenge","maxItems": 10}
🔧 Technical Details
How It Works
- RSS Feed Fetching: Uses the
rss-parserlibrary to fetch and parse RSS feeds from Feedburner URLs - Data Extraction:
- Deadline: Searches for patterns like "Deadline:- DD-MM-YYYY", "Deadline: March 15, 2026"
- Awards: Extracts from "Awards:- $X,XXX" or similar patterns
- Challenge Link: Finds anchor tags with "Take this challenge", "Apply Now", etc.
- Data Cleaning: Removes HTML tags, normalizes whitespace, truncates long descriptions
- Filtering: Applies deadline and maxItems filters
- Output: Pushes structured data to Apify dataset
Date Normalization
The Actor handles multiple date formats:
DD-MM-YYYY(e.g.,09-04-2026→2026-04-09)MM-DD-YYYY(e.g.,04-09-2026→2026-04-09)- Text formats (e.g.,
March 15, 2026→2026-03-15) - ISO formats (e.g.,
2026-03-15→2026-03-15)
All dates are normalized to YYYY-MM-DD format.
Error Handling
- RSS Parse Failures: Logs warnings and continues with empty results
- Item Processing Errors: Skips problematic items without crashing
- Missing Fields: Uses fallback values ("Not specified")
- Invalid Input: Validates input and exits gracefully
⚙️ Configuration
Timeout
Default: 300 seconds (5 minutes)
Recommended: Keep as is for most use cases
Memory
Default: 1024 MB
Recommended: Increase to 2048 MB if processing >100 items
📊 Result Formats
Results can be downloaded in multiple formats from Apify Console:
- JSON
- JSONL
- CSV
- Excel (XLSX)
- XML
- HTML
🔍 Troubleshooting
No Results Returned
- Verify the RSS feed is accessible
- Check if category is correctly selected
- Try increasing
maxItems - Test with
testMode: truefirst
Missing Deadlines or Awards
- Not all RSS items contain this information
- The Actor extracts when available in the content
- Check the raw RSS content to verify data exists
Build Fails
- Ensure all dependencies are in package.json
- Verify Node.js version compatibility
- Review build logs in Apify Console
Timeout Issues
- Increase timeout in Actor settings (max 900 seconds)
- Reduce
maxItemsparameter - Check network connectivity to RSS feeds
🌟 Use Cases
- Job Boards: Automatically aggregate internship opportunities
- Educational Platforms: Track scholarship deadlines for students
- Innovation Hubs: Monitor competition landscapes
- Career Services: Provide students with latest opportunities
- Research Institutions: Track fellowship opportunities
- Media Outlets: Curate challenge listings for audiences
📈 Scheduling
Set up automated runs in Apify Console:
- Go to Actor page → "Schedules" tab
- Click "Create schedule"
- Set frequency (daily, weekly, etc.)
- Configure input parameters
- Save and activate
🔔 Webhooks
Configure webhooks to get notified when runs complete:
- Go to Actor page → "Webhooks" tab
- Click "Add webhook"
- Configure:
- Event types: ACTOR.RUN.SUCCEEDED, ACTOR.RUN.FAILED
- Request URL: Your endpoint
- Payload template: Custom JSON
📝 Version History
v1.0.0
- Initial release
- Support for 11 challenge categories
- Advanced deadline and awards extraction
- HTML cleaning and text normalization
- Comprehensive error handling
🤝 Support
- Documentation: Apify Docs
- Community: Apify Forum
- Issues: Report via Apify Console
- API Reference: Apify API Docs
📄 License
ISC
👨💻 Author
saadithya
Ready to extract opportunities? Start using the Scholarships, Competitions & Internships Extractor now! 🚀
For questions or custom features, reach out via Apify Console.