Major challenge many fundraising teams face on the major giving side is identifying the right individuals to cultivate as potential major donors, sponsors and volunteers. As nonprofits are often strapped for resources and time, targeting the right individuals is critical. Also, there's a lot they could learn from their peer nonprofits about how to be more effective - if only they knew who their peers were, what they do, and who funds them.

The problem isn't a lack of information about what other organisations do or who funds them. There's a ton out there, but it's messy -- scattered across the web, in charity databases, in news articles, in social media, in data sources structured and unstructured. In order to make better organisational decisions, putting this information at nonprofits' fingertips will allow nonprofits to spend less time digging around for information and more time focusing on their core missions.

What if we have a platform that can help answer the following question all in one place?

  • How can I discover possible donors and sponsors that are more inclined to help for my nonprofits cause?
  • Which companies have partnerships with nonprofits in my sector?
  • What is my impact on social media, and what are the characteristics of my followers?
  • How can I retain existing donors and inspire new donors to fund my organisation?
  • How do I relate to other charities operating in the same sector?Which nonprofits can I partner with?
  • How can I discover volunteers that are more inclined to help my nonprofits cause?


There’s plenty of information about nonprofits scattered throughout the web, but nonprofits aren’t sure what to do with it. Gudville uses Machine learning and Natural Language Processing to recommend possible donors, company partnerships, suitable volunteers and similar nonprofits.

How do we do this?

Ever wondered how Amazon recommends products you are likely to buy? We use a similar concept to provide recommendations for nonprofits.

Gudville assembles information on nonprofits scattered throughout the web from structured data such as Charity Navigator, unstructured data such as news articles, Twitter and webpages of nonprofits. With all these sources of information in hand, Gudville uses natural language processing techniques to build a weighted graph that connects nonprofits, companies, and people (twitter followers). It then uses machine learning to make recommendations for nonprofits.

Gudville is also an all in one platform for nonprofits to fund and run their entire mission at one place. Nonprofits can use it to request donations, contact donors, manage campaigns, manage volunteers. Donors can use Gudville to discover nonprofits based on their interest and also donate to them through Amazon Pay.

How do we Identify Potential Donors ?

Nonprofits need to understand who their target audience is and adapt to their behaviours and preferences.

Gudville recommends possible donors who are more likely to support the nonprofits cause by identifying donor’s previous donations to other similar nonprofits. Nonprofits can use this to identify right individuals to cultivate as potential major donors. This way nonprofits can spend less time digging around for information and more time focusing on their core missions.

Alt text

How Nonprofits Can Find the Right Volunteers?

Identifying and recruiting the right volunteers for the right strategic jobs can save a nonprofit a lot of money. Finding the right volunteers for a particular function can be challenging. Gudville identifies volunteers with the right motivations to volunteer for the cause that your organization supports. This is done by identifying volunteers that have previously supported Non profits with a cause similar as the non profits under consideration(using twitter analysis).

How Nonprofits Can Be Sustainable?

It is important to identify similar non profits who align with your organisation’s mission, vision, and goals. Nonprofits can learn from each other using this information. They can also get a sense of how effective other nonprofits social media management is and what aspect they can improve on. Nonprofits can also develop strategic partnerships that can dramatically increase nonprofit’s outreach ability, and brand exposure.

Gudville identifies possible partners by analysing their cause, mission and events of nonprofits in the same sector and compare it with the non profit under consideration.

Alt text

How it works

Data Collection

1.Fetching structured data - basic info on nonprofits Gudville aggregate basic information about a nonprofit from structured databases such as CharityNavigator.

  • Nonprofit's name, location, description, financials, and issue category (NTEE code).

2.Gathering unstructured data - nonprofits, and companies It involves fetching unstructured, natural language data from the web in order to link nonprofits to companies, donors and volunteers:

  • News articles: Gudville uses web search APIs like News API to gather news stories that mention companies and the nonprofits and causes they support.
  • Webpages: CharityNavigator databases often list a nonprofit's homepage. Gudville crawl these webpages and automatically extract company names that support the organisation.
  • Fetching social data - nonprofits and supporters Gudville also fetches a nonprofit's twitter such as nonprofit's twitter followers and profit's tweets are retrieved via the Twitter API.


Graph building - linking everything together With all these sources of information in hand, Gudville uses natural language processing techniques to build a weighted graph that connects nonprofits, companies, and people (twitter followers).

  • Similarity relationships between nonprofits, based on their tweets.
  • Similarity relationships between nonprofits, based on their webpages.

