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
Actor stats
0
Bookmarked
1
Total users
1
Monthly active users
6 hours 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.