Combine all the ingredients for the stock in a large soup pot and cover with cold water. Bring to a boil over high heat, then reduce the heat to low and simmer uncovered for 1 1/2 to 2 hours, skimming any foam from the top of the stock as it simmers, until the chicken is fall-from-the-bone tender. Add water, as necessary, to keep the stock ingredients covered.
Strain the stock through a fine mesh sieve, discarding everything except the boiled chicken, and return the stock to the rinsed-out pot. Remove the chicken from the bones and shred into small pieces. Set aside.
Add the onion, carrots, celery, and potatoes to the stock and simmer 20 to 30 minutes, or until the potatoes are tender.
While the soup is simmering, combine the lemon or lime juice, garlic, cilantro leaves, scallions, oil, Bijol, and a tablespoon of the soup broth in a small bowl and mash into a paste with a fork.
Also while the soup is simmering, prepare the salsa by combining all ingredients in a glass or stainless steel bowl and mixing well. Season, to taste, with salt just before serving.
When the potatoes are tender, add the reserved chicken and seasoning paste to the soup and stir well to combine. Allow the soup to return to a simmer, then remove from the heat, and let sit, covered, 10 minutes before serving. Serve garnished with a spoonful of the salsa.