These similarity calculations are done using NLP topic modeling techniques using the Python gensim library.

Graph analysis - understanding supports, recommending partnerships, finding nonprofit communities, understanding connectedness

We then use social network analysis, including community detection algorithms, to recommend company partnerships, discover communities of similar nonprofits, and understand the network structure of those communities.


For Non Profits

  • Dashboard to tell their stories and the impact it has on the cause its working on.
  • Manage all the events, campaigns, donations and volunteers associated with the event
  • Reach suggested possible donors(Donors who have donated to causes similar to theirs) with prefilled or customizable email from the dashboard.
  • Reach suggested possible sponsors(Company who have sponsored to causes similar to theirs) with prefilled or customizable email from the dashboard.
  • Reach suggested possible volunteers(Volunteers who have voluntered to causes similar to theirs) on twitter.
  • Connect or partner with other nonprofits similar to you
  • Request donations on click of a button.
  • Add admins to manage Nonprofit account. Customize nonprofit page on Gudville.
  • Manage social media activity all in one place. Twitter statistics of nonprofits similar to you.

Alt text Detailed Information about other Non-Profits along with twitter statistics, their donations statistics and news mentions about donations. Use this information to see what you can do better to drive more donations and contribute better.

For Donors

  • Discover nonprofits similar to the ones that you already donate to or partner with.
  • Access to news feed and twitter feeds of all the Non Profits they have sponsored.
  • Repeat donations to Non Profits they have sponsored with a single click using Amazon Pay.
  • Access to list of Non Profits that is doing Amazing job in the cause they are interested and needs their help.
  • Contact the Non Profits that were suggested and provide their valuable donation through Amazon Pay.

With Gudville, we make insights based on the data thats constantly evolving to make sure that you’re finding the best prospects most likely to give more. All of this process get's automated. Not just that, you can access possible company sponsors and volunteers who are more likely to support the Non Profits cause based on their previous activity.

How I built it


Alt text

Gudville is built using several AWS services and open source technologies. Charity Navigator API is used to fetch list of nonprofits. AWS Lambda is triggered periodically to fetch recent tweets and news articles and then this data is stored in Amazon S3. Then these tweets and news articles are sent to AWS Translate followed by AWS Comprehend for natural language processing. Processed tweets are then analysed and useful information is extracted and stored in Amazon RDS.

Amazon SES is used to send Emails to donors and other nonprofits. We also use Amazon Route53, CloudFront, Application Load Balancer for delivering the web application. Amazon S3 is used for delivering static assets and to store unstructured data. EC2 instances are used to host the backend of the application. Frontend is built using Angular and Backend code is written in Python.

What I learned

  • I learnt how combination of data from Charity Navigator, web scraping and different social media platform can be used to build a powerful solution to some of the problems commonly faced by Non Profits.
  • I also learnt how easily I can integrate Amazon Pay to my project.Also, how I can use different services provided by AWS to build scalable application.

Testing instructions:

  1. Clone Github repository
  2. Download AWS CLI and Setup AWS credentials using aws configure CLI command. Ensure you have latest version of Node, npm, Angular and python installed.
  3. Open New Terminal, Change directory to "gudville/api" and run python command to run Gudville app backend. Note: Your account must be whitelisted to use all the AWS services mentioned above.
  4. Open New Terminal, Change directory to "nonprofit-frontend" and run ng serve --open --port 4200 to run Gudville Nonprofit app. It will automatically open the app on browser.
  5. Open New Terminal, Change directory to "donor-frontend" and run ng serve --open --port 4201 to run Gudville Donor app on port 4201. It will automatically open the app on browser.
  6. Now Backend and both the frontend apps are running.

What's Next for Gudville

  • Extend the Social Studio to allow manage their posts on Social Networks other than Twitter like Facebook, Instagram.
  • Add support management to help nonprofits easily manage all tasks in one place.
  • Add bot support so that bot can take care of answering most frequent questions of the volunteers.
  • Add Volunteer training feature.

Built With

  • amazon-web-services
  • application-load-balancer
  • autoscaling
  • charity-navigator-api
  • cloudfront
  • comprehend
  • ec2
  • gensim
  • lambda
  • rds
  • route53
  • s3
  • ses
  • translate
  • twitter
Share this project: